@camstack/addon-model-studio 1.1.66 → 1.1.68
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/{MotionZonesSettings-Db0aScD3.mjs → MotionZonesSettings-B-Wgpoan.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-cR3N_ytC.mjs → PrivacyMaskSettings-cvW1-2wy.mjs} +4 -4
- package/dist/{SceneMonitorEditor-DXVHDH0R.mjs → SceneMonitorEditor-CBu-rpX8.mjs} +3 -3
- package/dist/_stub.js +10 -10
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-THpTI09L.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-pQwHBXdf.mjs} +3 -3
- package/dist/{_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BCT-V4ES.mjs → _virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CtdlusUe.mjs} +1 -1
- package/dist/{hostInit-DMExYUaf.mjs → hostInit-D7BQsze2.mjs} +2 -2
- package/dist/model-studio.addon.js +223 -7
- package/dist/model-studio.addon.mjs +223 -7
- package/dist/{player-overlays-lBkRCWTl.mjs → player-overlays-CQBflsvl.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-yDg54Ukl.mjs → responsive-Cd_eAI5T.mjs} +1 -1
- package/dist/{square-CRbl_bVG.mjs → square-CQxmAA1h.mjs} +1 -1
- package/dist/{trash-2-6w-9eKkh.mjs → trash-2-BgRN0d8G.mjs} +1 -1
- package/dist/{use-device-snapshot-czNca4dI.mjs → use-device-snapshot-DgGzfUGT.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-Dpo156ru.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-D6dxrOg6.mjs} +1 -1
- package/package.json +1 -1
|
@@ -8663,6 +8663,13 @@ var MediaRelocateModeSchema = _enum([
|
|
|
8663
8663
|
]);
|
|
8664
8664
|
var RelocateMediaInputSchema = object({
|
|
8665
8665
|
toLocationId: string(),
|
|
8666
|
+
/**
|
|
8667
|
+
* Restrict the pass to rows currently on this location. Omitted / `'*'` =
|
|
8668
|
+
* every row that is not already on `toLocationId` (the historical
|
|
8669
|
+
* behaviour). A named source is what a from→to migration needs: without it
|
|
8670
|
+
* "move events off disk 2" also emptied disk 1.
|
|
8671
|
+
*/
|
|
8672
|
+
fromLocationId: string().optional(),
|
|
8666
8673
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8667
8674
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
8668
8675
|
mode: MediaRelocateModeSchema.optional()
|
|
@@ -8730,6 +8737,19 @@ var StorageMigrationDestinationsSchema = object({
|
|
|
8730
8737
|
galleryMedia: string().min(1).optional()
|
|
8731
8738
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
8732
8739
|
/**
|
|
8740
|
+
* Optional named source per class. Omitted = the class's current default
|
|
8741
|
+
* (the historical behaviour). A named source that is NOT the default is a
|
|
8742
|
+
* drain of that disk: bytes move, the default stays, and the source is
|
|
8743
|
+
* disabled when the move finishes.
|
|
8744
|
+
*/
|
|
8745
|
+
var StorageMigrationSourcesSchema = object({
|
|
8746
|
+
recordings: string().min(1).optional(),
|
|
8747
|
+
recordingsLow: string().min(1).optional(),
|
|
8748
|
+
eventMedia: string().min(1).optional(),
|
|
8749
|
+
backups: string().min(1).optional(),
|
|
8750
|
+
galleryMedia: string().min(1).optional()
|
|
8751
|
+
}).optional();
|
|
8752
|
+
/**
|
|
8733
8753
|
* How a migration sequences the cutover against the byte move.
|
|
8734
8754
|
*
|
|
8735
8755
|
* - `blocking` — the historical order: pause, move every byte, repoint,
|
|
@@ -8751,6 +8771,8 @@ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
|
|
|
8751
8771
|
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
8752
8772
|
var StorageMigrationInputSchema = object({
|
|
8753
8773
|
destinations: StorageMigrationDestinationsSchema,
|
|
8774
|
+
/** Omitted = each class's current default. */
|
|
8775
|
+
sources: StorageMigrationSourcesSchema,
|
|
8754
8776
|
throttleMbps: number().min(1).max(1e3).optional(),
|
|
8755
8777
|
/** Omitted = `blocking`, which stays the default. */
|
|
8756
8778
|
mode: StorageMigrationModeSchema.optional()
|
|
@@ -8830,6 +8852,13 @@ var StorageMigrationMoveSchema = object({
|
|
|
8830
8852
|
storageClass: StorageMigrationClassSchema,
|
|
8831
8853
|
fromLocationId: string(),
|
|
8832
8854
|
toLocationId: string(),
|
|
8855
|
+
/**
|
|
8856
|
+
* True when `from` was NOT the class default at plan time. The move still
|
|
8857
|
+
* copies bytes, but the default is left alone and the source is disabled
|
|
8858
|
+
* once the copy verifies. Absent on jobs planned before this field existed
|
|
8859
|
+
* — those jobs always repointed, which is `false`.
|
|
8860
|
+
*/
|
|
8861
|
+
freezeSource: boolean().optional(),
|
|
8833
8862
|
moverJobId: string().nullable(),
|
|
8834
8863
|
state: RelocateJobStateSchema.nullable(),
|
|
8835
8864
|
error: string().nullable(),
|
|
@@ -8843,6 +8872,7 @@ var StorageMigrationJobSchema = object({
|
|
|
8843
8872
|
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
8844
8873
|
mode: StorageMigrationModeSchema,
|
|
8845
8874
|
destinations: StorageMigrationDestinationsSchema,
|
|
8875
|
+
sources: StorageMigrationSourcesSchema,
|
|
8846
8876
|
throttleMbps: number(),
|
|
8847
8877
|
moves: array(StorageMigrationMoveSchema),
|
|
8848
8878
|
pauseLeaseId: string().nullable(),
|
|
@@ -8868,6 +8898,7 @@ var StorageMigrationFindingSchema = object({
|
|
|
8868
8898
|
});
|
|
8869
8899
|
var StorageMigrationPlanSchema = object({
|
|
8870
8900
|
destinations: StorageMigrationDestinationsSchema,
|
|
8901
|
+
sources: StorageMigrationSourcesSchema,
|
|
8871
8902
|
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
8872
8903
|
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
8873
8904
|
* it. */
|
|
@@ -8875,7 +8906,8 @@ var StorageMigrationPlanSchema = object({
|
|
|
8875
8906
|
moves: array(object({
|
|
8876
8907
|
storageClass: StorageMigrationClassSchema,
|
|
8877
8908
|
fromLocationId: string(),
|
|
8878
|
-
toLocationId: string()
|
|
8909
|
+
toLocationId: string(),
|
|
8910
|
+
freezeSource: boolean().optional()
|
|
8879
8911
|
})),
|
|
8880
8912
|
findings: array(StorageMigrationFindingSchema)
|
|
8881
8913
|
});
|
|
@@ -9053,10 +9085,51 @@ var LedgerWalkReportSchema = object({
|
|
|
9053
9085
|
var RelocatableMediaCountSchema = object({ rows: number().int().nonnegative() }).nullable();
|
|
9054
9086
|
var RelocatableMediaCountInputSchema = object({
|
|
9055
9087
|
toLocationId: string().min(1),
|
|
9088
|
+
/** Restrict the count to one source; omitted / `'*'` = every non-target row. */
|
|
9089
|
+
fromLocationId: string().optional(),
|
|
9056
9090
|
/** Omitted = `move`. */
|
|
9057
9091
|
mode: MediaRelocateModeSchema.optional()
|
|
9058
9092
|
});
|
|
9059
9093
|
/**
|
|
9094
|
+
* Operator cleanup of leftover analytics rows, optional debug media, and
|
|
9095
|
+
* ghost ledger entries on frozen footage locations.
|
|
9096
|
+
*
|
|
9097
|
+
* A pass is tens of minutes on a standing backlog. The hub method RETURNS
|
|
9098
|
+
* `{ jobId }` immediately; progress is `cleanupStatus`. Awaiting the work
|
|
9099
|
+
* is how `addons.custom` hit the 60 s UDS deadline while reclaim continued
|
|
9100
|
+
* with no operator-visible status.
|
|
9101
|
+
*/
|
|
9102
|
+
var StorageCleanupPhaseSchema = _enum([
|
|
9103
|
+
"orphans",
|
|
9104
|
+
"debug-media",
|
|
9105
|
+
"ghost-ledger",
|
|
9106
|
+
"done",
|
|
9107
|
+
"failed",
|
|
9108
|
+
"cancelled"
|
|
9109
|
+
]);
|
|
9110
|
+
var StorageCleanupInputSchema = object({
|
|
9111
|
+
/** Also walk motion stills / track filmstrips. Off by default. */
|
|
9112
|
+
includeDebugMedia: boolean().optional() });
|
|
9113
|
+
var StorageCleanupJobSchema = object({
|
|
9114
|
+
jobId: string(),
|
|
9115
|
+
phase: StorageCleanupPhaseSchema,
|
|
9116
|
+
includeDebugMedia: boolean(),
|
|
9117
|
+
orphansReclaimed: number().int().nonnegative(),
|
|
9118
|
+
orphanBytesReclaimed: number().int().nonnegative(),
|
|
9119
|
+
debugMediaReclaimed: number().int().nonnegative(),
|
|
9120
|
+
debugMediaBytesReclaimed: number().int().nonnegative(),
|
|
9121
|
+
ghostsForgotten: number().int().nonnegative(),
|
|
9122
|
+
ghostBytesForgotten: number().int().nonnegative(),
|
|
9123
|
+
/** Short operator-facing line: current collection, pass, or location. */
|
|
9124
|
+
detail: string().nullable(),
|
|
9125
|
+
cancelRequested: boolean(),
|
|
9126
|
+
startedAt: number(),
|
|
9127
|
+
updatedAt: number(),
|
|
9128
|
+
finishedAt: number().nullable(),
|
|
9129
|
+
error: string().nullable()
|
|
9130
|
+
});
|
|
9131
|
+
var StorageCleanupStatusInputSchema = object({ jobId: string().optional() });
|
|
9132
|
+
/**
|
|
9060
9133
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
9061
9134
|
* storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
|
|
9062
9135
|
* so the persisted record schema and the consumer-facing cap can both consume it
|
|
@@ -9084,11 +9157,10 @@ var StorageLocationTypeSchema = string().regex(/^[a-z][a-zA-Z0-9-]*$/);
|
|
|
9084
9157
|
* The default location for a type uses `id === <type>:default` by
|
|
9085
9158
|
* convention (the bare type ref like `'backups'` resolves to it).
|
|
9086
9159
|
*
|
|
9087
|
-
* `isSystem
|
|
9088
|
-
*
|
|
9089
|
-
*
|
|
9090
|
-
*
|
|
9091
|
-
* deleting it is rejected at the cap level.
|
|
9160
|
+
* `isSystem` is a legacy persisted flag. Seed still creates the initial
|
|
9161
|
+
* `<type>:default` locations; the flag is no longer a lock, a badge, or a
|
|
9162
|
+
* prune selector. New writes leave it false. Deletion is gated on uniqueness
|
|
9163
|
+
* / last-enabled, not on this bit.
|
|
9092
9164
|
*/
|
|
9093
9165
|
var StorageLocationSchema = object({
|
|
9094
9166
|
id: string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
|
|
@@ -19657,6 +19729,47 @@ var RebuildStatusSchema = object({
|
|
|
19657
19729
|
/** Present when the pass ended by throwing. */
|
|
19658
19730
|
error: string().nullable()
|
|
19659
19731
|
});
|
|
19732
|
+
/**
|
|
19733
|
+
* Acknowledgement that a debug-media reclaim STARTED.
|
|
19734
|
+
*
|
|
19735
|
+
* The pass is paced at ~2 MB/s over a standing 100 GB — tens of minutes — so
|
|
19736
|
+
* it runs detached and this returns immediately. Awaiting it is how the
|
|
19737
|
+
* `addons.custom` door hit the 60 s UDS deadline while the walk carried on
|
|
19738
|
+
* with no status. Poll {@link pipelineAnalyticsCapability.methods.getMediaReclaimStatus}.
|
|
19739
|
+
*/
|
|
19740
|
+
var MediaReclaimStartResultSchema = object({
|
|
19741
|
+
started: boolean(),
|
|
19742
|
+
/** True when a pass was already running; the new request is ignored. */
|
|
19743
|
+
alreadyRunning: boolean()
|
|
19744
|
+
});
|
|
19745
|
+
var MediaReclaimInputSchema = object({
|
|
19746
|
+
mode: _enum(["report", "reclaim"]).default("report"),
|
|
19747
|
+
scopes: array(_enum(["motion-still", "track-filmstrip"])).min(1).optional(),
|
|
19748
|
+
deviceIds: array(number().int()).min(1).optional(),
|
|
19749
|
+
restart: boolean().optional(),
|
|
19750
|
+
pageSize: number().int().min(50).max(5e3).optional(),
|
|
19751
|
+
maxRowsPerDevice: number().int().min(1).max(5e5).optional(),
|
|
19752
|
+
maxReclaimPerDevice: number().int().min(1).max(5e5).optional(),
|
|
19753
|
+
maxBytesPerRun: number().int().min(1).optional(),
|
|
19754
|
+
budgetMinutes: number().int().min(1).max(720).optional(),
|
|
19755
|
+
throttleBytesPerSec: number().int().min(64 * 1024).optional(),
|
|
19756
|
+
graceMinutes: number().int().min(1).max(10080).optional()
|
|
19757
|
+
});
|
|
19758
|
+
var MediaReclaimStatusSchema = object({
|
|
19759
|
+
running: boolean(),
|
|
19760
|
+
mode: _enum(["report", "reclaim"]).nullable(),
|
|
19761
|
+
totalExamined: number(),
|
|
19762
|
+
totalEligible: number(),
|
|
19763
|
+
totalReclaimed: number(),
|
|
19764
|
+
totalBytesReclaimed: number(),
|
|
19765
|
+
totalRefused: number(),
|
|
19766
|
+
/** Device+scope windows finished in this pass. */
|
|
19767
|
+
devicesDone: number(),
|
|
19768
|
+
complete: boolean().nullable(),
|
|
19769
|
+
startedAtMs: number().nullable(),
|
|
19770
|
+
finishedAtMs: number().nullable(),
|
|
19771
|
+
error: string().nullable()
|
|
19772
|
+
});
|
|
19660
19773
|
var ReplayFrameInputSchema = object({
|
|
19661
19774
|
timestamp: number(),
|
|
19662
19775
|
frame: PipelineRunResultBridge
|
|
@@ -19798,6 +19911,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19798
19911
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
19799
19912
|
kind: "query",
|
|
19800
19913
|
auth: "admin"
|
|
19914
|
+
}), method(MediaReclaimInputSchema, MediaReclaimStartResultSchema, {
|
|
19915
|
+
kind: "mutation",
|
|
19916
|
+
auth: "admin"
|
|
19917
|
+
}), method(object({}), MediaReclaimStatusSchema, {
|
|
19918
|
+
kind: "query",
|
|
19919
|
+
auth: "admin"
|
|
19801
19920
|
}), method(object({ deviceIds: array(number()).optional() }), TrainingExportSummarySchema, {
|
|
19802
19921
|
kind: "query",
|
|
19803
19922
|
auth: "admin"
|
|
@@ -21768,7 +21887,13 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
21768
21887
|
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
21769
21888
|
kind: "mutation",
|
|
21770
21889
|
auth: "admin"
|
|
21771
|
-
})
|
|
21890
|
+
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
21891
|
+
kind: "mutation",
|
|
21892
|
+
auth: "admin"
|
|
21893
|
+
}), method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
21894
|
+
kind: "mutation",
|
|
21895
|
+
auth: "admin"
|
|
21896
|
+
}), method(object({}), array(StorageMigrationJobSchema).readonly(), { auth: "admin" });
|
|
21772
21897
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
21773
21898
|
providerId: string().min(1),
|
|
21774
21899
|
displayName: string().min(1),
|
|
@@ -27146,6 +27271,33 @@ var RecordingRebalanceInputSchema = object({
|
|
|
27146
27271
|
minMoveGb: number().min(0).optional()
|
|
27147
27272
|
});
|
|
27148
27273
|
/**
|
|
27274
|
+
* Operator-facing placement of one camera onto a recordings location.
|
|
27275
|
+
*
|
|
27276
|
+
* `pinLocationId` is the operator instruction: a location id, or `null` for
|
|
27277
|
+
* Auto (the planner may move this camera). `locationId` is where high/mid
|
|
27278
|
+
* currently write — the plan, which may disagree with the pin when Auto.
|
|
27279
|
+
*/
|
|
27280
|
+
var RecordingDevicePlacementSchema = object({
|
|
27281
|
+
deviceId: number().int(),
|
|
27282
|
+
profile: string(),
|
|
27283
|
+
locationId: string()
|
|
27284
|
+
});
|
|
27285
|
+
var RecordingDevicePinSchema = object({
|
|
27286
|
+
deviceId: number().int(),
|
|
27287
|
+
/** Recordings-class location this camera is pinned to. */
|
|
27288
|
+
locationId: string()
|
|
27289
|
+
});
|
|
27290
|
+
var RecordingPlacementViewSchema = object({
|
|
27291
|
+
assignments: array(RecordingDevicePlacementSchema),
|
|
27292
|
+
pins: array(RecordingDevicePinSchema),
|
|
27293
|
+
defaultLocations: record(string(), string())
|
|
27294
|
+
});
|
|
27295
|
+
var RecordingSetDevicePlacementInputSchema = object({
|
|
27296
|
+
deviceId: number().int(),
|
|
27297
|
+
/** `null` = Auto. Otherwise a `recordings:*` location id. */
|
|
27298
|
+
locationId: string().nullable()
|
|
27299
|
+
});
|
|
27300
|
+
/**
|
|
27149
27301
|
* Result of locating footage at a wall-clock instant for one device/profile.
|
|
27150
27302
|
* `segment` carries the covering segment's window; `gap` reports the forward
|
|
27151
27303
|
* nearest covered edge (`null` past the end of footage / when none exists)
|
|
@@ -27371,6 +27523,12 @@ method(object({
|
|
|
27371
27523
|
}), method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
|
|
27372
27524
|
kind: "mutation",
|
|
27373
27525
|
auth: "admin"
|
|
27526
|
+
}), method(object({}), RecordingPlacementViewSchema, {
|
|
27527
|
+
kind: "query",
|
|
27528
|
+
auth: "admin"
|
|
27529
|
+
}), method(RecordingSetDevicePlacementInputSchema, object({ ok: literal(true) }), {
|
|
27530
|
+
kind: "mutation",
|
|
27531
|
+
auth: "admin"
|
|
27374
27532
|
});
|
|
27375
27533
|
/**
|
|
27376
27534
|
* `recording-export` cap — render a footage time range into a single downloadable
|
|
@@ -32451,6 +32609,12 @@ Object.freeze({
|
|
|
32451
32609
|
addonId: null,
|
|
32452
32610
|
access: "view"
|
|
32453
32611
|
},
|
|
32612
|
+
"pipelineAnalytics.getMediaReclaimStatus": {
|
|
32613
|
+
capName: "pipeline-analytics",
|
|
32614
|
+
capScope: "device",
|
|
32615
|
+
addonId: null,
|
|
32616
|
+
access: "view"
|
|
32617
|
+
},
|
|
32454
32618
|
"pipelineAnalytics.getMotionEvents": {
|
|
32455
32619
|
capName: "pipeline-analytics",
|
|
32456
32620
|
capScope: "device",
|
|
@@ -32625,6 +32789,12 @@ Object.freeze({
|
|
|
32625
32789
|
addonId: null,
|
|
32626
32790
|
access: "create"
|
|
32627
32791
|
},
|
|
32792
|
+
"pipelineAnalytics.reclaimDebugMedia": {
|
|
32793
|
+
capName: "pipeline-analytics",
|
|
32794
|
+
capScope: "device",
|
|
32795
|
+
addonId: null,
|
|
32796
|
+
access: "create"
|
|
32797
|
+
},
|
|
32628
32798
|
"pipelineAnalytics.reconcileFromDisk": {
|
|
32629
32799
|
capName: "pipeline-analytics",
|
|
32630
32800
|
capScope: "device",
|
|
@@ -33549,6 +33719,12 @@ Object.freeze({
|
|
|
33549
33719
|
addonId: null,
|
|
33550
33720
|
access: "view"
|
|
33551
33721
|
},
|
|
33722
|
+
"recording.getPlacement": {
|
|
33723
|
+
capName: "recording",
|
|
33724
|
+
capScope: "system",
|
|
33725
|
+
addonId: null,
|
|
33726
|
+
access: "view"
|
|
33727
|
+
},
|
|
33552
33728
|
"recording.getPlaybackManifest": {
|
|
33553
33729
|
capName: "recording",
|
|
33554
33730
|
capScope: "system",
|
|
@@ -33675,6 +33851,12 @@ Object.freeze({
|
|
|
33675
33851
|
addonId: null,
|
|
33676
33852
|
access: "create"
|
|
33677
33853
|
},
|
|
33854
|
+
"recording.setDevicePlacement": {
|
|
33855
|
+
capName: "recording",
|
|
33856
|
+
capScope: "system",
|
|
33857
|
+
addonId: null,
|
|
33858
|
+
access: "create"
|
|
33859
|
+
},
|
|
33678
33860
|
"recording.startStorageMigrationMove": {
|
|
33679
33861
|
capName: "recording",
|
|
33680
33862
|
capScope: "system",
|
|
@@ -34119,12 +34301,36 @@ Object.freeze({
|
|
|
34119
34301
|
addonId: null,
|
|
34120
34302
|
access: "create"
|
|
34121
34303
|
},
|
|
34304
|
+
"storageMigration.cleanupCancel": {
|
|
34305
|
+
capName: "storage-migration",
|
|
34306
|
+
capScope: "system",
|
|
34307
|
+
addonId: null,
|
|
34308
|
+
access: "create"
|
|
34309
|
+
},
|
|
34310
|
+
"storageMigration.cleanupStart": {
|
|
34311
|
+
capName: "storage-migration",
|
|
34312
|
+
capScope: "system",
|
|
34313
|
+
addonId: null,
|
|
34314
|
+
access: "create"
|
|
34315
|
+
},
|
|
34316
|
+
"storageMigration.cleanupStatus": {
|
|
34317
|
+
capName: "storage-migration",
|
|
34318
|
+
capScope: "system",
|
|
34319
|
+
addonId: null,
|
|
34320
|
+
access: "view"
|
|
34321
|
+
},
|
|
34122
34322
|
"storageMigration.drain": {
|
|
34123
34323
|
capName: "storage-migration",
|
|
34124
34324
|
capScope: "system",
|
|
34125
34325
|
addonId: null,
|
|
34126
34326
|
access: "create"
|
|
34127
34327
|
},
|
|
34328
|
+
"storageMigration.history": {
|
|
34329
|
+
capName: "storage-migration",
|
|
34330
|
+
capScope: "system",
|
|
34331
|
+
addonId: null,
|
|
34332
|
+
access: "view"
|
|
34333
|
+
},
|
|
34128
34334
|
"storageMigration.movers": {
|
|
34129
34335
|
capName: "storage-migration",
|
|
34130
34336
|
capScope: "system",
|
|
@@ -36241,6 +36447,11 @@ Object.freeze({
|
|
|
36241
36447
|
form: "single",
|
|
36242
36448
|
optional: true
|
|
36243
36449
|
}],
|
|
36450
|
+
"pipelineAnalytics.reclaimDebugMedia": [{
|
|
36451
|
+
name: "deviceIds",
|
|
36452
|
+
form: "array",
|
|
36453
|
+
optional: true
|
|
36454
|
+
}],
|
|
36244
36455
|
"pipelineAnalytics.reconcileFromDisk": [{
|
|
36245
36456
|
name: "deviceId",
|
|
36246
36457
|
form: "single",
|
|
@@ -36606,6 +36817,11 @@ Object.freeze({
|
|
|
36606
36817
|
form: "single",
|
|
36607
36818
|
optional: false
|
|
36608
36819
|
}],
|
|
36820
|
+
"recording.setDevicePlacement": [{
|
|
36821
|
+
name: "deviceId",
|
|
36822
|
+
form: "single",
|
|
36823
|
+
optional: false
|
|
36824
|
+
}],
|
|
36609
36825
|
"recording.startStorageMigrationMove": [{
|
|
36610
36826
|
name: "deviceId",
|
|
36611
36827
|
form: "single",
|