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