@camstack/addon-post-analysis 1.2.70 → 1.2.72

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.
@@ -3027,6 +3027,9 @@ function handlePipeResult(left, next, ctx) {
3027
3027
  fallback: left.fallback
3028
3028
  }, ctx);
3029
3029
  }
3030
+ var $ZodPreprocess = /*@__PURE__*/ $constructor("$ZodPreprocess", (inst, def) => {
3031
+ $ZodPipe.init(inst, def);
3032
+ });
3030
3033
  var $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => {
3031
3034
  $ZodType.init(inst, def);
3032
3035
  defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues);
@@ -5212,6 +5215,10 @@ function pipe(in_, out) {
5212
5215
  out
5213
5216
  });
5214
5217
  }
5218
+ var ZodPreprocess = /*@__PURE__*/ $constructor("ZodPreprocess", (inst, def) => {
5219
+ ZodPipe.init(inst, def);
5220
+ $ZodPreprocess.init(inst, def);
5221
+ });
5215
5222
  var ZodReadonly = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => {
5216
5223
  $ZodReadonly.init(inst, def);
5217
5224
  ZodType.init(inst, def);
@@ -5270,6 +5277,13 @@ function _instanceof(cls, params = {}) {
5270
5277
  };
5271
5278
  return inst;
5272
5279
  }
5280
+ function preprocess(fn, schema) {
5281
+ return new ZodPreprocess({
5282
+ type: "pipe",
5283
+ in: transform(fn),
5284
+ out: schema
5285
+ });
5286
+ }
5273
5287
  //#endregion
5274
5288
  //#region ../../node_modules/zod/v4/classic/compat.js
5275
5289
  /** @deprecated Use the raw string literal codes instead, e.g. "invalid_type". */
@@ -16324,7 +16338,87 @@ var MethodAccessSchema = _enum([
16324
16338
  var AllowedProviderSchema = union([literal("*"), array(string())]);
16325
16339
  var AllowedDevicesSchema = record(string(), union([literal("*"), array(string())]));
16326
16340
  var CapScopeSchema = _enum(["device", "system"]);
16327
- var TokenScopeSchema = discriminatedUnion("type", [
16341
+ /**
16342
+ * DeviceSelector (scope model v3 — 2026-08-12).
16343
+ *
16344
+ * A `device` grant no longer carries a frozen list of deviceIds. It carries
16345
+ * a SELECTOR the matcher resolves against the live fleet, so the grant can be
16346
+ * DYNAMIC: a `types:['camera']` selector automatically covers a camera added
16347
+ * AFTER the grant was minted — no re-grant, no re-login.
16348
+ *
16349
+ * - `all` — every device in the deployment. The broad viewer/operator
16350
+ * lever without a `category` grant (a `category` grant also covers device
16351
+ * caps that carry no deviceId; `all` is specifically the device set).
16352
+ * - `ids` — an explicit deviceId list. This is what a v2 `device:[…]`
16353
+ * grant migrates to (see {@link TokenScopeSchema}); STATIC — a new camera
16354
+ * is NOT covered until the grant is edited.
16355
+ * - `types` — every device of a `DeviceType` (e.g. every `camera`).
16356
+ * DYNAMIC. A device that changes type, or a new device of the type,
16357
+ * re-resolves on the next request.
16358
+ * - `locations` — every device whose operator-assigned `location` label is
16359
+ * in the set (e.g. "Garden", "Front door"). DYNAMIC. A device with a
16360
+ * null/unset location matches NO `locations` selector.
16361
+ */
16362
+ var DeviceSelectorSchema = discriminatedUnion("kind", [
16363
+ object({ kind: literal("all") }),
16364
+ object({
16365
+ kind: literal("ids"),
16366
+ ids: array(number().int()).min(1)
16367
+ }),
16368
+ object({
16369
+ kind: literal("types"),
16370
+ types: array(_enum(DeviceType)).min(1)
16371
+ }),
16372
+ object({
16373
+ kind: literal("locations"),
16374
+ locations: array(string().min(1)).min(1)
16375
+ })
16376
+ ]);
16377
+ var DeviceTokenScopeSchema = object({
16378
+ type: literal("device"),
16379
+ /** The device SET this grant covers — resolved against the live fleet. */
16380
+ selector: DeviceSelectorSchema,
16381
+ access: array(MethodAccessSchema).min(1),
16382
+ /**
16383
+ * Whether a grant on a PARENT device transparently covers its accessory
16384
+ * CHILDREN (siren / floodlight / PIR) via the persisted-parentage walk.
16385
+ * Direction is parent → children ONLY.
16386
+ *
16387
+ * Absent → the matcher DERIVES it from the access flavour: `view`
16388
+ * inherits (a camera viewer sees the camera's accessories), `create` /
16389
+ * `delete` do NOT (actuating/removing a child is an explicit act the
16390
+ * operator must grant on the child, not inherit from the parent). Set it
16391
+ * explicitly to override that default per grant.
16392
+ */
16393
+ includeLinked: boolean().optional()
16394
+ });
16395
+ /**
16396
+ * v2 → v3 lazy migration. A pre-v3 `device` grant carried
16397
+ * `targets: string[]` (stringified deviceIds); it rewrites to the equivalent
16398
+ * `selector: {kind:'ids', ids}`. Applied as a `preprocess` so it runs on
16399
+ * EVERY parse path — stored records AND the JWT-carried scope arrays
16400
+ * normalised at the request boundary ({@link normalizeTokenScopes} in
16401
+ * `device-selector.ts`). Chosen over a one-time DB migration because a
16402
+ * migration cannot reach a JWT already in a client's hands; parse-time
16403
+ * migration covers both without a flag day. No cast — the raw object is read
16404
+ * through `Reflect.get` (its static type is `unknown`).
16405
+ */
16406
+ function migrateLegacyTokenScope(raw) {
16407
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return raw;
16408
+ if (Reflect.get(raw, "type") !== "device") return raw;
16409
+ if (Reflect.get(raw, "selector") !== void 0) return raw;
16410
+ const targets = Reflect.get(raw, "targets");
16411
+ if (!Array.isArray(targets)) return raw;
16412
+ return {
16413
+ type: "device",
16414
+ selector: {
16415
+ kind: "ids",
16416
+ ids: targets.map((t) => typeof t === "string" ? Number(t) : t).filter((n) => typeof n === "number" && Number.isInteger(n))
16417
+ },
16418
+ access: Reflect.get(raw, "access")
16419
+ };
16420
+ }
16421
+ var TokenScopeSchema = preprocess(migrateLegacyTokenScope, discriminatedUnion("type", [
16328
16422
  object({
16329
16423
  type: literal("category"),
16330
16424
  target: CapScopeSchema,
@@ -16340,18 +16434,8 @@ var TokenScopeSchema = discriminatedUnion("type", [
16340
16434
  target: string(),
16341
16435
  access: array(MethodAccessSchema).min(1)
16342
16436
  }),
16343
- object({
16344
- type: literal("device"),
16345
- /**
16346
- * One or more deviceIds (serialised as strings for wire-format
16347
- * consistency with the rest of the union). Matcher accepts if
16348
- * `input.deviceId` ∈ `targets`. Array shape avoids the row-explosion
16349
- * of one scope-per-device when granting access to a set of cameras.
16350
- */
16351
- targets: array(string()).min(1),
16352
- access: array(MethodAccessSchema).min(1)
16353
- })
16354
- ]);
16437
+ DeviceTokenScopeSchema
16438
+ ]));
16355
16439
  object({
16356
16440
  id: string(),
16357
16441
  username: string(),
@@ -18800,7 +18884,7 @@ var detectionFpsField = {
18800
18884
  var occupancyRecheckSecField = {
18801
18885
  min: 0,
18802
18886
  max: 300,
18803
- default: 30,
18887
+ default: 300,
18804
18888
  step: 5
18805
18889
  };
18806
18890
  var occupancyRecheckFramesField = {
@@ -24044,54 +24128,139 @@ var TalkAudioCodecSchema = _enum([
24044
24128
  "g711ulaw",
24045
24129
  "g711alaw"
24046
24130
  ]);
24047
- DeviceType.Camera, method(object({ deviceId: number() }), object({
24048
- sessionId: string(),
24049
- sdpOffer: string()
24050
- }), {
24051
- kind: "mutation",
24052
- auth: "admin"
24053
- }), method(object({
24054
- deviceId: number(),
24055
- sessionId: string(),
24056
- sdpAnswer: string()
24057
- }), _void(), {
24058
- kind: "mutation",
24059
- auth: "admin"
24060
- }), method(object({
24061
- deviceId: number(),
24062
- sessionId: string()
24063
- }), _void(), {
24064
- kind: "mutation",
24065
- auth: "admin"
24066
- }), method(object({ deviceId: number() }), object({ sessionId: string() }), {
24067
- kind: "mutation",
24068
- auth: "admin"
24069
- }), method(object({
24070
- deviceId: number(),
24071
- /** Audio bytes for ONE frame, base64-encoded so the payload
24072
- * survives tRPC JSON serialization. */
24073
- audioBase64: string(),
24074
- /** Wire codec of the payload. Omit to let the provider default
24075
- * to its native expected format (s16le @ provider-native rate,
24076
- * mono). See {@link TalkAudioCodecSchema} for the supported set. */
24077
- codec: TalkAudioCodecSchema.optional(),
24078
- /** Sample rate (Hz). REQUIRED for `s16le`; advisory for
24079
- * `opus` (encoder clock); ignored for `g711*` (implied 8000). */
24080
- sampleRate: number().int().positive().optional(),
24081
- /** Channel count. Default 1. */
24082
- channels: number().int().positive().optional(),
24083
- /** Sequence number for ordering / dropping out-of-order frames. */
24084
- sequenceNumber: number().int()
24085
- }), object({ accepted: boolean() }), {
24086
- kind: "mutation",
24087
- auth: "admin"
24088
- }), method(object({ deviceId: number() }), _void(), {
24089
- kind: "mutation",
24090
- auth: "admin"
24091
- }), object({
24092
- deviceId: number(),
24093
- status: IntercomStatusSchema
24094
- });
24131
+ var intercomCapability = {
24132
+ name: "intercom",
24133
+ scope: "device",
24134
+ deviceNative: true,
24135
+ mode: "singleton",
24136
+ deviceTypes: [DeviceType.Camera],
24137
+ methods: {
24138
+ /**
24139
+ * Open a server-side WebRTC audio-only session. Returns an SDP
24140
+ * offer with a single sendonly audio m-line the client answers
24141
+ * (client → server direction). The server wakes battery cams
24142
+ * transparently before opening the upstream talk channel.
24143
+ */
24144
+ startSession: method(object({ deviceId: number() }), object({
24145
+ sessionId: string(),
24146
+ sdpOffer: string()
24147
+ }), {
24148
+ kind: "mutation",
24149
+ auth: "admin"
24150
+ }),
24151
+ handleAnswer: method(object({
24152
+ deviceId: number(),
24153
+ sessionId: string(),
24154
+ sdpAnswer: string()
24155
+ }), _void(), {
24156
+ kind: "mutation",
24157
+ auth: "admin"
24158
+ }),
24159
+ /** Close explicitly. Server also auto-closes on 30s idle. */
24160
+ stopSession: method(object({
24161
+ deviceId: number(),
24162
+ sessionId: string()
24163
+ }), _void(), {
24164
+ kind: "mutation",
24165
+ auth: "admin"
24166
+ }),
24167
+ /**
24168
+ * Open a raw-PCM talk session (no WebRTC SDP plumbing). Used by
24169
+ * non-WebRTC consumers (HomeKit export, Alexa raw audio, test
24170
+ * harnesses) that already have decoded PCM frames and just need a
24171
+ * direct path onto the camera's talk channel. Mutually exclusive
24172
+ * with `startSession` (an active WebRTC session must be stopped
24173
+ * before a raw-PCM session can be opened on the same device, and
24174
+ * vice versa).
24175
+ */
24176
+ startTalkSession: method(object({ deviceId: number() }), object({ sessionId: string() }), {
24177
+ kind: "mutation",
24178
+ auth: "admin"
24179
+ }),
24180
+ /**
24181
+ * Push one chunk of talk-back audio onto the active talk session.
24182
+ * The cap is codec-agnostic: the caller declares (or omits) the
24183
+ * wire format via `codec`; the provider decides between passthrough
24184
+ * (when the wire codec matches the camera's native talk channel),
24185
+ * transcoding via the `audio-codec` cap, or rejecting the call.
24186
+ *
24187
+ * Callers do NOT need to know the camera's wire format or sample
24188
+ * rate — that information lives entirely inside the provider.
24189
+ *
24190
+ * Sequence numbers MUST be monotonic per talk session; older frames
24191
+ * arriving after newer ones are dropped to avoid smearing the
24192
+ * downstream encoder state (G.711 is stateless but IMA ADPCM's
24193
+ * predictor would corrupt with re-ordering).
24194
+ */
24195
+ pushTalkAudio: method(object({
24196
+ deviceId: number(),
24197
+ /** Audio bytes for ONE frame, base64-encoded so the payload
24198
+ * survives tRPC JSON serialization. */
24199
+ audioBase64: string(),
24200
+ /** Wire codec of the payload. Omit to let the provider default
24201
+ * to its native expected format (s16le @ provider-native rate,
24202
+ * mono). See {@link TalkAudioCodecSchema} for the supported set. */
24203
+ codec: TalkAudioCodecSchema.optional(),
24204
+ /** Sample rate (Hz). REQUIRED for `s16le`; advisory for
24205
+ * `opus` (encoder clock); ignored for `g711*` (implied 8000). */
24206
+ sampleRate: number().int().positive().optional(),
24207
+ /** Channel count. Default 1. */
24208
+ channels: number().int().positive().optional(),
24209
+ /** Sequence number for ordering / dropping out-of-order frames. */
24210
+ sequenceNumber: number().int()
24211
+ }), object({ accepted: boolean() }), {
24212
+ kind: "mutation",
24213
+ auth: "admin"
24214
+ }),
24215
+ /** Close the raw-PCM talk session. Idempotent. */
24216
+ endTalkSession: method(object({ deviceId: number() }), _void(), {
24217
+ kind: "mutation",
24218
+ auth: "admin"
24219
+ })
24220
+ },
24221
+ events: { onStatusChanged: { data: object({
24222
+ deviceId: number(),
24223
+ status: IntercomStatusSchema
24224
+ }) } },
24225
+ status: {
24226
+ schema: IntercomStatusSchema,
24227
+ kind: "command-driven"
24228
+ },
24229
+ /**
24230
+ * Runtime-state slice — mirrored by the kernel.
24231
+ *
24232
+ * The cap declared `status` and nothing else, so the only two sources an
24233
+ * exporter has for a value — the `device.state-changed` slice event and the
24234
+ * `deviceState.getAllSnapshots` snapshot, both built from runtime state —
24235
+ * carried nothing for `intercom`. A talk-back entity in Home Assistant would
24236
+ * have been published and never received a value, which is the defect the
24237
+ * export's two classification tables exist to prevent (177 of them, once), so
24238
+ * `intercom` was excluded rather than exported.
24239
+ *
24240
+ * The shape is the status shape: there is exactly one truth about talk-back
24241
+ * and duplicating it into a second schema is how two halves of one capability
24242
+ * come to disagree. Providers write it through
24243
+ * `this.runtimeState.setCapState('intercom', …)` at the four points that open
24244
+ * and close a session, and seed it at registration so the slice exists before
24245
+ * the first session rather than after it.
24246
+ *
24247
+ * **Bound, named rather than hidden:** `talking` mirrors the provider's own
24248
+ * session handle, so a session torn down by a transport death that never
24249
+ * reaches `stopSession` / `endTalkSession` leaves it latched until the next
24250
+ * session or the next restart. That is why the slice is `session` and not
24251
+ * `restored` — a restart must never restore "talking".
24252
+ */
24253
+ runtimeState: IntercomStatusSchema,
24254
+ /**
24255
+ * Runtime-state durability: **session** — `talking` describes a live audio
24256
+ * session, which by definition does not survive the process that held it.
24257
+ * Restoring it would publish a camera as talking to nobody.
24258
+ *
24259
+ * See `RuntimeStateDurability`. Enforced by
24260
+ * `scripts/check-runtime-state-durability.ts`.
24261
+ */
24262
+ durability: "session"
24263
+ };
24095
24264
  /**
24096
24265
  * Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
24097
24266
  * with a mowing lifecycle plus a dock action.
@@ -26822,7 +26991,7 @@ method(object({
26822
26991
  toMs: number()
26823
26992
  }), RecordingAvailabilitySchema, {
26824
26993
  kind: "query",
26825
- auth: "admin"
26994
+ auth: "protected"
26826
26995
  }), method(object({
26827
26996
  deviceId: number(),
26828
26997
  fromMs: number(),
@@ -26830,14 +26999,14 @@ method(object({
26830
26999
  tzOffsetMinutes: number()
26831
27000
  }), RecordingDaysSchema, {
26832
27001
  kind: "query",
26833
- auth: "admin"
27002
+ auth: "protected"
26834
27003
  }), method(object({
26835
27004
  deviceId: number(),
26836
27005
  fromMs: number(),
26837
27006
  toMs: number()
26838
27007
  }), RecordingManifestSchema, {
26839
27008
  kind: "query",
26840
- auth: "admin"
27009
+ auth: "protected"
26841
27010
  }), method(object({}), RecordingStorageUsageSchema, {
26842
27011
  kind: "query",
26843
27012
  auth: "admin"
@@ -29160,6 +29329,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
29160
29329
  humiditySensor: humiditySensorCapability,
29161
29330
  image: imageCapability,
29162
29331
  imageSettings: imageSettingsCapability,
29332
+ intercom: intercomCapability,
29163
29333
  lawnMowerControl: lawnMowerControlCapability,
29164
29334
  lockControl: lockControlCapability,
29165
29335
  mediaPlayer: mediaPlayerCapability,
@@ -35515,6 +35685,1678 @@ Object.freeze({
35515
35685
  access: "create"
35516
35686
  }
35517
35687
  });
35688
+ Object.freeze({
35689
+ "accessories.setChildHidden": [{
35690
+ name: "childDeviceId",
35691
+ form: "single",
35692
+ optional: false
35693
+ }, {
35694
+ name: "deviceId",
35695
+ form: "single",
35696
+ optional: false
35697
+ }],
35698
+ "addonSettings.getDeviceSettings": [{
35699
+ name: "deviceId",
35700
+ form: "single",
35701
+ optional: false
35702
+ }],
35703
+ "addonSettings.updateDeviceSettings": [{
35704
+ name: "deviceId",
35705
+ form: "single",
35706
+ optional: false
35707
+ }],
35708
+ "alarmPanel.arm": [{
35709
+ name: "deviceId",
35710
+ form: "single",
35711
+ optional: false
35712
+ }],
35713
+ "alarmPanel.disarm": [{
35714
+ name: "deviceId",
35715
+ form: "single",
35716
+ optional: false
35717
+ }],
35718
+ "alarmPanel.trigger": [{
35719
+ name: "deviceId",
35720
+ form: "single",
35721
+ optional: false
35722
+ }],
35723
+ "audioAnalysis.resolveDeviceSettings": [{
35724
+ name: "deviceId",
35725
+ form: "single",
35726
+ optional: false
35727
+ }],
35728
+ "audioAnalyzer.classify": [{
35729
+ name: "deviceId",
35730
+ form: "single",
35731
+ optional: true
35732
+ }],
35733
+ "audioMetrics.getCurrentSnapshot": [{
35734
+ name: "deviceId",
35735
+ form: "single",
35736
+ optional: false
35737
+ }],
35738
+ "audioMetrics.getHistory": [{
35739
+ name: "deviceId",
35740
+ form: "single",
35741
+ optional: false
35742
+ }],
35743
+ "automationControl.disable": [{
35744
+ name: "deviceId",
35745
+ form: "single",
35746
+ optional: false
35747
+ }],
35748
+ "automationControl.enable": [{
35749
+ name: "deviceId",
35750
+ form: "single",
35751
+ optional: false
35752
+ }],
35753
+ "automationControl.trigger": [{
35754
+ name: "deviceId",
35755
+ form: "single",
35756
+ optional: false
35757
+ }],
35758
+ "battery.wakeForStream": [{
35759
+ name: "deviceId",
35760
+ form: "single",
35761
+ optional: false
35762
+ }],
35763
+ "brightness.setBrightness": [{
35764
+ name: "deviceId",
35765
+ form: "single",
35766
+ optional: false
35767
+ }],
35768
+ "button.press": [{
35769
+ name: "deviceId",
35770
+ form: "single",
35771
+ optional: false
35772
+ }],
35773
+ "cameraCredentials.getCredentials": [{
35774
+ name: "deviceId",
35775
+ form: "single",
35776
+ optional: false
35777
+ }],
35778
+ "cameraStreams.getBrokerStreams": [{
35779
+ name: "deviceId",
35780
+ form: "single",
35781
+ optional: false
35782
+ }],
35783
+ "cameraStreams.getCameraStreams": [{
35784
+ name: "deviceId",
35785
+ form: "single",
35786
+ optional: false
35787
+ }],
35788
+ "cameraStreams.getProfileRtspEntries": [{
35789
+ name: "deviceId",
35790
+ form: "single",
35791
+ optional: false
35792
+ }],
35793
+ "cameraStreams.getRtspEntries": [{
35794
+ name: "deviceId",
35795
+ form: "single",
35796
+ optional: false
35797
+ }],
35798
+ "cameraStreams.pickStream": [{
35799
+ name: "deviceId",
35800
+ form: "single",
35801
+ optional: false
35802
+ }],
35803
+ "climateControl.setFanMode": [{
35804
+ name: "deviceId",
35805
+ form: "single",
35806
+ optional: false
35807
+ }],
35808
+ "climateControl.setMode": [{
35809
+ name: "deviceId",
35810
+ form: "single",
35811
+ optional: false
35812
+ }],
35813
+ "climateControl.setPreset": [{
35814
+ name: "deviceId",
35815
+ form: "single",
35816
+ optional: false
35817
+ }],
35818
+ "climateControl.setSwingHorizontal": [{
35819
+ name: "deviceId",
35820
+ form: "single",
35821
+ optional: false
35822
+ }],
35823
+ "climateControl.setSwingVertical": [{
35824
+ name: "deviceId",
35825
+ form: "single",
35826
+ optional: false
35827
+ }],
35828
+ "climateControl.setTarget": [{
35829
+ name: "deviceId",
35830
+ form: "single",
35831
+ optional: false
35832
+ }],
35833
+ "climateControl.setTargetHumidity": [{
35834
+ name: "deviceId",
35835
+ form: "single",
35836
+ optional: false
35837
+ }],
35838
+ "climateControl.setTargetRange": [{
35839
+ name: "deviceId",
35840
+ form: "single",
35841
+ optional: false
35842
+ }],
35843
+ "color.setColor": [{
35844
+ name: "deviceId",
35845
+ form: "single",
35846
+ optional: false
35847
+ }],
35848
+ "consumables.reset": [{
35849
+ name: "deviceId",
35850
+ form: "single",
35851
+ optional: false
35852
+ }],
35853
+ "control.setValue": [{
35854
+ name: "deviceId",
35855
+ form: "single",
35856
+ optional: false
35857
+ }],
35858
+ "cover.close": [{
35859
+ name: "deviceId",
35860
+ form: "single",
35861
+ optional: false
35862
+ }],
35863
+ "cover.open": [{
35864
+ name: "deviceId",
35865
+ form: "single",
35866
+ optional: false
35867
+ }],
35868
+ "cover.setPosition": [{
35869
+ name: "deviceId",
35870
+ form: "single",
35871
+ optional: false
35872
+ }],
35873
+ "cover.setTiltPosition": [{
35874
+ name: "deviceId",
35875
+ form: "single",
35876
+ optional: false
35877
+ }],
35878
+ "cover.stop": [{
35879
+ name: "deviceId",
35880
+ form: "single",
35881
+ optional: false
35882
+ }],
35883
+ "dayNight.getOptions": [{
35884
+ name: "deviceId",
35885
+ form: "single",
35886
+ optional: false
35887
+ }],
35888
+ "dayNight.setSettings": [{
35889
+ name: "deviceId",
35890
+ form: "single",
35891
+ optional: false
35892
+ }],
35893
+ "decoder.createSession": [{
35894
+ name: "deviceId",
35895
+ form: "single",
35896
+ optional: true
35897
+ }],
35898
+ "deviceAdoption.release": [{
35899
+ name: "camDeviceId",
35900
+ form: "single",
35901
+ optional: false
35902
+ }],
35903
+ "deviceAdoption.resync": [{
35904
+ name: "camDeviceId",
35905
+ form: "single",
35906
+ optional: false
35907
+ }],
35908
+ "deviceDiscovery.adoptDevice": [{
35909
+ name: "deviceId",
35910
+ form: "single",
35911
+ optional: false
35912
+ }],
35913
+ "deviceDiscovery.listDiscovered": [{
35914
+ name: "deviceId",
35915
+ form: "single",
35916
+ optional: false
35917
+ }],
35918
+ "deviceDiscovery.refreshDiscovery": [{
35919
+ name: "deviceId",
35920
+ form: "single",
35921
+ optional: false
35922
+ }],
35923
+ "deviceDiscovery.releaseDevice": [{
35924
+ name: "childDeviceId",
35925
+ form: "single",
35926
+ optional: false
35927
+ }, {
35928
+ name: "deviceId",
35929
+ form: "single",
35930
+ optional: false
35931
+ }],
35932
+ "deviceManager.adoptionRelease": [{
35933
+ name: "camDeviceId",
35934
+ form: "single",
35935
+ optional: false
35936
+ }],
35937
+ "deviceManager.adoptionResync": [{
35938
+ name: "camDeviceId",
35939
+ form: "single",
35940
+ optional: false
35941
+ }],
35942
+ "deviceManager.applyInitialMeta": [{
35943
+ name: "deviceId",
35944
+ form: "single",
35945
+ optional: false
35946
+ }, {
35947
+ name: "linkDeviceId",
35948
+ form: "single",
35949
+ optional: true
35950
+ }],
35951
+ "deviceManager.disable": [{
35952
+ name: "deviceId",
35953
+ form: "single",
35954
+ optional: false
35955
+ }],
35956
+ "deviceManager.enable": [{
35957
+ name: "deviceId",
35958
+ form: "single",
35959
+ optional: false
35960
+ }],
35961
+ "deviceManager.getBindings": [{
35962
+ name: "deviceId",
35963
+ form: "single",
35964
+ optional: false
35965
+ }],
35966
+ "deviceManager.getChildren": [{
35967
+ name: "parentDeviceId",
35968
+ form: "single",
35969
+ optional: false
35970
+ }],
35971
+ "deviceManager.getConfigSchema": [{
35972
+ name: "deviceId",
35973
+ form: "single",
35974
+ optional: false
35975
+ }],
35976
+ "deviceManager.getDevice": [{
35977
+ name: "deviceId",
35978
+ form: "single",
35979
+ optional: false
35980
+ }],
35981
+ "deviceManager.getDeviceAggregate": [{
35982
+ name: "deviceId",
35983
+ form: "single",
35984
+ optional: false
35985
+ }],
35986
+ "deviceManager.getDeviceLiveInfoAggregate": [{
35987
+ name: "deviceId",
35988
+ form: "single",
35989
+ optional: false
35990
+ }],
35991
+ "deviceManager.getDeviceSettingsAggregate": [{
35992
+ name: "deviceId",
35993
+ form: "single",
35994
+ optional: false
35995
+ }],
35996
+ "deviceManager.getDeviceStatusAggregate": [{
35997
+ name: "deviceId",
35998
+ form: "single",
35999
+ optional: false
36000
+ }],
36001
+ "deviceManager.getDeviceStatusAggregateBatch": [{
36002
+ name: "deviceIds",
36003
+ form: "array",
36004
+ optional: false
36005
+ }],
36006
+ "deviceManager.getLinkedDevices": [{
36007
+ name: "deviceId",
36008
+ form: "single",
36009
+ optional: false
36010
+ }],
36011
+ "deviceManager.getSettingsSchema": [{
36012
+ name: "deviceId",
36013
+ form: "single",
36014
+ optional: false
36015
+ }],
36016
+ "deviceManager.getStreamProfileMap": [{
36017
+ name: "deviceId",
36018
+ form: "single",
36019
+ optional: false
36020
+ }],
36021
+ "deviceManager.getStreamSources": [{
36022
+ name: "deviceId",
36023
+ form: "single",
36024
+ optional: false
36025
+ }],
36026
+ "deviceManager.getWireableFields": [{
36027
+ name: "deviceId",
36028
+ form: "single",
36029
+ optional: false
36030
+ }],
36031
+ "deviceManager.loadConfig": [{
36032
+ name: "deviceId",
36033
+ form: "single",
36034
+ optional: false
36035
+ }],
36036
+ "deviceManager.loadMeta": [{
36037
+ name: "deviceId",
36038
+ form: "single",
36039
+ optional: false
36040
+ }],
36041
+ "deviceManager.loadRuntimeState": [{
36042
+ name: "deviceId",
36043
+ form: "single",
36044
+ optional: false
36045
+ }],
36046
+ "deviceManager.persistConfig": [{
36047
+ name: "deviceId",
36048
+ form: "single",
36049
+ optional: false
36050
+ }],
36051
+ "deviceManager.probeStreams": [{
36052
+ name: "deviceId",
36053
+ form: "single",
36054
+ optional: false
36055
+ }],
36056
+ "deviceManager.registerDevice": [{
36057
+ name: "parentDeviceId",
36058
+ form: "single",
36059
+ optional: true
36060
+ }],
36061
+ "deviceManager.remove": [{
36062
+ name: "deviceId",
36063
+ form: "single",
36064
+ optional: false
36065
+ }],
36066
+ "deviceManager.removeDevice": [{
36067
+ name: "deviceId",
36068
+ form: "single",
36069
+ optional: false
36070
+ }],
36071
+ "deviceManager.runDeviceAction": [{
36072
+ name: "deviceId",
36073
+ form: "single",
36074
+ optional: false
36075
+ }],
36076
+ "deviceManager.setChildLayout": [{
36077
+ name: "deviceId",
36078
+ form: "single",
36079
+ optional: false
36080
+ }],
36081
+ "deviceManager.setDisabled": [{
36082
+ name: "deviceId",
36083
+ form: "single",
36084
+ optional: false
36085
+ }],
36086
+ "deviceManager.setDisplay": [{
36087
+ name: "deviceId",
36088
+ form: "single",
36089
+ optional: false
36090
+ }],
36091
+ "deviceManager.setIntegrationId": [{
36092
+ name: "deviceId",
36093
+ form: "single",
36094
+ optional: false
36095
+ }],
36096
+ "deviceManager.setLinkDeviceId": [{
36097
+ name: "deviceId",
36098
+ form: "single",
36099
+ optional: false
36100
+ }, {
36101
+ name: "linkDeviceId",
36102
+ form: "single",
36103
+ optional: true
36104
+ }],
36105
+ "deviceManager.setLocation": [{
36106
+ name: "deviceId",
36107
+ form: "single",
36108
+ optional: false
36109
+ }],
36110
+ "deviceManager.setMetadata": [{
36111
+ name: "deviceId",
36112
+ form: "single",
36113
+ optional: false
36114
+ }],
36115
+ "deviceManager.setName": [{
36116
+ name: "deviceId",
36117
+ form: "single",
36118
+ optional: false
36119
+ }],
36120
+ "deviceManager.setPrimaryChildEntityId": [{
36121
+ name: "deviceId",
36122
+ form: "single",
36123
+ optional: false
36124
+ }],
36125
+ "deviceManager.setRole": [{
36126
+ name: "deviceId",
36127
+ form: "single",
36128
+ optional: false
36129
+ }],
36130
+ "deviceManager.setStreamProfileMap": [{
36131
+ name: "deviceId",
36132
+ form: "single",
36133
+ optional: false
36134
+ }],
36135
+ "deviceManager.setType": [{
36136
+ name: "deviceId",
36137
+ form: "single",
36138
+ optional: false
36139
+ }],
36140
+ "deviceManager.setWrapperActive": [{
36141
+ name: "deviceId",
36142
+ form: "single",
36143
+ optional: false
36144
+ }],
36145
+ "deviceManager.testField": [{
36146
+ name: "deviceId",
36147
+ form: "single",
36148
+ optional: false
36149
+ }],
36150
+ "deviceManager.updateConfig": [{
36151
+ name: "deviceId",
36152
+ form: "single",
36153
+ optional: false
36154
+ }],
36155
+ "deviceManager.updateDeviceField": [{
36156
+ name: "deviceId",
36157
+ form: "single",
36158
+ optional: false
36159
+ }],
36160
+ "deviceManager.updateDeviceFieldsBatch": [{
36161
+ name: "deviceId",
36162
+ form: "single",
36163
+ optional: false
36164
+ }],
36165
+ "deviceOps.getConfigEntries": [{
36166
+ name: "deviceId",
36167
+ form: "single",
36168
+ optional: false
36169
+ }],
36170
+ "deviceOps.getRawState": [{
36171
+ name: "deviceId",
36172
+ form: "single",
36173
+ optional: false
36174
+ }],
36175
+ "deviceOps.getSettingsSchema": [{
36176
+ name: "deviceId",
36177
+ form: "single",
36178
+ optional: false
36179
+ }],
36180
+ "deviceOps.getStreamSources": [{
36181
+ name: "deviceId",
36182
+ form: "single",
36183
+ optional: false
36184
+ }],
36185
+ "deviceOps.removeDevice": [{
36186
+ name: "deviceId",
36187
+ form: "single",
36188
+ optional: false
36189
+ }],
36190
+ "deviceOps.runAction": [{
36191
+ name: "deviceId",
36192
+ form: "single",
36193
+ optional: false
36194
+ }],
36195
+ "deviceOps.setConfig": [{
36196
+ name: "deviceId",
36197
+ form: "single",
36198
+ optional: false
36199
+ }],
36200
+ "deviceState.getCapSlice": [{
36201
+ name: "deviceId",
36202
+ form: "single",
36203
+ optional: false
36204
+ }],
36205
+ "deviceState.getSnapshot": [{
36206
+ name: "deviceId",
36207
+ form: "single",
36208
+ optional: false
36209
+ }],
36210
+ "deviceState.setCapSlice": [{
36211
+ name: "deviceId",
36212
+ form: "single",
36213
+ optional: false
36214
+ }],
36215
+ "events.getEventClipUrl": [{
36216
+ name: "deviceId",
36217
+ form: "single",
36218
+ optional: false
36219
+ }],
36220
+ "events.getEvents": [{
36221
+ name: "deviceId",
36222
+ form: "single",
36223
+ optional: false
36224
+ }],
36225
+ "events.getEventThumbnail": [{
36226
+ name: "deviceId",
36227
+ form: "single",
36228
+ optional: false
36229
+ }],
36230
+ "faceGallery.getFaceByTrack": [{
36231
+ name: "deviceId",
36232
+ form: "single",
36233
+ optional: false
36234
+ }],
36235
+ "faceGallery.listRecentFaces": [{
36236
+ name: "deviceId",
36237
+ form: "single",
36238
+ optional: true
36239
+ }],
36240
+ "fanControl.setDirection": [{
36241
+ name: "deviceId",
36242
+ form: "single",
36243
+ optional: false
36244
+ }],
36245
+ "fanControl.setOscillating": [{
36246
+ name: "deviceId",
36247
+ form: "single",
36248
+ optional: false
36249
+ }],
36250
+ "fanControl.setPercentage": [{
36251
+ name: "deviceId",
36252
+ form: "single",
36253
+ optional: false
36254
+ }],
36255
+ "fanControl.setPreset": [{
36256
+ name: "deviceId",
36257
+ form: "single",
36258
+ optional: false
36259
+ }],
36260
+ "humidifier.setMode": [{
36261
+ name: "deviceId",
36262
+ form: "single",
36263
+ optional: false
36264
+ }],
36265
+ "humidifier.setOn": [{
36266
+ name: "deviceId",
36267
+ form: "single",
36268
+ optional: false
36269
+ }],
36270
+ "humidifier.setTargetHumidity": [{
36271
+ name: "deviceId",
36272
+ form: "single",
36273
+ optional: false
36274
+ }],
36275
+ "imageSettings.getOptions": [{
36276
+ name: "deviceId",
36277
+ form: "single",
36278
+ optional: false
36279
+ }],
36280
+ "imageSettings.setSettings": [{
36281
+ name: "deviceId",
36282
+ form: "single",
36283
+ optional: false
36284
+ }],
36285
+ "intercom.endTalkSession": [{
36286
+ name: "deviceId",
36287
+ form: "single",
36288
+ optional: false
36289
+ }],
36290
+ "intercom.handleAnswer": [{
36291
+ name: "deviceId",
36292
+ form: "single",
36293
+ optional: false
36294
+ }],
36295
+ "intercom.pushTalkAudio": [{
36296
+ name: "deviceId",
36297
+ form: "single",
36298
+ optional: false
36299
+ }],
36300
+ "intercom.startSession": [{
36301
+ name: "deviceId",
36302
+ form: "single",
36303
+ optional: false
36304
+ }],
36305
+ "intercom.startTalkSession": [{
36306
+ name: "deviceId",
36307
+ form: "single",
36308
+ optional: false
36309
+ }],
36310
+ "intercom.stopSession": [{
36311
+ name: "deviceId",
36312
+ form: "single",
36313
+ optional: false
36314
+ }],
36315
+ "lawnMowerControl.dock": [{
36316
+ name: "deviceId",
36317
+ form: "single",
36318
+ optional: false
36319
+ }],
36320
+ "lawnMowerControl.pause": [{
36321
+ name: "deviceId",
36322
+ form: "single",
36323
+ optional: false
36324
+ }],
36325
+ "lawnMowerControl.startMowing": [{
36326
+ name: "deviceId",
36327
+ form: "single",
36328
+ optional: false
36329
+ }],
36330
+ "lockControl.lock": [{
36331
+ name: "deviceId",
36332
+ form: "single",
36333
+ optional: false
36334
+ }],
36335
+ "lockControl.open": [{
36336
+ name: "deviceId",
36337
+ form: "single",
36338
+ optional: false
36339
+ }],
36340
+ "lockControl.unlock": [{
36341
+ name: "deviceId",
36342
+ form: "single",
36343
+ optional: false
36344
+ }],
36345
+ "mediaPlayer.next": [{
36346
+ name: "deviceId",
36347
+ form: "single",
36348
+ optional: false
36349
+ }],
36350
+ "mediaPlayer.pause": [{
36351
+ name: "deviceId",
36352
+ form: "single",
36353
+ optional: false
36354
+ }],
36355
+ "mediaPlayer.play": [{
36356
+ name: "deviceId",
36357
+ form: "single",
36358
+ optional: false
36359
+ }],
36360
+ "mediaPlayer.playMedia": [{
36361
+ name: "deviceId",
36362
+ form: "single",
36363
+ optional: false
36364
+ }],
36365
+ "mediaPlayer.previous": [{
36366
+ name: "deviceId",
36367
+ form: "single",
36368
+ optional: false
36369
+ }],
36370
+ "mediaPlayer.seek": [{
36371
+ name: "deviceId",
36372
+ form: "single",
36373
+ optional: false
36374
+ }],
36375
+ "mediaPlayer.selectSource": [{
36376
+ name: "deviceId",
36377
+ form: "single",
36378
+ optional: false
36379
+ }],
36380
+ "mediaPlayer.setMute": [{
36381
+ name: "deviceId",
36382
+ form: "single",
36383
+ optional: false
36384
+ }],
36385
+ "mediaPlayer.setRepeat": [{
36386
+ name: "deviceId",
36387
+ form: "single",
36388
+ optional: false
36389
+ }],
36390
+ "mediaPlayer.setShuffle": [{
36391
+ name: "deviceId",
36392
+ form: "single",
36393
+ optional: false
36394
+ }],
36395
+ "mediaPlayer.setVolume": [{
36396
+ name: "deviceId",
36397
+ form: "single",
36398
+ optional: false
36399
+ }],
36400
+ "mediaPlayer.stop": [{
36401
+ name: "deviceId",
36402
+ form: "single",
36403
+ optional: false
36404
+ }],
36405
+ "motion.isDetected": [{
36406
+ name: "deviceId",
36407
+ form: "single",
36408
+ optional: false
36409
+ }],
36410
+ "motionDetection.analyze": [{
36411
+ name: "deviceId",
36412
+ form: "single",
36413
+ optional: false
36414
+ }],
36415
+ "motionDetection.removeCamera": [{
36416
+ name: "deviceId",
36417
+ form: "single",
36418
+ optional: false
36419
+ }],
36420
+ "motionTrigger.setMotionTrigger": [{
36421
+ name: "deviceId",
36422
+ form: "single",
36423
+ optional: false
36424
+ }],
36425
+ "motionZones.getOptions": [{
36426
+ name: "deviceId",
36427
+ form: "single",
36428
+ optional: false
36429
+ }],
36430
+ "motionZones.setZone": [{
36431
+ name: "deviceId",
36432
+ form: "single",
36433
+ optional: false
36434
+ }],
36435
+ "nativeObjectDetection.setEnabled": [{
36436
+ name: "deviceId",
36437
+ form: "single",
36438
+ optional: false
36439
+ }],
36440
+ "networkQuality.getDeviceStats": [{
36441
+ name: "deviceId",
36442
+ form: "single",
36443
+ optional: false
36444
+ }],
36445
+ "networkQuality.reportClientStats": [{
36446
+ name: "deviceId",
36447
+ form: "single",
36448
+ optional: false
36449
+ }],
36450
+ "notificationRules.setDeviceMuted": [{
36451
+ name: "deviceId",
36452
+ form: "single",
36453
+ optional: false
36454
+ }],
36455
+ "notifier.cancel": [{
36456
+ name: "deviceId",
36457
+ form: "single",
36458
+ optional: false
36459
+ }],
36460
+ "notifier.send": [{
36461
+ name: "deviceId",
36462
+ form: "single",
36463
+ optional: false
36464
+ }],
36465
+ "osd.setOverlay": [{
36466
+ name: "deviceId",
36467
+ form: "single",
36468
+ optional: false
36469
+ }],
36470
+ "osdManager.clearSlotBinding": [{
36471
+ name: "deviceId",
36472
+ form: "single",
36473
+ optional: false
36474
+ }],
36475
+ "osdManager.copyDeviceConfiguration": [{
36476
+ name: "sourceDeviceId",
36477
+ form: "single",
36478
+ optional: false
36479
+ }, {
36480
+ name: "targetDeviceId",
36481
+ form: "single",
36482
+ optional: false
36483
+ }],
36484
+ "osdManager.getDeviceOsd": [{
36485
+ name: "deviceId",
36486
+ form: "single",
36487
+ optional: false
36488
+ }],
36489
+ "osdManager.getSourceCatalog": [{
36490
+ name: "deviceId",
36491
+ form: "single",
36492
+ optional: false
36493
+ }],
36494
+ "osdManager.previewSlot": [{
36495
+ name: "deviceId",
36496
+ form: "single",
36497
+ optional: false
36498
+ }],
36499
+ "osdManager.renderDevice": [{
36500
+ name: "deviceId",
36501
+ form: "single",
36502
+ optional: false
36503
+ }],
36504
+ "osdManager.setSlotBinding": [{
36505
+ name: "deviceId",
36506
+ form: "single",
36507
+ optional: false
36508
+ }],
36509
+ "petFeeder.callPet": [{
36510
+ name: "deviceId",
36511
+ form: "single",
36512
+ optional: false
36513
+ }],
36514
+ "petFeeder.cancelFeed": [{
36515
+ name: "deviceId",
36516
+ form: "single",
36517
+ optional: false
36518
+ }],
36519
+ "petFeeder.feed": [{
36520
+ name: "deviceId",
36521
+ form: "single",
36522
+ optional: false
36523
+ }],
36524
+ "petFeeder.markFoodReplenished": [{
36525
+ name: "deviceId",
36526
+ form: "single",
36527
+ optional: false
36528
+ }],
36529
+ "petFeeder.playSound": [{
36530
+ name: "deviceId",
36531
+ form: "single",
36532
+ optional: false
36533
+ }],
36534
+ "petFeeder.resetDesiccant": [{
36535
+ name: "deviceId",
36536
+ form: "single",
36537
+ optional: false
36538
+ }],
36539
+ "petFeeder.setChildLock": [{
36540
+ name: "deviceId",
36541
+ form: "single",
36542
+ optional: false
36543
+ }],
36544
+ "petFeeder.setFeedSound": [{
36545
+ name: "deviceId",
36546
+ form: "single",
36547
+ optional: false
36548
+ }],
36549
+ "petFeeder.setIndicatorLight": [{
36550
+ name: "deviceId",
36551
+ form: "single",
36552
+ optional: false
36553
+ }],
36554
+ "petFeeder.setVolume": [{
36555
+ name: "deviceId",
36556
+ form: "single",
36557
+ optional: false
36558
+ }],
36559
+ "pipelineAnalytics.clearTracks": [{
36560
+ name: "deviceId",
36561
+ form: "single",
36562
+ optional: false
36563
+ }],
36564
+ "pipelineAnalytics.completeRetrainTrack": [{
36565
+ name: "deviceId",
36566
+ form: "single",
36567
+ optional: false
36568
+ }],
36569
+ "pipelineAnalytics.deleteDeviceEvents": [{
36570
+ name: "deviceId",
36571
+ form: "single",
36572
+ optional: false
36573
+ }],
36574
+ "pipelineAnalytics.deleteTracks": [{
36575
+ name: "deviceId",
36576
+ form: "single",
36577
+ optional: false
36578
+ }],
36579
+ "pipelineAnalytics.deselectRetrainFrame": [{
36580
+ name: "deviceId",
36581
+ form: "single",
36582
+ optional: false
36583
+ }],
36584
+ "pipelineAnalytics.getActiveTracks": [{
36585
+ name: "deviceId",
36586
+ form: "single",
36587
+ optional: false
36588
+ }],
36589
+ "pipelineAnalytics.getAudioEvents": [{
36590
+ name: "deviceId",
36591
+ form: "single",
36592
+ optional: false
36593
+ }],
36594
+ "pipelineAnalytics.getEventDensity": [{
36595
+ name: "deviceId",
36596
+ form: "single",
36597
+ optional: false
36598
+ }],
36599
+ "pipelineAnalytics.getKeyEvents": [{
36600
+ name: "deviceId",
36601
+ form: "single",
36602
+ optional: false
36603
+ }],
36604
+ "pipelineAnalytics.getMotionEvents": [{
36605
+ name: "deviceId",
36606
+ form: "single",
36607
+ optional: false
36608
+ }],
36609
+ "pipelineAnalytics.getObjectEvents": [{
36610
+ name: "deviceId",
36611
+ form: "single",
36612
+ optional: false
36613
+ }],
36614
+ "pipelineAnalytics.getRetrainExportUrl": [{
36615
+ name: "deviceIds",
36616
+ form: "array",
36617
+ optional: true
36618
+ }],
36619
+ "pipelineAnalytics.getSensorEvents": [{
36620
+ name: "deviceId",
36621
+ form: "single",
36622
+ optional: false
36623
+ }],
36624
+ "pipelineAnalytics.getTrack": [{
36625
+ name: "deviceId",
36626
+ form: "single",
36627
+ optional: false
36628
+ }],
36629
+ "pipelineAnalytics.getTrainingExportSummary": [{
36630
+ name: "deviceIds",
36631
+ form: "array",
36632
+ optional: true
36633
+ }],
36634
+ "pipelineAnalytics.getTrainingExportUrl": [{
36635
+ name: "deviceIds",
36636
+ form: "array",
36637
+ optional: true
36638
+ }],
36639
+ "pipelineAnalytics.listEventKinds": [{
36640
+ name: "deviceId",
36641
+ form: "single",
36642
+ optional: false
36643
+ }],
36644
+ "pipelineAnalytics.listEventKindsBatch": [{
36645
+ name: "deviceIds",
36646
+ form: "array",
36647
+ optional: false
36648
+ }],
36649
+ "pipelineAnalytics.listOpsLog": [{
36650
+ name: "deviceId",
36651
+ form: "single",
36652
+ optional: true
36653
+ }],
36654
+ "pipelineAnalytics.listRecentTracks": [{
36655
+ name: "deviceIds",
36656
+ form: "array",
36657
+ optional: false
36658
+ }],
36659
+ "pipelineAnalytics.listRetrainStaging": [{
36660
+ name: "deviceIds",
36661
+ form: "array",
36662
+ optional: true
36663
+ }],
36664
+ "pipelineAnalytics.listTracks": [{
36665
+ name: "deviceId",
36666
+ form: "single",
36667
+ optional: false
36668
+ }],
36669
+ "pipelineAnalytics.proposeRetrainAnnotations": [{
36670
+ name: "deviceId",
36671
+ form: "single",
36672
+ optional: false
36673
+ }],
36674
+ "pipelineAnalytics.pruneEventsBefore": [{
36675
+ name: "deviceId",
36676
+ form: "single",
36677
+ optional: false
36678
+ }],
36679
+ "pipelineAnalytics.pruneTracksBefore": [{
36680
+ name: "deviceId",
36681
+ form: "single",
36682
+ optional: false
36683
+ }],
36684
+ "pipelineAnalytics.rebuildObjectEmbeddings": [{
36685
+ name: "deviceId",
36686
+ form: "single",
36687
+ optional: true
36688
+ }],
36689
+ "pipelineAnalytics.restageRetrainTrack": [{
36690
+ name: "deviceId",
36691
+ form: "single",
36692
+ optional: false
36693
+ }],
36694
+ "pipelineAnalytics.saveRetrainAnnotations": [{
36695
+ name: "deviceId",
36696
+ form: "single",
36697
+ optional: false
36698
+ }],
36699
+ "pipelineAnalytics.searchObjectEvents": [{
36700
+ name: "deviceId",
36701
+ form: "single",
36702
+ optional: true
36703
+ }],
36704
+ "pipelineAnalytics.selectRetrainFrames": [{
36705
+ name: "deviceId",
36706
+ form: "single",
36707
+ optional: false
36708
+ }],
36709
+ "pipelineAnalytics.setTrackFlags": [{
36710
+ name: "deviceId",
36711
+ form: "single",
36712
+ optional: false
36713
+ }],
36714
+ "pipelineAnalytics.wipeAllAnalytics": [{
36715
+ name: "deviceId",
36716
+ form: "single",
36717
+ optional: false
36718
+ }],
36719
+ "pipelineExecutor.runPipeline": [{
36720
+ name: "deviceId",
36721
+ form: "single",
36722
+ optional: true
36723
+ }],
36724
+ "pipelineExecutor.runPipelineBatch": [{
36725
+ name: "deviceId",
36726
+ form: "single",
36727
+ optional: true
36728
+ }],
36729
+ "pipelineOrchestrator.assignAudio": [{
36730
+ name: "deviceId",
36731
+ form: "single",
36732
+ optional: false
36733
+ }],
36734
+ "pipelineOrchestrator.assignPipeline": [{
36735
+ name: "deviceId",
36736
+ form: "single",
36737
+ optional: false
36738
+ }],
36739
+ "pipelineOrchestrator.getAudioAssignment": [{
36740
+ name: "deviceId",
36741
+ form: "single",
36742
+ optional: false
36743
+ }],
36744
+ "pipelineOrchestrator.getCameraMetrics": [{
36745
+ name: "deviceId",
36746
+ form: "single",
36747
+ optional: false
36748
+ }],
36749
+ "pipelineOrchestrator.getCameraSettings": [{
36750
+ name: "deviceId",
36751
+ form: "single",
36752
+ optional: false
36753
+ }],
36754
+ "pipelineOrchestrator.getCameraStatus": [{
36755
+ name: "deviceId",
36756
+ form: "single",
36757
+ optional: false
36758
+ }],
36759
+ "pipelineOrchestrator.getCameraStatuses": [{
36760
+ name: "deviceIds",
36761
+ form: "array",
36762
+ optional: true
36763
+ }],
36764
+ "pipelineOrchestrator.getCameraStepOverrides": [{
36765
+ name: "deviceId",
36766
+ form: "single",
36767
+ optional: false
36768
+ }],
36769
+ "pipelineOrchestrator.getCameraSwitches": [{
36770
+ name: "deviceId",
36771
+ form: "single",
36772
+ optional: false
36773
+ }],
36774
+ "pipelineOrchestrator.getPipelineAssignment": [{
36775
+ name: "deviceId",
36776
+ form: "single",
36777
+ optional: false
36778
+ }],
36779
+ "pipelineOrchestrator.getPipelineDevicePin": [{
36780
+ name: "deviceId",
36781
+ form: "single",
36782
+ optional: false
36783
+ }],
36784
+ "pipelineOrchestrator.resolvePipeline": [{
36785
+ name: "deviceId",
36786
+ form: "single",
36787
+ optional: false
36788
+ }],
36789
+ "pipelineOrchestrator.setCameraPipelineForAgent": [{
36790
+ name: "deviceId",
36791
+ form: "single",
36792
+ optional: false
36793
+ }],
36794
+ "pipelineOrchestrator.setCameraStepOverride": [{
36795
+ name: "deviceId",
36796
+ form: "single",
36797
+ optional: false
36798
+ }],
36799
+ "pipelineOrchestrator.setCameraStepToggle": [{
36800
+ name: "deviceId",
36801
+ form: "single",
36802
+ optional: false
36803
+ }],
36804
+ "pipelineOrchestrator.setCameraSwitch": [{
36805
+ name: "deviceId",
36806
+ form: "single",
36807
+ optional: false
36808
+ }],
36809
+ "pipelineOrchestrator.setPipelineDevicePin": [{
36810
+ name: "deviceId",
36811
+ form: "single",
36812
+ optional: false
36813
+ }],
36814
+ "pipelineOrchestrator.unassignAudio": [{
36815
+ name: "deviceId",
36816
+ form: "single",
36817
+ optional: false
36818
+ }],
36819
+ "pipelineOrchestrator.unassignPipeline": [{
36820
+ name: "deviceId",
36821
+ form: "single",
36822
+ optional: false
36823
+ }],
36824
+ "pipelineRunner.attachCamera": [{
36825
+ name: "deviceId",
36826
+ form: "single",
36827
+ optional: false
36828
+ }],
36829
+ "pipelineRunner.detachCamera": [{
36830
+ name: "deviceId",
36831
+ form: "single",
36832
+ optional: false
36833
+ }],
36834
+ "pipelineRunner.getCameraMetrics": [{
36835
+ name: "deviceId",
36836
+ form: "single",
36837
+ optional: false
36838
+ }],
36839
+ "pipelineRunner.reportMotion": [{
36840
+ name: "deviceId",
36841
+ form: "single",
36842
+ optional: false
36843
+ }],
36844
+ "pipelineRunner.runDetailSubtree": [{
36845
+ name: "deviceId",
36846
+ form: "single",
36847
+ optional: false
36848
+ }],
36849
+ "pipelineRunner.runStatelessStep": [{
36850
+ name: "sourceDeviceId",
36851
+ form: "single",
36852
+ optional: false
36853
+ }],
36854
+ "plateGallery.getPlateByTrack": [{
36855
+ name: "deviceId",
36856
+ form: "single",
36857
+ optional: false
36858
+ }],
36859
+ "plateGallery.listPlates": [{
36860
+ name: "deviceId",
36861
+ form: "single",
36862
+ optional: true
36863
+ }],
36864
+ "privacyMask.getOptions": [{
36865
+ name: "deviceId",
36866
+ form: "single",
36867
+ optional: false
36868
+ }],
36869
+ "privacyMask.setAudioEnabled": [{
36870
+ name: "deviceId",
36871
+ form: "single",
36872
+ optional: false
36873
+ }],
36874
+ "privacyMask.setMask": [{
36875
+ name: "deviceId",
36876
+ form: "single",
36877
+ optional: false
36878
+ }],
36879
+ "ptz.continuousMove": [{
36880
+ name: "deviceId",
36881
+ form: "single",
36882
+ optional: false
36883
+ }],
36884
+ "ptz.deletePreset": [{
36885
+ name: "deviceId",
36886
+ form: "single",
36887
+ optional: false
36888
+ }],
36889
+ "ptz.getOptions": [{
36890
+ name: "deviceId",
36891
+ form: "single",
36892
+ optional: false
36893
+ }],
36894
+ "ptz.getPosition": [{
36895
+ name: "deviceId",
36896
+ form: "single",
36897
+ optional: false
36898
+ }],
36899
+ "ptz.getPresets": [{
36900
+ name: "deviceId",
36901
+ form: "single",
36902
+ optional: false
36903
+ }],
36904
+ "ptz.goHome": [{
36905
+ name: "deviceId",
36906
+ form: "single",
36907
+ optional: false
36908
+ }],
36909
+ "ptz.goToPreset": [{
36910
+ name: "deviceId",
36911
+ form: "single",
36912
+ optional: false
36913
+ }],
36914
+ "ptz.move": [{
36915
+ name: "deviceId",
36916
+ form: "single",
36917
+ optional: false
36918
+ }],
36919
+ "ptz.savePreset": [{
36920
+ name: "deviceId",
36921
+ form: "single",
36922
+ optional: false
36923
+ }],
36924
+ "ptz.setAutofocus": [{
36925
+ name: "deviceId",
36926
+ form: "single",
36927
+ optional: false
36928
+ }],
36929
+ "ptz.stop": [{
36930
+ name: "deviceId",
36931
+ form: "single",
36932
+ optional: false
36933
+ }],
36934
+ "ptzAutotrack.getSettings": [{
36935
+ name: "deviceId",
36936
+ form: "single",
36937
+ optional: false
36938
+ }],
36939
+ "ptzAutotrack.getStatus": [{
36940
+ name: "deviceId",
36941
+ form: "single",
36942
+ optional: false
36943
+ }],
36944
+ "ptzAutotrack.setEnabled": [{
36945
+ name: "deviceId",
36946
+ form: "single",
36947
+ optional: false
36948
+ }],
36949
+ "ptzAutotrack.setSettings": [{
36950
+ name: "deviceId",
36951
+ form: "single",
36952
+ optional: false
36953
+ }],
36954
+ "reboot.reboot": [{
36955
+ name: "deviceId",
36956
+ form: "single",
36957
+ optional: false
36958
+ }],
36959
+ "recording.deleteFootprint": [{
36960
+ name: "deviceId",
36961
+ form: "single",
36962
+ optional: false
36963
+ }],
36964
+ "recording.getAvailability": [{
36965
+ name: "deviceId",
36966
+ form: "single",
36967
+ optional: false
36968
+ }],
36969
+ "recording.getDaysWithRecordings": [{
36970
+ name: "deviceId",
36971
+ form: "single",
36972
+ optional: false
36973
+ }],
36974
+ "recording.getDeviceConfig": [{
36975
+ name: "deviceId",
36976
+ form: "single",
36977
+ optional: false
36978
+ }],
36979
+ "recording.getPlaybackManifest": [{
36980
+ name: "deviceId",
36981
+ form: "single",
36982
+ optional: false
36983
+ }],
36984
+ "recording.listOpsLog": [{
36985
+ name: "deviceId",
36986
+ form: "single",
36987
+ optional: true
36988
+ }],
36989
+ "recording.locateSegment": [{
36990
+ name: "deviceId",
36991
+ form: "single",
36992
+ optional: false
36993
+ }],
36994
+ "recording.pruneFootage": [{
36995
+ name: "deviceId",
36996
+ form: "single",
36997
+ optional: false
36998
+ }],
36999
+ "recording.readGopBytes": [{
37000
+ name: "deviceId",
37001
+ form: "single",
37002
+ optional: false
37003
+ }],
37004
+ "recording.readSegmentBytes": [{
37005
+ name: "deviceId",
37006
+ form: "single",
37007
+ optional: false
37008
+ }],
37009
+ "recording.relocateFootage": [{
37010
+ name: "deviceId",
37011
+ form: "single",
37012
+ optional: true
37013
+ }],
37014
+ "recording.renderClip": [{
37015
+ name: "deviceId",
37016
+ form: "single",
37017
+ optional: false
37018
+ }],
37019
+ "recording.renderGif": [{
37020
+ name: "deviceId",
37021
+ form: "single",
37022
+ optional: false
37023
+ }],
37024
+ "recording.rescanStorage": [{
37025
+ name: "deviceId",
37026
+ form: "single",
37027
+ optional: false
37028
+ }],
37029
+ "recording.setDeviceConfig": [{
37030
+ name: "deviceId",
37031
+ form: "single",
37032
+ optional: false
37033
+ }],
37034
+ "recording.startStorageMigrationMove": [{
37035
+ name: "deviceId",
37036
+ form: "single",
37037
+ optional: true
37038
+ }],
37039
+ "recordingExport.createExport": [{
37040
+ name: "deviceId",
37041
+ form: "single",
37042
+ optional: false
37043
+ }],
37044
+ "recordingExport.listExports": [{
37045
+ name: "deviceId",
37046
+ form: "single",
37047
+ optional: true
37048
+ }],
37049
+ "sceneMonitor.captureReference": [{
37050
+ name: "deviceId",
37051
+ form: "single",
37052
+ optional: false
37053
+ }],
37054
+ "sceneMonitor.createScene": [{
37055
+ name: "deviceId",
37056
+ form: "single",
37057
+ optional: false
37058
+ }],
37059
+ "sceneMonitor.deleteReference": [{
37060
+ name: "deviceId",
37061
+ form: "single",
37062
+ optional: false
37063
+ }],
37064
+ "sceneMonitor.deleteScene": [{
37065
+ name: "deviceId",
37066
+ form: "single",
37067
+ optional: false
37068
+ }],
37069
+ "sceneMonitor.listScenes": [{
37070
+ name: "deviceId",
37071
+ form: "single",
37072
+ optional: false
37073
+ }],
37074
+ "sceneMonitor.recheckNow": [{
37075
+ name: "deviceId",
37076
+ form: "single",
37077
+ optional: false
37078
+ }],
37079
+ "sceneMonitor.updateScene": [{
37080
+ name: "deviceId",
37081
+ form: "single",
37082
+ optional: false
37083
+ }],
37084
+ "scriptRunner.run": [{
37085
+ name: "deviceId",
37086
+ form: "single",
37087
+ optional: false
37088
+ }],
37089
+ "scriptRunner.stop": [{
37090
+ name: "deviceId",
37091
+ form: "single",
37092
+ optional: false
37093
+ }],
37094
+ "snapshot.getSnapshot": [{
37095
+ name: "deviceId",
37096
+ form: "single",
37097
+ optional: false
37098
+ }],
37099
+ "snapshot.getSnapshotOverview": [{
37100
+ name: "deviceIds",
37101
+ form: "array",
37102
+ optional: false
37103
+ }],
37104
+ "snapshot.invalidateCache": [{
37105
+ name: "deviceId",
37106
+ form: "single",
37107
+ optional: false
37108
+ }],
37109
+ "streamBroker.acquireEgressTranscode": [{
37110
+ name: "deviceId",
37111
+ form: "single",
37112
+ optional: false
37113
+ }],
37114
+ "streamBroker.assignProfile": [{
37115
+ name: "deviceId",
37116
+ form: "single",
37117
+ optional: false
37118
+ }],
37119
+ "streamBroker.getDeviceAudioMute": [{
37120
+ name: "deviceId",
37121
+ form: "single",
37122
+ optional: false
37123
+ }],
37124
+ "streamBroker.getStreamWithCodec": [{
37125
+ name: "deviceId",
37126
+ form: "single",
37127
+ optional: false
37128
+ }],
37129
+ "streamBroker.produceEventMedia": [{
37130
+ name: "deviceId",
37131
+ form: "single",
37132
+ optional: false
37133
+ }],
37134
+ "streamBroker.publishCameraStream": [{
37135
+ name: "deviceId",
37136
+ form: "single",
37137
+ optional: false
37138
+ }],
37139
+ "streamBroker.renderPreBufferClip": [{
37140
+ name: "deviceId",
37141
+ form: "single",
37142
+ optional: false
37143
+ }],
37144
+ "streamBroker.restartProfile": [{
37145
+ name: "deviceId",
37146
+ form: "single",
37147
+ optional: false
37148
+ }],
37149
+ "streamBroker.retractCameraStream": [{
37150
+ name: "deviceId",
37151
+ form: "single",
37152
+ optional: false
37153
+ }],
37154
+ "streamBroker.setDeviceAudioMute": [{
37155
+ name: "deviceId",
37156
+ form: "single",
37157
+ optional: false
37158
+ }],
37159
+ "streamBroker.unassignProfile": [{
37160
+ name: "deviceId",
37161
+ form: "single",
37162
+ optional: false
37163
+ }],
37164
+ "streamCatalog.getCatalog": [{
37165
+ name: "deviceId",
37166
+ form: "single",
37167
+ optional: false
37168
+ }],
37169
+ "streamParams.getConfigSchema": [{
37170
+ name: "deviceId",
37171
+ form: "single",
37172
+ optional: false
37173
+ }],
37174
+ "streamParams.getOptions": [{
37175
+ name: "deviceId",
37176
+ form: "single",
37177
+ optional: false
37178
+ }],
37179
+ "streamParams.setProfile": [{
37180
+ name: "deviceId",
37181
+ form: "single",
37182
+ optional: false
37183
+ }],
37184
+ "switch.setState": [{
37185
+ name: "deviceId",
37186
+ form: "single",
37187
+ optional: false
37188
+ }],
37189
+ "vacuumControl.locate": [{
37190
+ name: "deviceId",
37191
+ form: "single",
37192
+ optional: false
37193
+ }],
37194
+ "vacuumControl.pause": [{
37195
+ name: "deviceId",
37196
+ form: "single",
37197
+ optional: false
37198
+ }],
37199
+ "vacuumControl.returnToBase": [{
37200
+ name: "deviceId",
37201
+ form: "single",
37202
+ optional: false
37203
+ }],
37204
+ "vacuumControl.setFanSpeed": [{
37205
+ name: "deviceId",
37206
+ form: "single",
37207
+ optional: false
37208
+ }],
37209
+ "vacuumControl.start": [{
37210
+ name: "deviceId",
37211
+ form: "single",
37212
+ optional: false
37213
+ }],
37214
+ "vacuumControl.stop": [{
37215
+ name: "deviceId",
37216
+ form: "single",
37217
+ optional: false
37218
+ }],
37219
+ "valve.close": [{
37220
+ name: "deviceId",
37221
+ form: "single",
37222
+ optional: false
37223
+ }],
37224
+ "valve.open": [{
37225
+ name: "deviceId",
37226
+ form: "single",
37227
+ optional: false
37228
+ }],
37229
+ "valve.setPosition": [{
37230
+ name: "deviceId",
37231
+ form: "single",
37232
+ optional: false
37233
+ }],
37234
+ "valve.stop": [{
37235
+ name: "deviceId",
37236
+ form: "single",
37237
+ optional: false
37238
+ }],
37239
+ "videoclips.getClipPlayback": [{
37240
+ name: "deviceId",
37241
+ form: "single",
37242
+ optional: false
37243
+ }],
37244
+ "videoclips.listClips": [{
37245
+ name: "deviceId",
37246
+ form: "single",
37247
+ optional: false
37248
+ }],
37249
+ "waterHeater.setAway": [{
37250
+ name: "deviceId",
37251
+ form: "single",
37252
+ optional: false
37253
+ }],
37254
+ "waterHeater.setOperationMode": [{
37255
+ name: "deviceId",
37256
+ form: "single",
37257
+ optional: false
37258
+ }],
37259
+ "waterHeater.setTargetTemp": [{
37260
+ name: "deviceId",
37261
+ form: "single",
37262
+ optional: false
37263
+ }],
37264
+ "webrtcSession.addIceCandidate": [{
37265
+ name: "deviceId",
37266
+ form: "single",
37267
+ optional: false
37268
+ }],
37269
+ "webrtcSession.closeSession": [{
37270
+ name: "deviceId",
37271
+ form: "single",
37272
+ optional: false
37273
+ }],
37274
+ "webrtcSession.createSession": [{
37275
+ name: "deviceId",
37276
+ form: "single",
37277
+ optional: false
37278
+ }],
37279
+ "webrtcSession.getIceCandidates": [{
37280
+ name: "deviceId",
37281
+ form: "single",
37282
+ optional: false
37283
+ }],
37284
+ "webrtcSession.getSessionState": [{
37285
+ name: "deviceId",
37286
+ form: "single",
37287
+ optional: false
37288
+ }],
37289
+ "webrtcSession.handleAnswer": [{
37290
+ name: "deviceId",
37291
+ form: "single",
37292
+ optional: false
37293
+ }],
37294
+ "webrtcSession.handleOffer": [{
37295
+ name: "deviceId",
37296
+ form: "single",
37297
+ optional: false
37298
+ }],
37299
+ "webrtcSession.hasAdaptiveBitrate": [{
37300
+ name: "deviceId",
37301
+ form: "single",
37302
+ optional: false
37303
+ }],
37304
+ "webrtcSession.listStreams": [{
37305
+ name: "deviceId",
37306
+ form: "single",
37307
+ optional: false
37308
+ }],
37309
+ "zoneAnalytics.getCameraHistory": [{
37310
+ name: "deviceId",
37311
+ form: "single",
37312
+ optional: false
37313
+ }],
37314
+ "zoneAnalytics.getCurrentSnapshot": [{
37315
+ name: "deviceId",
37316
+ form: "single",
37317
+ optional: false
37318
+ }],
37319
+ "zoneAnalytics.getUnzonedHistory": [{
37320
+ name: "deviceId",
37321
+ form: "single",
37322
+ optional: false
37323
+ }],
37324
+ "zoneAnalytics.getZoneHistory": [{
37325
+ name: "deviceId",
37326
+ form: "single",
37327
+ optional: false
37328
+ }],
37329
+ "zoneRules.listRules": [{
37330
+ name: "deviceId",
37331
+ form: "single",
37332
+ optional: false
37333
+ }],
37334
+ "zoneRules.setRules": [{
37335
+ name: "deviceId",
37336
+ form: "single",
37337
+ optional: false
37338
+ }],
37339
+ "zones.addZone": [{
37340
+ name: "deviceId",
37341
+ form: "single",
37342
+ optional: false
37343
+ }],
37344
+ "zones.listZones": [{
37345
+ name: "deviceId",
37346
+ form: "single",
37347
+ optional: false
37348
+ }],
37349
+ "zones.removeZone": [{
37350
+ name: "deviceId",
37351
+ form: "single",
37352
+ optional: false
37353
+ }],
37354
+ "zones.updateZone": [{
37355
+ name: "deviceId",
37356
+ form: "single",
37357
+ optional: false
37358
+ }]
37359
+ });
35518
37360
  Object.freeze({
35519
37361
  "broker": "broker",
35520
37362
  "device-export": "device-export",