@firebolt-js/core-client 1.0.0-next.5

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/CONTRIBUTING.md +4 -0
  3. package/LICENSE +202 -0
  4. package/NOTICE +24 -0
  5. package/README.md +26 -0
  6. package/dist/docs/Accessibility/index.md +384 -0
  7. package/dist/docs/Accessibility/schemas/index.md +52 -0
  8. package/dist/docs/Advertising/index.md +120 -0
  9. package/dist/docs/Device/index.md +297 -0
  10. package/dist/docs/Discovery/index.md +128 -0
  11. package/dist/docs/Display/index.md +87 -0
  12. package/dist/docs/Internal/index.md +68 -0
  13. package/dist/docs/Lifecycle2/index.md +160 -0
  14. package/dist/docs/Localization/index.md +314 -0
  15. package/dist/docs/Localization/schemas/index.md +41 -0
  16. package/dist/docs/Metrics/index.md +987 -0
  17. package/dist/docs/Network/index.md +128 -0
  18. package/dist/docs/Policies/schemas/index.md +25 -0
  19. package/dist/docs/Presentation/index.md +53 -0
  20. package/dist/docs/Stats/index.md +63 -0
  21. package/dist/docs/TextToSpeech/index.md +524 -0
  22. package/dist/docs/Types/schemas/index.md +37 -0
  23. package/dist/firebolt-core-app-open-rpc.json +1082 -0
  24. package/dist/firebolt-core-open-rpc.json +3773 -0
  25. package/dist/lib/Accessibility/defaults.mjs +61 -0
  26. package/dist/lib/Accessibility/index.mjs +148 -0
  27. package/dist/lib/Advertising/defaults.mjs +26 -0
  28. package/dist/lib/Advertising/index.mjs +31 -0
  29. package/dist/lib/Device/defaults.mjs +34 -0
  30. package/dist/lib/Device/index.mjs +84 -0
  31. package/dist/lib/Discovery/defaults.mjs +22 -0
  32. package/dist/lib/Discovery/index.mjs +34 -0
  33. package/dist/lib/Events/index.mjs +345 -0
  34. package/dist/lib/Gateway/AppApi.mjs +125 -0
  35. package/dist/lib/Gateway/Bidirectional.mjs +113 -0
  36. package/dist/lib/Gateway/PlatformApi.mjs +130 -0
  37. package/dist/lib/Gateway/index.mjs +48 -0
  38. package/dist/lib/Localization/defaults.mjs +44 -0
  39. package/dist/lib/Localization/index.mjs +123 -0
  40. package/dist/lib/Log/index.mjs +57 -0
  41. package/dist/lib/Metrics/defaults.mjs +40 -0
  42. package/dist/lib/Metrics/index.mjs +206 -0
  43. package/dist/lib/Network/defaults.mjs +24 -0
  44. package/dist/lib/Network/index.mjs +70 -0
  45. package/dist/lib/Platform/defaults.mjs +27 -0
  46. package/dist/lib/Platform/index.mjs +28 -0
  47. package/dist/lib/Prop/MockProps.mjs +28 -0
  48. package/dist/lib/Prop/Router.mjs +25 -0
  49. package/dist/lib/Prop/index.mjs +60 -0
  50. package/dist/lib/Settings/index.mjs +86 -0
  51. package/dist/lib/Transport/MockTransport.mjs +191 -0
  52. package/dist/lib/Transport/WebsocketTransport.mjs +55 -0
  53. package/dist/lib/Transport/index.mjs +81 -0
  54. package/dist/lib/firebolt.d.ts +795 -0
  55. package/dist/lib/firebolt.mjs +51 -0
  56. package/firebolt-js-core-client-1.0.0-next.5.tgz +0 -0
  57. package/package.json +54 -0
@@ -0,0 +1,3773 @@
1
+ {
2
+ "openrpc": "1.2.4",
3
+ "info": {
4
+ "title": "Firebolt Core Client",
5
+ "version": "1.0.0-next.5",
6
+ "x-module-descriptions": {
7
+ "Internal": "Internal methods for SDK / FEE integration",
8
+ "Accessibility": "The `Accessibility` module provides access to the user/device settings for closed captioning and voice guidance.\n\nApps **SHOULD** attempt o respect these settings, rather than manage and persist seprate settings, which would be different per-app.",
9
+ "Advertising": "A module for platform provided advertising settings and functionality.",
10
+ "Device": "A module for querying about the device and it's capabilities.",
11
+ "Discovery": "Your App likely wants to integrate with the Platform's discovery capabilities. For example to add a \"Watch Next\" tile that links to your app from the platform's home screen.\n\nGetting access to this information requires to connect to lower level APIs made available by the platform. Since implementations differ between operators and platforms, the Firebolt SDK offers a Discovery module, that exposes a generic, agnostic interface to the developer.\n\nUnder the hood, an underlying transport layer will then take care of calling the right APIs for the actual platform implementation that your App is running on.\n\nThe Discovery plugin is used to _send_ information to the Platform.\n\n### Localization\nApps should provide all user-facing strings in the device's language, as specified by the Firebolt `Localization.language` property.\n\nApps should provide prices in the same currency presented in the app. If multiple currencies are supported in the app, the app should provide prices in the user's current default currency.",
12
+ "Display": "A module for querying about the display",
13
+ "Lifecycle2": "Methods and events for responding to Lifecycle changes in your app.",
14
+ "Localization": "Methods for accessing location and language preferences.",
15
+ "Metrics": "Methods for sending metrics",
16
+ "Network": "Methods for accessing network information.",
17
+ "Presentation": "Methods for accessing Presentation preferences.",
18
+ "Stats": "Provides methods to retrieve application-level system information.",
19
+ "TextToSpeech": "A module for controlling and accessing Text To Speech over Firebolt."
20
+ }
21
+ },
22
+ "methods": [
23
+ {
24
+ "name": "Accessibility.audioDescription",
25
+ "summary": "Returns the audio description setting of the device",
26
+ "params": [],
27
+ "tags": [
28
+ {
29
+ "name": "property:readonly"
30
+ },
31
+ {
32
+ "name": "capabilities",
33
+ "x-uses": [
34
+ "xrn:firebolt:capability:accessibility:audio-descriptions"
35
+ ]
36
+ }
37
+ ],
38
+ "result": {
39
+ "name": "setting",
40
+ "summary": "the audio description setting",
41
+ "schema": {
42
+ "type": "boolean"
43
+ }
44
+ },
45
+ "examples": [
46
+ {
47
+ "name": "Getting the audio description setting",
48
+ "params": [],
49
+ "result": {
50
+ "name": "Default Result",
51
+ "value": true
52
+ }
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "name": "Accessibility.closedCaptionsSettings",
58
+ "summary": "Returns captions settings: enabled, and a list of zero or more languages in order of decreasing preference",
59
+ "params": [],
60
+ "tags": [
61
+ {
62
+ "name": "property:readonly",
63
+ "x-notifier-params-flattening": "true"
64
+ },
65
+ {
66
+ "name": "capabilities",
67
+ "x-uses": [
68
+ "xrn:firebolt:capability:accessibility:closed-captions"
69
+ ]
70
+ }
71
+ ],
72
+ "result": {
73
+ "name": "closedCaptionsSettings",
74
+ "summary": "the closed captions settings",
75
+ "schema": {
76
+ "$ref": "#/x-schemas/Accessibility/ClosedCaptionsSettings"
77
+ }
78
+ },
79
+ "examples": [
80
+ {
81
+ "name": "Getting the closed captions settings",
82
+ "params": [],
83
+ "result": {
84
+ "name": "settings",
85
+ "value": {
86
+ "enabled": true,
87
+ "preferredLanguages": [
88
+ "eng",
89
+ "spa"
90
+ ]
91
+ }
92
+ }
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "name": "Accessibility.highContrastUI",
98
+ "summary": "Returns the high contrast UI device setting",
99
+ "params": [],
100
+ "tags": [
101
+ {
102
+ "name": "property:readonly"
103
+ },
104
+ {
105
+ "name": "capabilities",
106
+ "x-uses": [
107
+ "xrn:firebolt:capability:accessibility:high-contrast-ui"
108
+ ]
109
+ }
110
+ ],
111
+ "result": {
112
+ "name": "highContrastUI",
113
+ "summary": "Whether high-contrast UI mode is enabled",
114
+ "schema": {
115
+ "type": "boolean"
116
+ }
117
+ },
118
+ "examples": [
119
+ {
120
+ "name": "High-contrast UI mode is enabled",
121
+ "params": [],
122
+ "result": {
123
+ "name": "Default Result",
124
+ "value": true
125
+ }
126
+ }
127
+ ]
128
+ },
129
+ {
130
+ "name": "Accessibility.voiceGuidanceSettings",
131
+ "summary": "Returns voice guidance settings: enabled, rate, and verbosity",
132
+ "params": [],
133
+ "tags": [
134
+ {
135
+ "name": "property:readonly",
136
+ "x-notifier-params-flattening": "true"
137
+ },
138
+ {
139
+ "name": "capabilities",
140
+ "x-uses": [
141
+ "xrn:firebolt:capability:accessibility:voice-guidance"
142
+ ]
143
+ }
144
+ ],
145
+ "result": {
146
+ "name": "settings",
147
+ "summary": "the voice guidance settings",
148
+ "schema": {
149
+ "$ref": "#/x-schemas/Accessibility/VoiceGuidanceSettings"
150
+ }
151
+ },
152
+ "examples": [
153
+ {
154
+ "name": "Getting the voice guidance settings",
155
+ "params": [],
156
+ "result": {
157
+ "name": "Default Result",
158
+ "value": {
159
+ "enabled": true,
160
+ "rate": 0.8,
161
+ "navigationHints": true
162
+ }
163
+ }
164
+ }
165
+ ]
166
+ },
167
+ {
168
+ "name": "Accessibility.onAudioDescriptionChanged",
169
+ "summary": "Returns the audio description setting of the device",
170
+ "params": [
171
+ {
172
+ "name": "listen",
173
+ "schema": {
174
+ "type": "boolean"
175
+ }
176
+ }
177
+ ],
178
+ "tags": [
179
+ {
180
+ "name": "event",
181
+ "x-notifier": "Accessibility.onAudioDescriptionChanged",
182
+ "x-subscriber-for": "Accessibility.audioDescription"
183
+ },
184
+ {
185
+ "name": "capabilities",
186
+ "x-uses": [
187
+ "xrn:firebolt:capability:accessibility:audio-descriptions"
188
+ ]
189
+ }
190
+ ],
191
+ "examples": [
192
+ {
193
+ "name": "Getting the audio description setting",
194
+ "params": [
195
+ {
196
+ "name": "listen",
197
+ "value": true
198
+ }
199
+ ],
200
+ "result": {
201
+ "name": "result",
202
+ "value": null
203
+ }
204
+ }
205
+ ],
206
+ "result": {
207
+ "name": "result",
208
+ "schema": {
209
+ "type": "null"
210
+ }
211
+ }
212
+ },
213
+ {
214
+ "name": "Accessibility.onClosedCaptionsSettingsChanged",
215
+ "summary": "Returns captions settings: enabled, and a list of zero or more languages in order of decreasing preference",
216
+ "params": [
217
+ {
218
+ "name": "listen",
219
+ "schema": {
220
+ "type": "boolean"
221
+ }
222
+ }
223
+ ],
224
+ "tags": [
225
+ {
226
+ "name": "event",
227
+ "x-notifier-params-flattening": "true",
228
+ "x-notifier": "Accessibility.onClosedCaptionsSettingsChanged",
229
+ "x-subscriber-for": "Accessibility.closedCaptionsSettings"
230
+ },
231
+ {
232
+ "name": "capabilities",
233
+ "x-uses": [
234
+ "xrn:firebolt:capability:accessibility:closed-captions"
235
+ ]
236
+ }
237
+ ],
238
+ "examples": [
239
+ {
240
+ "name": "Getting the closed captions settings",
241
+ "params": [
242
+ {
243
+ "name": "listen",
244
+ "value": true
245
+ }
246
+ ],
247
+ "result": {
248
+ "name": "result",
249
+ "value": null
250
+ }
251
+ }
252
+ ],
253
+ "result": {
254
+ "name": "result",
255
+ "schema": {
256
+ "type": "null"
257
+ }
258
+ }
259
+ },
260
+ {
261
+ "name": "Accessibility.onHighContrastUIChanged",
262
+ "summary": "Returns the high contrast UI device setting",
263
+ "params": [
264
+ {
265
+ "name": "listen",
266
+ "schema": {
267
+ "type": "boolean"
268
+ }
269
+ }
270
+ ],
271
+ "tags": [
272
+ {
273
+ "name": "event",
274
+ "x-notifier": "Accessibility.onHighContrastUIChanged",
275
+ "x-subscriber-for": "Accessibility.highContrastUI"
276
+ },
277
+ {
278
+ "name": "capabilities",
279
+ "x-uses": [
280
+ "xrn:firebolt:capability:accessibility:high-contrast-ui"
281
+ ]
282
+ }
283
+ ],
284
+ "examples": [
285
+ {
286
+ "name": "High-contrast UI mode is enabled",
287
+ "params": [
288
+ {
289
+ "name": "listen",
290
+ "value": true
291
+ }
292
+ ],
293
+ "result": {
294
+ "name": "result",
295
+ "value": null
296
+ }
297
+ }
298
+ ],
299
+ "result": {
300
+ "name": "result",
301
+ "schema": {
302
+ "type": "null"
303
+ }
304
+ }
305
+ },
306
+ {
307
+ "name": "Accessibility.onVoiceGuidanceSettingsChanged",
308
+ "summary": "Returns voice guidance settings: enabled, rate, and verbosity",
309
+ "params": [
310
+ {
311
+ "name": "listen",
312
+ "schema": {
313
+ "type": "boolean"
314
+ }
315
+ }
316
+ ],
317
+ "tags": [
318
+ {
319
+ "name": "event",
320
+ "x-notifier-params-flattening": "true",
321
+ "x-notifier": "Accessibility.onVoiceGuidanceSettingsChanged",
322
+ "x-subscriber-for": "Accessibility.voiceGuidanceSettings"
323
+ },
324
+ {
325
+ "name": "capabilities",
326
+ "x-uses": [
327
+ "xrn:firebolt:capability:accessibility:voice-guidance"
328
+ ]
329
+ }
330
+ ],
331
+ "examples": [
332
+ {
333
+ "name": "Getting the voice guidance settings",
334
+ "params": [
335
+ {
336
+ "name": "listen",
337
+ "value": true
338
+ }
339
+ ],
340
+ "result": {
341
+ "name": "result",
342
+ "value": null
343
+ }
344
+ }
345
+ ],
346
+ "result": {
347
+ "name": "result",
348
+ "schema": {
349
+ "type": "null"
350
+ }
351
+ }
352
+ },
353
+ {
354
+ "name": "Advertising.advertisingId",
355
+ "tags": [
356
+ {
357
+ "name": "capabilities",
358
+ "x-uses": [
359
+ "xrn:firebolt:capability:advertising:identifier"
360
+ ]
361
+ }
362
+ ],
363
+ "summary": "Returns the IFA.",
364
+ "params": [],
365
+ "result": {
366
+ "name": "advertisingId",
367
+ "summary": "The advertising ID",
368
+ "schema": {
369
+ "$ref": "#/components/schemas/AdvertisingIdResult"
370
+ }
371
+ },
372
+ "examples": [
373
+ {
374
+ "name": "Getting the advertising ID",
375
+ "params": [],
376
+ "result": {
377
+ "name": "Default Result",
378
+ "value": {
379
+ "ifa": "bd87dd10-8d1d-4b93-b1a6-a8e5d410e400",
380
+ "ifa_type": "sspid",
381
+ "lmt": "0"
382
+ }
383
+ }
384
+ },
385
+ {
386
+ "name": "Getting the advertising ID with scope browse",
387
+ "params": [],
388
+ "result": {
389
+ "name": "Default Result",
390
+ "value": {
391
+ "ifa": "bd87dd10-8d1d-4b93-b1a6-a8e5d410e400",
392
+ "ifa_type": "sspid",
393
+ "lmt": "1"
394
+ }
395
+ }
396
+ },
397
+ {
398
+ "name": "Getting the advertising ID with scope content",
399
+ "params": [],
400
+ "result": {
401
+ "name": "Default Result",
402
+ "value": {
403
+ "ifa": "bd87dd10-8d1d-4b93-b1a6-a8e5d410e400",
404
+ "ifa_type": "dpid",
405
+ "lmt": "0"
406
+ }
407
+ }
408
+ }
409
+ ]
410
+ },
411
+ {
412
+ "name": "Device.uid",
413
+ "summary": "Returns a persistent unique UUID for the current app and device. The UUID is reset when the app or device is reset",
414
+ "params": [],
415
+ "tags": [
416
+ {
417
+ "name": "capabilities",
418
+ "x-uses": [
419
+ "xrn:firebolt:capability:device:uid"
420
+ ]
421
+ }
422
+ ],
423
+ "result": {
424
+ "name": "uniqueId",
425
+ "summary": "A unique UUID for this app-device pair.",
426
+ "schema": {
427
+ "type": "string"
428
+ }
429
+ },
430
+ "examples": [
431
+ {
432
+ "name": "Getting the unique UUID",
433
+ "params": [],
434
+ "result": {
435
+ "name": "Default Result",
436
+ "value": "ee6723b8-7ab3-462c-8d93-dbf61227998e"
437
+ }
438
+ }
439
+ ]
440
+ },
441
+ {
442
+ "name": "Device.deviceClass",
443
+ "summary": "Returns the class of the device",
444
+ "params": [],
445
+ "tags": [
446
+ {
447
+ "name": "capabilities",
448
+ "x-uses": [
449
+ "xrn:firebolt:capability:device:device-class"
450
+ ]
451
+ }
452
+ ],
453
+ "result": {
454
+ "name": "deviceClass",
455
+ "summary": "The device class",
456
+ "schema": {
457
+ "$ref": "#/components/schemas/DeviceClass"
458
+ }
459
+ },
460
+ "examples": [
461
+ {
462
+ "name": "Getting the device class",
463
+ "params": [],
464
+ "result": {
465
+ "name": "Default Result",
466
+ "value": "ott"
467
+ }
468
+ }
469
+ ]
470
+ },
471
+ {
472
+ "name": "Device.uptime",
473
+ "summary": "Returns the number of seconds since most recent device boot, including any time spent during deep sleep",
474
+ "params": [],
475
+ "tags": [
476
+ {
477
+ "name": "rpc-only"
478
+ },
479
+ {
480
+ "name": "capabilities",
481
+ "x-uses": [
482
+ "xrn:firebolt:capability:device:info"
483
+ ]
484
+ }
485
+ ],
486
+ "result": {
487
+ "name": "uptime",
488
+ "summary": "The device uptime",
489
+ "schema": {
490
+ "type": "number"
491
+ }
492
+ },
493
+ "examples": [
494
+ {
495
+ "name": "Getting the device uptime",
496
+ "params": [],
497
+ "result": {
498
+ "name": "Default Result",
499
+ "value": 123456
500
+ }
501
+ }
502
+ ]
503
+ },
504
+ {
505
+ "name": "Device.timeInActiveState",
506
+ "summary": "Returns the number of seconds since the device transitioned to the ON power state",
507
+ "params": [],
508
+ "tags": [
509
+ {
510
+ "name": "rpc-only"
511
+ },
512
+ {
513
+ "name": "capabilities",
514
+ "x-uses": [
515
+ "xrn:firebolt:capability:device:info"
516
+ ]
517
+ }
518
+ ],
519
+ "result": {
520
+ "name": "timeInActiveState",
521
+ "summary": "The device time in active state",
522
+ "schema": {
523
+ "type": "number"
524
+ }
525
+ },
526
+ "examples": [
527
+ {
528
+ "name": "Getting the number of seconds since the device transitioned to the ON power state",
529
+ "params": [],
530
+ "result": {
531
+ "name": "Default Result",
532
+ "value": 654321
533
+ }
534
+ }
535
+ ]
536
+ },
537
+ {
538
+ "name": "Device.chipsetId",
539
+ "summary": "Returns chipset ID as a printable string, e.g. BCM72180",
540
+ "params": [],
541
+ "tags": [
542
+ {
543
+ "name": "rpc-only"
544
+ },
545
+ {
546
+ "name": "capabilities",
547
+ "x-uses": [
548
+ "xrn:firebolt:capability:device:info"
549
+ ]
550
+ }
551
+ ],
552
+ "result": {
553
+ "name": "chipsetId",
554
+ "summary": "The device chipset ID",
555
+ "schema": {
556
+ "type": "string"
557
+ }
558
+ },
559
+ "examples": [
560
+ {
561
+ "name": "Getting the device chipset ID",
562
+ "params": [],
563
+ "result": {
564
+ "name": "Default Result",
565
+ "value": "BCM72180"
566
+ }
567
+ }
568
+ ]
569
+ },
570
+ {
571
+ "name": "Device.hdr",
572
+ "summary": "Returns the HDR standards that are supported by the attached TV or the integral display",
573
+ "params": [],
574
+ "tags": [
575
+ {
576
+ "name": "property:readonly"
577
+ },
578
+ {
579
+ "name": "capabilities",
580
+ "x-uses": [
581
+ "xrn:firebolt:capability:device:info"
582
+ ]
583
+ }
584
+ ],
585
+ "result": {
586
+ "name": "negotiatedHdrFormats",
587
+ "summary": "the negotiated HDR formats",
588
+ "schema": {
589
+ "$ref": "#/components/schemas/HDRFormatMap"
590
+ }
591
+ },
592
+ "examples": [
593
+ {
594
+ "name": "Getting the negotiated HDR formats",
595
+ "params": [],
596
+ "result": {
597
+ "name": "Default Result",
598
+ "value": {
599
+ "hdr10": true,
600
+ "hdr10Plus": true,
601
+ "dolbyVision": true,
602
+ "hlg": true
603
+ }
604
+ }
605
+ }
606
+ ]
607
+ },
608
+ {
609
+ "name": "Device.onHdrChanged",
610
+ "summary": "Returns the HDR standards that are supported by the attached TV or the integral display",
611
+ "params": [
612
+ {
613
+ "name": "listen",
614
+ "schema": {
615
+ "type": "boolean"
616
+ }
617
+ }
618
+ ],
619
+ "tags": [
620
+ {
621
+ "name": "event",
622
+ "x-notifier": "Device.onHdrChanged",
623
+ "x-subscriber-for": "Device.hdr"
624
+ },
625
+ {
626
+ "name": "capabilities",
627
+ "x-uses": [
628
+ "xrn:firebolt:capability:device:info"
629
+ ]
630
+ }
631
+ ],
632
+ "examples": [
633
+ {
634
+ "name": "Getting the negotiated HDR formats",
635
+ "params": [
636
+ {
637
+ "name": "listen",
638
+ "value": true
639
+ }
640
+ ],
641
+ "result": {
642
+ "name": "result",
643
+ "value": null
644
+ }
645
+ }
646
+ ],
647
+ "result": {
648
+ "name": "result",
649
+ "schema": {
650
+ "type": "null"
651
+ }
652
+ }
653
+ },
654
+ {
655
+ "name": "Display.edid",
656
+ "summary": "Returns the EDID (and extensions) of the connected or integral display, as a Base64 encoded string",
657
+ "params": [],
658
+ "tags": [
659
+ {
660
+ "name": "rpc-only"
661
+ },
662
+ {
663
+ "name": "capabilities",
664
+ "x-uses": [
665
+ "xrn:firebolt:capability:display:info"
666
+ ]
667
+ }
668
+ ],
669
+ "result": {
670
+ "name": "Base64 EDID",
671
+ "summary": "The EDID (and extensions) of the connected or integral display, as a Base64 encoded string",
672
+ "schema": {
673
+ "type": "string"
674
+ }
675
+ },
676
+ "examples": [
677
+ {
678
+ "name": "Getting the display EDID",
679
+ "params": [],
680
+ "result": {
681
+ "name": "Default Result",
682
+ "value": "ZWU2NzIzYjgtN2FiMy00NjJjLThkOTMtZGJmNjEyMjc5OThl"
683
+ }
684
+ }
685
+ ]
686
+ },
687
+ {
688
+ "name": "Display.size",
689
+ "summary": "Returns the physical dimensions of the connected or integral display, in centimeters. Returns 0, 0 on a OTT/STB device when a display is not connected over HDMI",
690
+ "params": [],
691
+ "tags": [
692
+ {
693
+ "name": "rpc-only"
694
+ },
695
+ {
696
+ "name": "capabilities",
697
+ "x-uses": [
698
+ "xrn:firebolt:capability:display:info"
699
+ ]
700
+ }
701
+ ],
702
+ "result": {
703
+ "name": "size",
704
+ "summary": "The display size in centimeters",
705
+ "schema": {
706
+ "type": "object",
707
+ "properties": {
708
+ "width": {
709
+ "type": "integer",
710
+ "description": "The width of the display in centimeters"
711
+ },
712
+ "height": {
713
+ "type": "integer",
714
+ "description": "The height of the display in centimeters"
715
+ }
716
+ }
717
+ }
718
+ },
719
+ "examples": [
720
+ {
721
+ "name": "Getting the display size",
722
+ "params": [],
723
+ "result": {
724
+ "name": "Default Result",
725
+ "value": {
726
+ "width": 48,
727
+ "height": 27
728
+ }
729
+ }
730
+ }
731
+ ]
732
+ },
733
+ {
734
+ "name": "Display.maxResolution",
735
+ "summary": "Returns the physical/native resolution of the connected or integral display, in pixels. Returns 0, 0 on a OTT/STB device when a display is not connected over HDMI",
736
+ "params": [],
737
+ "tags": [
738
+ {
739
+ "name": "rpc-only"
740
+ },
741
+ {
742
+ "name": "capabilities",
743
+ "x-uses": [
744
+ "xrn:firebolt:capability:display:info"
745
+ ]
746
+ }
747
+ ],
748
+ "result": {
749
+ "name": "maxResolution",
750
+ "summary": "The display resolution",
751
+ "schema": {
752
+ "type": "object",
753
+ "properties": {
754
+ "width": {
755
+ "type": "integer",
756
+ "description": "The width of the display in pixels"
757
+ },
758
+ "height": {
759
+ "type": "integer",
760
+ "description": "The height of the display in pixels"
761
+ }
762
+ }
763
+ }
764
+ },
765
+ "examples": [
766
+ {
767
+ "name": "Getting the display size",
768
+ "params": [],
769
+ "result": {
770
+ "name": "Default Result",
771
+ "value": {
772
+ "width": 1920,
773
+ "height": 1080
774
+ }
775
+ }
776
+ }
777
+ ]
778
+ },
779
+ {
780
+ "name": "Internal.initialize",
781
+ "tags": [
782
+ {
783
+ "name": "rpc-only"
784
+ },
785
+ {
786
+ "name": "capabilities",
787
+ "x-uses": [
788
+ "xrn:firebolt:capability:lifecycle:initialize"
789
+ ]
790
+ }
791
+ ],
792
+ "summary": "Initialize the SDK / FEE session.",
793
+ "description": "A single version of the Firebolt SDK is compiled into each app. When an app starts up, the SDK **MUST** call this method as soon as possible and **before** any other JSON-RPC methods are sent.",
794
+ "params": [
795
+ {
796
+ "name": "version",
797
+ "required": true,
798
+ "schema": {
799
+ "$ref": "#/x-schemas/Types/SemanticVersion"
800
+ },
801
+ "summary": "The semantic version of the SDK."
802
+ }
803
+ ],
804
+ "result": {
805
+ "name": "session",
806
+ "summary": "Info about the SDK/FEE session",
807
+ "schema": {
808
+ "$ref": "#/components/schemas/InitializeResult"
809
+ }
810
+ },
811
+ "examples": [
812
+ {
813
+ "name": "Default Example",
814
+ "params": [
815
+ {
816
+ "name": "version",
817
+ "value": {
818
+ "major": 1,
819
+ "minor": 0,
820
+ "patch": 0,
821
+ "readable": "Firebolt SDK 1.0.0"
822
+ }
823
+ }
824
+ ],
825
+ "result": {
826
+ "name": "Default Result",
827
+ "value": {
828
+ "version": {
829
+ "major": 1,
830
+ "minor": 0,
831
+ "patch": 0,
832
+ "readable": "Firebolt FEE 1.0.0"
833
+ }
834
+ }
835
+ }
836
+ }
837
+ ]
838
+ },
839
+ {
840
+ "name": "Lifecycle2.close",
841
+ "tags": [
842
+ {
843
+ "name": "rpc-only"
844
+ },
845
+ {
846
+ "name": "capabilities",
847
+ "x-uses": [
848
+ "xrn:firebolt:capability:lifecycle2:general"
849
+ ]
850
+ }
851
+ ],
852
+ "summary": "Request the platform to deactivate the app, and possibly take further action.",
853
+ "params": [
854
+ {
855
+ "name": "type",
856
+ "summary": "The type of the close app is requesting",
857
+ "required": true,
858
+ "schema": {
859
+ "$ref": "#/components/schemas/CloseType"
860
+ }
861
+ }
862
+ ],
863
+ "result": {
864
+ "name": "result",
865
+ "schema": {
866
+ "type": "null"
867
+ }
868
+ },
869
+ "examples": [
870
+ {
871
+ "name": "Close the app when the user presses back on the app home screen",
872
+ "params": [
873
+ {
874
+ "name": "type",
875
+ "value": "unload"
876
+ }
877
+ ],
878
+ "result": {
879
+ "name": "Default Result",
880
+ "value": null
881
+ }
882
+ },
883
+ {
884
+ "name": "Close the app when the user selects an exit menu item",
885
+ "params": [
886
+ {
887
+ "name": "type",
888
+ "value": "deactivate"
889
+ }
890
+ ],
891
+ "result": {
892
+ "name": "Default Result",
893
+ "value": null
894
+ }
895
+ }
896
+ ]
897
+ },
898
+ {
899
+ "name": "Lifecycle2.state",
900
+ "summary": "Get the current lifecycle state of the app.",
901
+ "tags": [
902
+ {
903
+ "name": "rpc-only"
904
+ },
905
+ {
906
+ "name": "capabilities",
907
+ "x-uses": [
908
+ "xrn:firebolt:capability:lifecycle2:general"
909
+ ]
910
+ }
911
+ ],
912
+ "params": [],
913
+ "result": {
914
+ "name": "state",
915
+ "summary": "The current lifecycle state of the app.",
916
+ "schema": {
917
+ "$ref": "#/components/schemas/LifecycleState"
918
+ }
919
+ },
920
+ "examples": [
921
+ {
922
+ "name": "Default Example",
923
+ "params": [],
924
+ "result": {
925
+ "name": "Default Result",
926
+ "value": "active"
927
+ }
928
+ }
929
+ ]
930
+ },
931
+ {
932
+ "name": "Lifecycle2.onStateChanged",
933
+ "tags": [
934
+ {
935
+ "name": "rpc-only"
936
+ },
937
+ {
938
+ "name": "event",
939
+ "x-contextual-parameters": 0,
940
+ "x-notifier": "Lifecycle2.onStateChanged"
941
+ },
942
+ {
943
+ "name": "capabilities",
944
+ "x-uses": [
945
+ "xrn:firebolt:capability:lifecycle2:general"
946
+ ]
947
+ }
948
+ ],
949
+ "summary": "Notification of lifecycle state change, raised after the platform has transitioned the app/runtime to the new lifecycle state",
950
+ "params": [
951
+ {
952
+ "name": "listen",
953
+ "schema": {
954
+ "type": "boolean"
955
+ }
956
+ }
957
+ ],
958
+ "examples": [
959
+ {
960
+ "name": "App is active after being initialized",
961
+ "params": [
962
+ {
963
+ "name": "listen",
964
+ "value": true
965
+ }
966
+ ],
967
+ "result": {
968
+ "name": "result",
969
+ "value": null
970
+ }
971
+ },
972
+ {
973
+ "name": "Single transition to paused state",
974
+ "params": [
975
+ {
976
+ "name": "listen",
977
+ "value": true
978
+ }
979
+ ],
980
+ "result": {
981
+ "name": "result",
982
+ "value": null
983
+ }
984
+ }
985
+ ],
986
+ "result": {
987
+ "name": "result",
988
+ "schema": {
989
+ "type": "null"
990
+ }
991
+ }
992
+ },
993
+ {
994
+ "name": "Localization.country",
995
+ "tags": [
996
+ {
997
+ "name": "property:readonly"
998
+ },
999
+ {
1000
+ "name": "capabilities",
1001
+ "x-uses": [
1002
+ "xrn:firebolt:capability:localization:country-code"
1003
+ ]
1004
+ }
1005
+ ],
1006
+ "summary": "Returns the ISO 3166-1 alpha-2 code for the country device is located in.",
1007
+ "params": [],
1008
+ "result": {
1009
+ "name": "code",
1010
+ "summary": "The device country code.",
1011
+ "schema": {
1012
+ "$ref": "#/x-schemas/Localization/CountryCode"
1013
+ }
1014
+ },
1015
+ "examples": [
1016
+ {
1017
+ "name": "Default example",
1018
+ "params": [],
1019
+ "result": {
1020
+ "name": "Default Result",
1021
+ "value": "US"
1022
+ }
1023
+ },
1024
+ {
1025
+ "name": "Another example",
1026
+ "params": [],
1027
+ "result": {
1028
+ "name": "Default Result",
1029
+ "value": "GB"
1030
+ }
1031
+ }
1032
+ ]
1033
+ },
1034
+ {
1035
+ "name": "Localization.preferredAudioLanguages",
1036
+ "summary": "Returns a list of ISO 639-2/B codes for the preferred audio languages on this device.",
1037
+ "params": [],
1038
+ "tags": [
1039
+ {
1040
+ "name": "property:readonly"
1041
+ },
1042
+ {
1043
+ "name": "capabilities",
1044
+ "x-uses": [
1045
+ "xrn:firebolt:capability:localization:preferred-audio-languages"
1046
+ ]
1047
+ }
1048
+ ],
1049
+ "result": {
1050
+ "name": "languages",
1051
+ "summary": "The preferred audio languages.",
1052
+ "schema": {
1053
+ "type": "array",
1054
+ "items": {
1055
+ "$ref": "#/x-schemas/Localization/ISO639_2Language"
1056
+ }
1057
+ }
1058
+ },
1059
+ "examples": [
1060
+ {
1061
+ "name": "Default example",
1062
+ "params": [],
1063
+ "result": {
1064
+ "name": "Default Result",
1065
+ "value": [
1066
+ "spa",
1067
+ "eng"
1068
+ ]
1069
+ }
1070
+ }
1071
+ ]
1072
+ },
1073
+ {
1074
+ "name": "Localization.presentationLanguage",
1075
+ "tags": [
1076
+ {
1077
+ "name": "property:readonly"
1078
+ },
1079
+ {
1080
+ "name": "capabilities",
1081
+ "x-uses": [
1082
+ "xrn:firebolt:capability:localization:locale"
1083
+ ]
1084
+ }
1085
+ ],
1086
+ "summary": "Get the *full* BCP 47 code, including script, region, variant, etc., for the preferred locale",
1087
+ "params": [],
1088
+ "result": {
1089
+ "name": "locale",
1090
+ "summary": "The device locale.",
1091
+ "schema": {
1092
+ "$ref": "#/x-schemas/Localization/Locale"
1093
+ }
1094
+ },
1095
+ "examples": [
1096
+ {
1097
+ "name": "Default example",
1098
+ "params": [],
1099
+ "result": {
1100
+ "name": "Default Result",
1101
+ "value": "en-US"
1102
+ }
1103
+ }
1104
+ ]
1105
+ },
1106
+ {
1107
+ "name": "Localization.onCountryChanged",
1108
+ "tags": [
1109
+ {
1110
+ "name": "event",
1111
+ "x-notifier": "Localization.onCountryChanged",
1112
+ "x-subscriber-for": "Localization.country"
1113
+ },
1114
+ {
1115
+ "name": "capabilities",
1116
+ "x-uses": [
1117
+ "xrn:firebolt:capability:localization:country-code"
1118
+ ]
1119
+ }
1120
+ ],
1121
+ "summary": "Returns the ISO 3166-1 alpha-2 code for the country device is located in.",
1122
+ "params": [
1123
+ {
1124
+ "name": "listen",
1125
+ "schema": {
1126
+ "type": "boolean"
1127
+ }
1128
+ }
1129
+ ],
1130
+ "examples": [
1131
+ {
1132
+ "name": "Default example",
1133
+ "params": [
1134
+ {
1135
+ "name": "listen",
1136
+ "value": true
1137
+ }
1138
+ ],
1139
+ "result": {
1140
+ "name": "result",
1141
+ "value": null
1142
+ }
1143
+ },
1144
+ {
1145
+ "name": "Another example",
1146
+ "params": [
1147
+ {
1148
+ "name": "listen",
1149
+ "value": true
1150
+ }
1151
+ ],
1152
+ "result": {
1153
+ "name": "result",
1154
+ "value": null
1155
+ }
1156
+ }
1157
+ ],
1158
+ "result": {
1159
+ "name": "result",
1160
+ "schema": {
1161
+ "type": "null"
1162
+ }
1163
+ }
1164
+ },
1165
+ {
1166
+ "name": "Localization.onPreferredAudioLanguagesChanged",
1167
+ "summary": "Returns a list of ISO 639-2/B codes for the preferred audio languages on this device.",
1168
+ "params": [
1169
+ {
1170
+ "name": "listen",
1171
+ "schema": {
1172
+ "type": "boolean"
1173
+ }
1174
+ }
1175
+ ],
1176
+ "tags": [
1177
+ {
1178
+ "name": "event",
1179
+ "x-notifier": "Localization.onPreferredAudioLanguagesChanged",
1180
+ "x-subscriber-for": "Localization.preferredAudioLanguages"
1181
+ },
1182
+ {
1183
+ "name": "capabilities",
1184
+ "x-uses": [
1185
+ "xrn:firebolt:capability:localization:preferred-audio-languages"
1186
+ ]
1187
+ }
1188
+ ],
1189
+ "examples": [
1190
+ {
1191
+ "name": "Default example",
1192
+ "params": [
1193
+ {
1194
+ "name": "listen",
1195
+ "value": true
1196
+ }
1197
+ ],
1198
+ "result": {
1199
+ "name": "result",
1200
+ "value": null
1201
+ }
1202
+ }
1203
+ ],
1204
+ "result": {
1205
+ "name": "result",
1206
+ "schema": {
1207
+ "type": "null"
1208
+ }
1209
+ }
1210
+ },
1211
+ {
1212
+ "name": "Localization.onPresentationLanguageChanged",
1213
+ "tags": [
1214
+ {
1215
+ "name": "event",
1216
+ "x-notifier": "Localization.onPresentationLanguageChanged",
1217
+ "x-subscriber-for": "Localization.presentationLanguage"
1218
+ },
1219
+ {
1220
+ "name": "capabilities",
1221
+ "x-uses": [
1222
+ "xrn:firebolt:capability:localization:locale"
1223
+ ]
1224
+ }
1225
+ ],
1226
+ "summary": "Get the *full* BCP 47 code, including script, region, variant, etc., for the preferred locale",
1227
+ "params": [
1228
+ {
1229
+ "name": "listen",
1230
+ "schema": {
1231
+ "type": "boolean"
1232
+ }
1233
+ }
1234
+ ],
1235
+ "examples": [
1236
+ {
1237
+ "name": "Default example",
1238
+ "params": [
1239
+ {
1240
+ "name": "listen",
1241
+ "value": true
1242
+ }
1243
+ ],
1244
+ "result": {
1245
+ "name": "result",
1246
+ "value": null
1247
+ }
1248
+ }
1249
+ ],
1250
+ "result": {
1251
+ "name": "result",
1252
+ "schema": {
1253
+ "type": "null"
1254
+ }
1255
+ }
1256
+ },
1257
+ {
1258
+ "name": "Metrics.ready",
1259
+ "tags": [
1260
+ {
1261
+ "name": "capabilities",
1262
+ "x-uses": [
1263
+ "xrn:firebolt:capability:metrics:general"
1264
+ ]
1265
+ }
1266
+ ],
1267
+ "summary": "Inform the platform that your app is minimally usable. This method is called automatically by `Lifecycle.ready()`",
1268
+ "params": [],
1269
+ "result": {
1270
+ "name": "success",
1271
+ "schema": {
1272
+ "type": "boolean"
1273
+ }
1274
+ },
1275
+ "examples": [
1276
+ {
1277
+ "name": "Send ready metric",
1278
+ "params": [],
1279
+ "result": {
1280
+ "name": "success",
1281
+ "value": true
1282
+ }
1283
+ }
1284
+ ]
1285
+ },
1286
+ {
1287
+ "name": "Metrics.signIn",
1288
+ "tags": [
1289
+ {
1290
+ "name": "rpc-only"
1291
+ },
1292
+ {
1293
+ "name": "capabilities",
1294
+ "x-uses": [
1295
+ "xrn:firebolt:capability:metrics:general"
1296
+ ]
1297
+ }
1298
+ ],
1299
+ "summary": "Log a sign in event, called by Discovery.signIn().",
1300
+ "params": [],
1301
+ "result": {
1302
+ "name": "success",
1303
+ "schema": {
1304
+ "type": "boolean"
1305
+ }
1306
+ },
1307
+ "examples": [
1308
+ {
1309
+ "name": "Send signIn metric",
1310
+ "params": [],
1311
+ "result": {
1312
+ "name": "success",
1313
+ "value": true
1314
+ }
1315
+ }
1316
+ ]
1317
+ },
1318
+ {
1319
+ "name": "Metrics.signOut",
1320
+ "tags": [
1321
+ {
1322
+ "name": "rpc-only"
1323
+ },
1324
+ {
1325
+ "name": "capabilities",
1326
+ "x-uses": [
1327
+ "xrn:firebolt:capability:metrics:general"
1328
+ ]
1329
+ }
1330
+ ],
1331
+ "summary": "Log a sign out event, called by Discovery.signOut().",
1332
+ "params": [],
1333
+ "result": {
1334
+ "name": "success",
1335
+ "schema": {
1336
+ "type": "boolean"
1337
+ }
1338
+ },
1339
+ "examples": [
1340
+ {
1341
+ "name": "Send signOut metric",
1342
+ "params": [],
1343
+ "result": {
1344
+ "name": "success",
1345
+ "value": true
1346
+ }
1347
+ }
1348
+ ]
1349
+ },
1350
+ {
1351
+ "name": "Metrics.startContent",
1352
+ "tags": [
1353
+ {
1354
+ "name": "capabilities",
1355
+ "x-uses": [
1356
+ "xrn:firebolt:capability:metrics:general"
1357
+ ]
1358
+ }
1359
+ ],
1360
+ "summary": "Inform the platform that your user has started content.",
1361
+ "params": [
1362
+ {
1363
+ "name": "entityId",
1364
+ "summary": "Optional entity ID of the content.",
1365
+ "schema": {
1366
+ "type": "string"
1367
+ },
1368
+ "required": false
1369
+ },
1370
+ {
1371
+ "name": "agePolicy",
1372
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1373
+ "schema": {
1374
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1375
+ }
1376
+ }
1377
+ ],
1378
+ "result": {
1379
+ "name": "success",
1380
+ "schema": {
1381
+ "type": "boolean"
1382
+ }
1383
+ },
1384
+ "examples": [
1385
+ {
1386
+ "name": "Send startContent metric",
1387
+ "params": [],
1388
+ "result": {
1389
+ "name": "success",
1390
+ "value": true
1391
+ }
1392
+ },
1393
+ {
1394
+ "name": "Send startContent metric w/ entity",
1395
+ "params": [
1396
+ {
1397
+ "name": "entityId",
1398
+ "value": "abc"
1399
+ }
1400
+ ],
1401
+ "result": {
1402
+ "name": "success",
1403
+ "value": true
1404
+ }
1405
+ },
1406
+ {
1407
+ "name": "Send startContent metric and notify the platform that the content is child-directed",
1408
+ "params": [
1409
+ {
1410
+ "name": "entityId",
1411
+ "value": "abc"
1412
+ },
1413
+ {
1414
+ "name": "agePolicy",
1415
+ "value": "app:child"
1416
+ }
1417
+ ],
1418
+ "result": {
1419
+ "name": "success",
1420
+ "value": true
1421
+ }
1422
+ }
1423
+ ]
1424
+ },
1425
+ {
1426
+ "name": "Metrics.stopContent",
1427
+ "tags": [
1428
+ {
1429
+ "name": "capabilities",
1430
+ "x-uses": [
1431
+ "xrn:firebolt:capability:metrics:general"
1432
+ ]
1433
+ }
1434
+ ],
1435
+ "summary": "Inform the platform that your user has stopped content.",
1436
+ "params": [
1437
+ {
1438
+ "name": "entityId",
1439
+ "summary": "Optional entity ID of the content.",
1440
+ "schema": {
1441
+ "type": "string"
1442
+ },
1443
+ "required": false
1444
+ },
1445
+ {
1446
+ "name": "agePolicy",
1447
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1448
+ "schema": {
1449
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1450
+ }
1451
+ }
1452
+ ],
1453
+ "result": {
1454
+ "name": "success",
1455
+ "schema": {
1456
+ "type": "boolean"
1457
+ }
1458
+ },
1459
+ "examples": [
1460
+ {
1461
+ "name": "Send stopContent metric",
1462
+ "params": [],
1463
+ "result": {
1464
+ "name": "success",
1465
+ "value": true
1466
+ }
1467
+ },
1468
+ {
1469
+ "name": "Send stopContent metric w/ entity",
1470
+ "params": [
1471
+ {
1472
+ "name": "entityId",
1473
+ "value": "abc"
1474
+ }
1475
+ ],
1476
+ "result": {
1477
+ "name": "success",
1478
+ "value": true
1479
+ }
1480
+ }
1481
+ ]
1482
+ },
1483
+ {
1484
+ "name": "Metrics.page",
1485
+ "tags": [
1486
+ {
1487
+ "name": "capabilities",
1488
+ "x-uses": [
1489
+ "xrn:firebolt:capability:metrics:general"
1490
+ ]
1491
+ }
1492
+ ],
1493
+ "summary": "Inform the platform that your user has navigated to a page or view.",
1494
+ "params": [
1495
+ {
1496
+ "name": "pageId",
1497
+ "summary": "Page ID of the content.",
1498
+ "schema": {
1499
+ "type": "string"
1500
+ },
1501
+ "required": true
1502
+ },
1503
+ {
1504
+ "name": "agePolicy",
1505
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1506
+ "schema": {
1507
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1508
+ }
1509
+ }
1510
+ ],
1511
+ "result": {
1512
+ "name": "success",
1513
+ "schema": {
1514
+ "type": "boolean"
1515
+ }
1516
+ },
1517
+ "examples": [
1518
+ {
1519
+ "name": "Send page metric",
1520
+ "params": [
1521
+ {
1522
+ "name": "pageId",
1523
+ "value": "xyz"
1524
+ }
1525
+ ],
1526
+ "result": {
1527
+ "name": "success",
1528
+ "value": true
1529
+ }
1530
+ },
1531
+ {
1532
+ "name": "Send page metric w/ pageId",
1533
+ "params": [
1534
+ {
1535
+ "name": "pageId",
1536
+ "value": "home"
1537
+ }
1538
+ ],
1539
+ "result": {
1540
+ "name": "success",
1541
+ "value": true
1542
+ }
1543
+ }
1544
+ ]
1545
+ },
1546
+ {
1547
+ "name": "Metrics.error",
1548
+ "tags": [
1549
+ {
1550
+ "name": "capabilities",
1551
+ "x-uses": [
1552
+ "xrn:firebolt:capability:metrics:general"
1553
+ ]
1554
+ }
1555
+ ],
1556
+ "summary": "Inform the platform of an error that has occurred in your app.",
1557
+ "params": [
1558
+ {
1559
+ "name": "type",
1560
+ "summary": "The type of error",
1561
+ "schema": {
1562
+ "$ref": "#/components/schemas/ErrorType"
1563
+ },
1564
+ "required": true
1565
+ },
1566
+ {
1567
+ "name": "code",
1568
+ "summary": "an app-specific error code",
1569
+ "schema": {
1570
+ "type": "string"
1571
+ },
1572
+ "required": true
1573
+ },
1574
+ {
1575
+ "name": "description",
1576
+ "summary": "A short description of the error",
1577
+ "schema": {
1578
+ "type": "string"
1579
+ },
1580
+ "required": true
1581
+ },
1582
+ {
1583
+ "name": "visible",
1584
+ "summary": "Whether or not this error was visible to the user.",
1585
+ "schema": {
1586
+ "type": "boolean"
1587
+ },
1588
+ "required": true
1589
+ },
1590
+ {
1591
+ "name": "parameters",
1592
+ "summary": "Optional additional parameters to be logged with the error",
1593
+ "schema": {
1594
+ "$ref": "#/x-schemas/Types/FlatMap"
1595
+ },
1596
+ "required": false
1597
+ },
1598
+ {
1599
+ "name": "agePolicy",
1600
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1601
+ "schema": {
1602
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1603
+ }
1604
+ }
1605
+ ],
1606
+ "result": {
1607
+ "name": "success",
1608
+ "schema": {
1609
+ "type": "boolean"
1610
+ }
1611
+ },
1612
+ "examples": [
1613
+ {
1614
+ "name": "Send error metric",
1615
+ "params": [
1616
+ {
1617
+ "name": "type",
1618
+ "value": "media"
1619
+ },
1620
+ {
1621
+ "name": "code",
1622
+ "value": "MEDIA-STALLED"
1623
+ },
1624
+ {
1625
+ "name": "description",
1626
+ "value": "playback stalled"
1627
+ },
1628
+ {
1629
+ "name": "visible",
1630
+ "value": true
1631
+ }
1632
+ ],
1633
+ "result": {
1634
+ "name": "success",
1635
+ "value": true
1636
+ }
1637
+ }
1638
+ ]
1639
+ },
1640
+ {
1641
+ "name": "Metrics.mediaLoadStart",
1642
+ "tags": [
1643
+ {
1644
+ "name": "capabilities",
1645
+ "x-uses": [
1646
+ "xrn:firebolt:capability:metrics:media"
1647
+ ]
1648
+ }
1649
+ ],
1650
+ "summary": "Called when setting the URL of a media asset to play, in order to infer load time.",
1651
+ "params": [
1652
+ {
1653
+ "name": "entityId",
1654
+ "summary": "The entityId of the media.",
1655
+ "schema": {
1656
+ "type": "string"
1657
+ },
1658
+ "required": true
1659
+ },
1660
+ {
1661
+ "name": "agePolicy",
1662
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1663
+ "schema": {
1664
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1665
+ }
1666
+ }
1667
+ ],
1668
+ "result": {
1669
+ "name": "success",
1670
+ "schema": {
1671
+ "type": "boolean"
1672
+ }
1673
+ },
1674
+ "examples": [
1675
+ {
1676
+ "name": "Send loadstart metric.",
1677
+ "params": [
1678
+ {
1679
+ "name": "entityId",
1680
+ "value": "345"
1681
+ }
1682
+ ],
1683
+ "result": {
1684
+ "name": "success",
1685
+ "value": true
1686
+ }
1687
+ }
1688
+ ]
1689
+ },
1690
+ {
1691
+ "name": "Metrics.mediaPlay",
1692
+ "tags": [
1693
+ {
1694
+ "name": "capabilities",
1695
+ "x-uses": [
1696
+ "xrn:firebolt:capability:metrics:media"
1697
+ ]
1698
+ }
1699
+ ],
1700
+ "summary": "Called when media playback should start due to autoplay, user-initiated play, or unpausing.",
1701
+ "params": [
1702
+ {
1703
+ "name": "entityId",
1704
+ "summary": "The entityId of the media.",
1705
+ "schema": {
1706
+ "type": "string"
1707
+ },
1708
+ "required": true
1709
+ },
1710
+ {
1711
+ "name": "agePolicy",
1712
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1713
+ "schema": {
1714
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1715
+ }
1716
+ }
1717
+ ],
1718
+ "result": {
1719
+ "name": "success",
1720
+ "schema": {
1721
+ "type": "boolean"
1722
+ }
1723
+ },
1724
+ "examples": [
1725
+ {
1726
+ "name": "Send play metric.",
1727
+ "params": [
1728
+ {
1729
+ "name": "entityId",
1730
+ "value": "345"
1731
+ }
1732
+ ],
1733
+ "result": {
1734
+ "name": "success",
1735
+ "value": true
1736
+ }
1737
+ }
1738
+ ]
1739
+ },
1740
+ {
1741
+ "name": "Metrics.mediaPlaying",
1742
+ "tags": [
1743
+ {
1744
+ "name": "capabilities",
1745
+ "x-uses": [
1746
+ "xrn:firebolt:capability:metrics:media"
1747
+ ]
1748
+ }
1749
+ ],
1750
+ "summary": "Called when media playback actually starts due to autoplay, user-initiated play, unpausing, or recovering from a buffering interruption.",
1751
+ "params": [
1752
+ {
1753
+ "name": "entityId",
1754
+ "summary": "The entityId of the media.",
1755
+ "schema": {
1756
+ "type": "string"
1757
+ },
1758
+ "required": true
1759
+ },
1760
+ {
1761
+ "name": "agePolicy",
1762
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1763
+ "schema": {
1764
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1765
+ }
1766
+ }
1767
+ ],
1768
+ "result": {
1769
+ "name": "success",
1770
+ "schema": {
1771
+ "type": "boolean"
1772
+ }
1773
+ },
1774
+ "examples": [
1775
+ {
1776
+ "name": "Send playing metric.",
1777
+ "params": [
1778
+ {
1779
+ "name": "entityId",
1780
+ "value": "345"
1781
+ }
1782
+ ],
1783
+ "result": {
1784
+ "name": "success",
1785
+ "value": true
1786
+ }
1787
+ }
1788
+ ]
1789
+ },
1790
+ {
1791
+ "name": "Metrics.mediaPause",
1792
+ "tags": [
1793
+ {
1794
+ "name": "capabilities",
1795
+ "x-uses": [
1796
+ "xrn:firebolt:capability:metrics:media"
1797
+ ]
1798
+ }
1799
+ ],
1800
+ "summary": "Called when media playback will pause due to an intentional pause operation.",
1801
+ "params": [
1802
+ {
1803
+ "name": "entityId",
1804
+ "summary": "The entityId of the media.",
1805
+ "schema": {
1806
+ "type": "string"
1807
+ },
1808
+ "required": true
1809
+ },
1810
+ {
1811
+ "name": "agePolicy",
1812
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1813
+ "schema": {
1814
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1815
+ }
1816
+ }
1817
+ ],
1818
+ "result": {
1819
+ "name": "success",
1820
+ "schema": {
1821
+ "type": "boolean"
1822
+ }
1823
+ },
1824
+ "examples": [
1825
+ {
1826
+ "name": "Send pause metric.",
1827
+ "params": [
1828
+ {
1829
+ "name": "entityId",
1830
+ "value": "345"
1831
+ }
1832
+ ],
1833
+ "result": {
1834
+ "name": "success",
1835
+ "value": true
1836
+ }
1837
+ }
1838
+ ]
1839
+ },
1840
+ {
1841
+ "name": "Metrics.mediaWaiting",
1842
+ "tags": [
1843
+ {
1844
+ "name": "capabilities",
1845
+ "x-uses": [
1846
+ "xrn:firebolt:capability:metrics:media"
1847
+ ]
1848
+ }
1849
+ ],
1850
+ "summary": "Called when media playback will halt due to a network, buffer, or other unintentional constraint.",
1851
+ "params": [
1852
+ {
1853
+ "name": "entityId",
1854
+ "summary": "The entityId of the media.",
1855
+ "schema": {
1856
+ "type": "string"
1857
+ },
1858
+ "required": true
1859
+ },
1860
+ {
1861
+ "name": "agePolicy",
1862
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1863
+ "schema": {
1864
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1865
+ }
1866
+ }
1867
+ ],
1868
+ "result": {
1869
+ "name": "success",
1870
+ "schema": {
1871
+ "type": "boolean"
1872
+ }
1873
+ },
1874
+ "examples": [
1875
+ {
1876
+ "name": "Send waiting metric.",
1877
+ "params": [
1878
+ {
1879
+ "name": "entityId",
1880
+ "value": "345"
1881
+ }
1882
+ ],
1883
+ "result": {
1884
+ "name": "success",
1885
+ "value": true
1886
+ }
1887
+ }
1888
+ ]
1889
+ },
1890
+ {
1891
+ "name": "Metrics.mediaSeeking",
1892
+ "tags": [
1893
+ {
1894
+ "name": "capabilities",
1895
+ "x-uses": [
1896
+ "xrn:firebolt:capability:metrics:media"
1897
+ ]
1898
+ }
1899
+ ],
1900
+ "summary": "Called when a seek is initiated during media playback.",
1901
+ "params": [
1902
+ {
1903
+ "name": "entityId",
1904
+ "summary": "The entityId of the media.",
1905
+ "schema": {
1906
+ "type": "string"
1907
+ },
1908
+ "required": true
1909
+ },
1910
+ {
1911
+ "name": "target",
1912
+ "summary": "Target destination of the seek, as a decimal percentage (0-0.999) for content with a known duration, or an integer number of seconds (0-86400) for content with an unknown duration.",
1913
+ "schema": {
1914
+ "$ref": "#/components/schemas/MediaPosition"
1915
+ },
1916
+ "required": true
1917
+ },
1918
+ {
1919
+ "name": "agePolicy",
1920
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1921
+ "schema": {
1922
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1923
+ }
1924
+ }
1925
+ ],
1926
+ "result": {
1927
+ "name": "success",
1928
+ "schema": {
1929
+ "type": "boolean"
1930
+ }
1931
+ },
1932
+ "examples": [
1933
+ {
1934
+ "name": "Send seeking metric.",
1935
+ "params": [
1936
+ {
1937
+ "name": "entityId",
1938
+ "value": "345"
1939
+ },
1940
+ {
1941
+ "name": "target",
1942
+ "value": 0.5
1943
+ }
1944
+ ],
1945
+ "result": {
1946
+ "name": "success",
1947
+ "value": true
1948
+ }
1949
+ }
1950
+ ]
1951
+ },
1952
+ {
1953
+ "name": "Metrics.mediaSeeked",
1954
+ "tags": [
1955
+ {
1956
+ "name": "capabilities",
1957
+ "x-uses": [
1958
+ "xrn:firebolt:capability:metrics:media"
1959
+ ]
1960
+ }
1961
+ ],
1962
+ "summary": "Called when a seek is completed during media playback.",
1963
+ "params": [
1964
+ {
1965
+ "name": "entityId",
1966
+ "summary": "The entityId of the media.",
1967
+ "schema": {
1968
+ "type": "string"
1969
+ },
1970
+ "required": true
1971
+ },
1972
+ {
1973
+ "name": "position",
1974
+ "summary": "Resulting position of the seek operation, as a decimal percentage (0-0.999) for content with a known duration, or an integer number of seconds (0-86400) for content with an unknown duration.",
1975
+ "schema": {
1976
+ "$ref": "#/components/schemas/MediaPosition"
1977
+ },
1978
+ "required": true
1979
+ },
1980
+ {
1981
+ "name": "agePolicy",
1982
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
1983
+ "schema": {
1984
+ "$ref": "#/x-schemas/Policies/AgePolicy"
1985
+ }
1986
+ }
1987
+ ],
1988
+ "result": {
1989
+ "name": "success",
1990
+ "schema": {
1991
+ "type": "boolean"
1992
+ }
1993
+ },
1994
+ "examples": [
1995
+ {
1996
+ "name": "Send seeked metric.",
1997
+ "params": [
1998
+ {
1999
+ "name": "entityId",
2000
+ "value": "345"
2001
+ },
2002
+ {
2003
+ "name": "position",
2004
+ "value": 0.51
2005
+ }
2006
+ ],
2007
+ "result": {
2008
+ "name": "success",
2009
+ "value": true
2010
+ }
2011
+ }
2012
+ ]
2013
+ },
2014
+ {
2015
+ "name": "Metrics.mediaRateChanged",
2016
+ "tags": [
2017
+ {
2018
+ "name": "capabilities",
2019
+ "x-uses": [
2020
+ "xrn:firebolt:capability:metrics:media"
2021
+ ]
2022
+ }
2023
+ ],
2024
+ "summary": "Called when the playback rate of media is changed.",
2025
+ "params": [
2026
+ {
2027
+ "name": "entityId",
2028
+ "summary": "The entityId of the media.",
2029
+ "schema": {
2030
+ "type": "string"
2031
+ },
2032
+ "required": true
2033
+ },
2034
+ {
2035
+ "name": "rate",
2036
+ "summary": "The new playback rate.",
2037
+ "schema": {
2038
+ "type": "number"
2039
+ },
2040
+ "required": true
2041
+ },
2042
+ {
2043
+ "name": "agePolicy",
2044
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
2045
+ "schema": {
2046
+ "$ref": "#/x-schemas/Policies/AgePolicy"
2047
+ }
2048
+ }
2049
+ ],
2050
+ "result": {
2051
+ "name": "success",
2052
+ "schema": {
2053
+ "type": "boolean"
2054
+ }
2055
+ },
2056
+ "examples": [
2057
+ {
2058
+ "name": "Send ratechange metric.",
2059
+ "params": [
2060
+ {
2061
+ "name": "entityId",
2062
+ "value": "345"
2063
+ },
2064
+ {
2065
+ "name": "rate",
2066
+ "value": 2
2067
+ }
2068
+ ],
2069
+ "result": {
2070
+ "name": "success",
2071
+ "value": true
2072
+ }
2073
+ }
2074
+ ]
2075
+ },
2076
+ {
2077
+ "name": "Metrics.mediaRenditionChanged",
2078
+ "tags": [
2079
+ {
2080
+ "name": "capabilities",
2081
+ "x-uses": [
2082
+ "xrn:firebolt:capability:metrics:media"
2083
+ ]
2084
+ }
2085
+ ],
2086
+ "summary": "Called when the playback rendition (e.g. bitrate, dimensions, profile, etc) is changed.",
2087
+ "params": [
2088
+ {
2089
+ "name": "entityId",
2090
+ "summary": "The entityId of the media.",
2091
+ "schema": {
2092
+ "type": "string"
2093
+ },
2094
+ "required": true
2095
+ },
2096
+ {
2097
+ "name": "bitrate",
2098
+ "summary": "The new bitrate in kbps.",
2099
+ "schema": {
2100
+ "type": "number"
2101
+ },
2102
+ "required": true
2103
+ },
2104
+ {
2105
+ "name": "width",
2106
+ "summary": "The new resolution width.",
2107
+ "schema": {
2108
+ "type": "number"
2109
+ },
2110
+ "required": true
2111
+ },
2112
+ {
2113
+ "name": "height",
2114
+ "summary": "The new resolution height.",
2115
+ "schema": {
2116
+ "type": "number"
2117
+ },
2118
+ "required": true
2119
+ },
2120
+ {
2121
+ "name": "profile",
2122
+ "summary": "A description of the new profile, e.g. 'HDR' etc.",
2123
+ "schema": {
2124
+ "type": "string"
2125
+ },
2126
+ "required": false
2127
+ },
2128
+ {
2129
+ "name": "agePolicy",
2130
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
2131
+ "schema": {
2132
+ "$ref": "#/x-schemas/Policies/AgePolicy"
2133
+ }
2134
+ }
2135
+ ],
2136
+ "result": {
2137
+ "name": "success",
2138
+ "schema": {
2139
+ "type": "boolean"
2140
+ }
2141
+ },
2142
+ "examples": [
2143
+ {
2144
+ "name": "Send renditionchange metric.",
2145
+ "params": [
2146
+ {
2147
+ "name": "entityId",
2148
+ "value": "345"
2149
+ },
2150
+ {
2151
+ "name": "bitrate",
2152
+ "value": 5000
2153
+ },
2154
+ {
2155
+ "name": "width",
2156
+ "value": 1920
2157
+ },
2158
+ {
2159
+ "name": "height",
2160
+ "value": 1080
2161
+ },
2162
+ {
2163
+ "name": "profile",
2164
+ "value": "HDR+"
2165
+ }
2166
+ ],
2167
+ "result": {
2168
+ "name": "success",
2169
+ "value": true
2170
+ }
2171
+ }
2172
+ ]
2173
+ },
2174
+ {
2175
+ "name": "Metrics.mediaEnded",
2176
+ "tags": [
2177
+ {
2178
+ "name": "capabilities",
2179
+ "x-uses": [
2180
+ "xrn:firebolt:capability:metrics:media"
2181
+ ]
2182
+ }
2183
+ ],
2184
+ "summary": "Called when playback has stopped because the end of the media was reached.",
2185
+ "params": [
2186
+ {
2187
+ "name": "entityId",
2188
+ "summary": "The entityId of the media.",
2189
+ "schema": {
2190
+ "type": "string"
2191
+ },
2192
+ "required": true
2193
+ },
2194
+ {
2195
+ "name": "agePolicy",
2196
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
2197
+ "schema": {
2198
+ "$ref": "#/x-schemas/Policies/AgePolicy"
2199
+ }
2200
+ }
2201
+ ],
2202
+ "result": {
2203
+ "name": "success",
2204
+ "schema": {
2205
+ "type": "boolean"
2206
+ }
2207
+ },
2208
+ "examples": [
2209
+ {
2210
+ "name": "Send ended metric.",
2211
+ "params": [
2212
+ {
2213
+ "name": "entityId",
2214
+ "value": "345"
2215
+ }
2216
+ ],
2217
+ "result": {
2218
+ "name": "success",
2219
+ "value": true
2220
+ }
2221
+ }
2222
+ ]
2223
+ },
2224
+ {
2225
+ "name": "Metrics.event",
2226
+ "tags": [
2227
+ {
2228
+ "name": "capabilities",
2229
+ "x-uses": [
2230
+ "xrn:firebolt:capability:metrics:distributor"
2231
+ ]
2232
+ }
2233
+ ],
2234
+ "summary": "Inform the platform of 1st party distributor metrics. 'data' parameter is a JSON document",
2235
+ "params": [
2236
+ {
2237
+ "name": "schema",
2238
+ "summary": "The schema URI of the metric type",
2239
+ "schema": {
2240
+ "type": "string",
2241
+ "format": "uri"
2242
+ },
2243
+ "required": true
2244
+ },
2245
+ {
2246
+ "name": "data",
2247
+ "summary": "A JSON payload",
2248
+ "schema": {
2249
+ "type": "string"
2250
+ },
2251
+ "required": true
2252
+ },
2253
+ {
2254
+ "name": "agePolicy",
2255
+ "summary": "The age policy to associate with the metrics event. The age policy describes the age group to which content is directed.",
2256
+ "schema": {
2257
+ "$ref": "#/x-schemas/Policies/AgePolicy"
2258
+ }
2259
+ }
2260
+ ],
2261
+ "result": {
2262
+ "name": "result",
2263
+ "schema": {
2264
+ "type": "boolean"
2265
+ }
2266
+ },
2267
+ "examples": [
2268
+ {
2269
+ "name": "Send foo event",
2270
+ "params": [
2271
+ {
2272
+ "name": "schema",
2273
+ "value": "http://meta.rdkcentral.com/some/schema"
2274
+ },
2275
+ {
2276
+ "name": "data",
2277
+ "value": "foo"
2278
+ }
2279
+ ],
2280
+ "result": {
2281
+ "name": "result",
2282
+ "value": true
2283
+ }
2284
+ }
2285
+ ]
2286
+ },
2287
+ {
2288
+ "name": "Metrics.appInfo",
2289
+ "tags": [
2290
+ {
2291
+ "name": "capabilities",
2292
+ "x-uses": [
2293
+ "xrn:firebolt:capability:metrics:general"
2294
+ ]
2295
+ }
2296
+ ],
2297
+ "summary": "Inform the platform about an app's build info.",
2298
+ "params": [
2299
+ {
2300
+ "name": "build",
2301
+ "summary": "The build / version of this app.",
2302
+ "schema": {
2303
+ "type": "string"
2304
+ },
2305
+ "required": true
2306
+ }
2307
+ ],
2308
+ "result": {
2309
+ "name": "result",
2310
+ "schema": {
2311
+ "type": "null"
2312
+ }
2313
+ },
2314
+ "examples": [
2315
+ {
2316
+ "name": "Send appInfo metric",
2317
+ "params": [
2318
+ {
2319
+ "name": "build",
2320
+ "value": "1.2.2"
2321
+ }
2322
+ ],
2323
+ "result": {
2324
+ "name": "result",
2325
+ "value": null
2326
+ }
2327
+ }
2328
+ ]
2329
+ },
2330
+ {
2331
+ "name": "Presentation.focused",
2332
+ "tags": [
2333
+ {
2334
+ "name": "rpc-only"
2335
+ },
2336
+ {
2337
+ "name": "property:readonly"
2338
+ },
2339
+ {
2340
+ "name": "capabilities",
2341
+ "x-uses": [
2342
+ "xrn:firebolt:capability:presentation:general"
2343
+ ]
2344
+ }
2345
+ ],
2346
+ "summary": "Whether the app is in focus, i.e. receiving key presses. Provided for those apps/runtimes that cannot use Wayland",
2347
+ "params": [],
2348
+ "result": {
2349
+ "name": "focused",
2350
+ "summary": "Whether the app is in focus.",
2351
+ "schema": {
2352
+ "type": "boolean"
2353
+ }
2354
+ },
2355
+ "examples": [
2356
+ {
2357
+ "name": "Default example",
2358
+ "params": [],
2359
+ "result": {
2360
+ "name": "Default Result",
2361
+ "value": true
2362
+ }
2363
+ }
2364
+ ]
2365
+ },
2366
+ {
2367
+ "name": "Presentation.onFocusedChanged",
2368
+ "tags": [
2369
+ {
2370
+ "name": "rpc-only"
2371
+ },
2372
+ {
2373
+ "name": "event",
2374
+ "x-notifier": "Presentation.onFocusedChanged",
2375
+ "x-subscriber-for": "Presentation.focused"
2376
+ },
2377
+ {
2378
+ "name": "capabilities",
2379
+ "x-uses": [
2380
+ "xrn:firebolt:capability:presentation:general"
2381
+ ]
2382
+ }
2383
+ ],
2384
+ "summary": "Whether the app is in focus, i.e. receiving key presses. Provided for those apps/runtimes that cannot use Wayland",
2385
+ "params": [
2386
+ {
2387
+ "name": "listen",
2388
+ "schema": {
2389
+ "type": "boolean"
2390
+ }
2391
+ }
2392
+ ],
2393
+ "examples": [
2394
+ {
2395
+ "name": "Default example",
2396
+ "params": [
2397
+ {
2398
+ "name": "listen",
2399
+ "value": true
2400
+ }
2401
+ ],
2402
+ "result": {
2403
+ "name": "result",
2404
+ "value": null
2405
+ }
2406
+ }
2407
+ ],
2408
+ "result": {
2409
+ "name": "result",
2410
+ "schema": {
2411
+ "type": "null"
2412
+ }
2413
+ }
2414
+ },
2415
+ {
2416
+ "name": "Stats.memoryUsage",
2417
+ "summary": "Returns information about container memory usage, in bytes.",
2418
+ "tags": [
2419
+ {
2420
+ "name": "rpc-only"
2421
+ },
2422
+ {
2423
+ "name": "capabilities",
2424
+ "x-uses": [
2425
+ "xrn:firebolt:capability:stats:general"
2426
+ ]
2427
+ }
2428
+ ],
2429
+ "params": [],
2430
+ "result": {
2431
+ "name": "result",
2432
+ "schema": {
2433
+ "$ref": "#/components/schemas/MemoryUsage"
2434
+ }
2435
+ },
2436
+ "examples": [
2437
+ {
2438
+ "name": "Default example",
2439
+ "params": [],
2440
+ "result": {
2441
+ "name": "value",
2442
+ "description": "The memory usage information",
2443
+ "value": {
2444
+ "userMemoryUsed": 123456,
2445
+ "userMemoryLimit": 789012,
2446
+ "gpuMemoryUsed": 345678,
2447
+ "gpuMemoryLimit": 901234
2448
+ }
2449
+ }
2450
+ }
2451
+ ]
2452
+ },
2453
+ {
2454
+ "name": "Network.connected",
2455
+ "summary": "Returns whether the device currently has a usable network connection.",
2456
+ "tags": [
2457
+ {
2458
+ "name": "property:readonly"
2459
+ },
2460
+ {
2461
+ "name": "capabilities",
2462
+ "x-uses": [
2463
+ "xrn:firebolt:capability:network:connected"
2464
+ ]
2465
+ }
2466
+ ],
2467
+ "params": [],
2468
+ "result": {
2469
+ "name": "success",
2470
+ "summary": "Whether the device currently has a usable network connection.",
2471
+ "schema": {
2472
+ "$ref": "#/components/schemas/Connected"
2473
+ }
2474
+ },
2475
+ "examples": [
2476
+ {
2477
+ "name": "Connected example",
2478
+ "params": [],
2479
+ "result": {
2480
+ "name": "success",
2481
+ "value": true
2482
+ }
2483
+ }
2484
+ ]
2485
+ },
2486
+ {
2487
+ "name": "Network.onConnectedChanged",
2488
+ "summary": "Returns whether the device currently has a usable network connection.",
2489
+ "tags": [
2490
+ {
2491
+ "name": "event",
2492
+ "x-notifier": "Network.onConnectedChanged",
2493
+ "x-subscriber-for": "Network.connected"
2494
+ },
2495
+ {
2496
+ "name": "capabilities",
2497
+ "x-uses": [
2498
+ "xrn:firebolt:capability:network:connected"
2499
+ ]
2500
+ }
2501
+ ],
2502
+ "params": [
2503
+ {
2504
+ "name": "listen",
2505
+ "schema": {
2506
+ "type": "boolean"
2507
+ }
2508
+ }
2509
+ ],
2510
+ "examples": [
2511
+ {
2512
+ "name": "Connected example",
2513
+ "params": [
2514
+ {
2515
+ "name": "listen",
2516
+ "value": true
2517
+ }
2518
+ ],
2519
+ "result": {
2520
+ "name": "result",
2521
+ "value": null
2522
+ }
2523
+ }
2524
+ ],
2525
+ "result": {
2526
+ "name": "result",
2527
+ "schema": {
2528
+ "type": "null"
2529
+ }
2530
+ }
2531
+ },
2532
+ {
2533
+ "name": "Discovery.watched",
2534
+ "summary": "Notify the platform that content was partially or completely watched",
2535
+ "tags": [
2536
+ {
2537
+ "name": "capabilities",
2538
+ "x-uses": [
2539
+ "xrn:firebolt:capability:discovery:watched"
2540
+ ]
2541
+ }
2542
+ ],
2543
+ "params": [
2544
+ {
2545
+ "name": "entityId",
2546
+ "required": true,
2547
+ "schema": {
2548
+ "type": "string"
2549
+ },
2550
+ "summary": "The entity Id of the watched content."
2551
+ },
2552
+ {
2553
+ "name": "progress",
2554
+ "summary": "How much of the content has been watched (percentage as (0-0.999) for VOD, number of seconds for live)",
2555
+ "schema": {
2556
+ "type": "number",
2557
+ "minimum": 0
2558
+ }
2559
+ },
2560
+ {
2561
+ "name": "completed",
2562
+ "summary": "Whether or not this viewing is considered \"complete,\" per the app's definition thereof",
2563
+ "schema": {
2564
+ "type": "boolean"
2565
+ }
2566
+ },
2567
+ {
2568
+ "name": "watchedOn",
2569
+ "summary": "Date/Time the content was watched, ISO 8601 Date/Time",
2570
+ "schema": {
2571
+ "type": "string",
2572
+ "format": "date-time"
2573
+ }
2574
+ },
2575
+ {
2576
+ "name": "agePolicy",
2577
+ "description": "The age policy associated with the watch event. The age policy describes the age groups to which content may be directed.",
2578
+ "schema": {
2579
+ "$ref": "#/x-schemas/Policies/AgePolicy"
2580
+ }
2581
+ }
2582
+ ],
2583
+ "result": {
2584
+ "name": "success",
2585
+ "summary": "whether the call was successful or not",
2586
+ "schema": {
2587
+ "type": "boolean"
2588
+ }
2589
+ },
2590
+ "examples": [
2591
+ {
2592
+ "name": "Notify the platform of watched content",
2593
+ "params": [
2594
+ {
2595
+ "name": "entityId",
2596
+ "value": "partner.com/entity/123"
2597
+ },
2598
+ {
2599
+ "name": "progress",
2600
+ "value": 0.95
2601
+ },
2602
+ {
2603
+ "name": "completed",
2604
+ "value": true
2605
+ },
2606
+ {
2607
+ "name": "watchedOn",
2608
+ "value": "2021-04-23T18:25:43.511Z"
2609
+ }
2610
+ ],
2611
+ "result": {
2612
+ "name": "success",
2613
+ "value": true
2614
+ }
2615
+ },
2616
+ {
2617
+ "name": "Notify the platform that child-directed content was watched",
2618
+ "params": [
2619
+ {
2620
+ "name": "entityId",
2621
+ "value": "partner.com/entity/123"
2622
+ },
2623
+ {
2624
+ "name": "progress",
2625
+ "value": 0.95
2626
+ },
2627
+ {
2628
+ "name": "completed",
2629
+ "value": true
2630
+ },
2631
+ {
2632
+ "name": "watchedOn",
2633
+ "value": "2021-04-23T18:25:43.511Z"
2634
+ },
2635
+ {
2636
+ "name": "agePolicy",
2637
+ "value": "app:child"
2638
+ }
2639
+ ],
2640
+ "result": {
2641
+ "name": "success",
2642
+ "value": true
2643
+ }
2644
+ }
2645
+ ]
2646
+ },
2647
+ {
2648
+ "name": "TextToSpeech.speak",
2649
+ "summary": "Speak the utterance immediately. Any ongoing speech is interrupted.",
2650
+ "description": "Text argument is either plain text or a well-formed SSML document TTS_status, not success attribute, to be used by caller to indicate success of call 0 OK, 1 Fail, 2 not enabled, 3 invalid configuration Raises onSpeechinterrupted if speaking is interrupted",
2651
+ "params": [
2652
+ {
2653
+ "name": "text",
2654
+ "summary": "String to be converted to Audio for speech",
2655
+ "schema": {
2656
+ "type": "string"
2657
+ },
2658
+ "required": true
2659
+ }
2660
+ ],
2661
+ "tags": [
2662
+ {
2663
+ "name": "rpc-only"
2664
+ },
2665
+ {
2666
+ "name": "capabilities",
2667
+ "x-uses": [
2668
+ "xrn:firebolt:capability:text-to-speech:general"
2669
+ ]
2670
+ }
2671
+ ],
2672
+ "result": {
2673
+ "name": "speakResult",
2674
+ "summary": "Result for Speak",
2675
+ "schema": {
2676
+ "$ref": "#/components/schemas/SpeechResponse"
2677
+ }
2678
+ },
2679
+ "examples": [
2680
+ {
2681
+ "name": "Getting the result of speak",
2682
+ "params": [
2683
+ {
2684
+ "name": "text",
2685
+ "value": "I am a text waiting for speech."
2686
+ }
2687
+ ],
2688
+ "result": {
2689
+ "name": "result",
2690
+ "value": {
2691
+ "speechid": 1,
2692
+ "TTS_Status": 0,
2693
+ "success": true
2694
+ }
2695
+ }
2696
+ }
2697
+ ]
2698
+ },
2699
+ {
2700
+ "name": "TextToSpeech.pause",
2701
+ "summary": "Pauses the speech for given speech id",
2702
+ "description": "Pauses the utterance. Raises onSpeechpause if ongoing speech is paused. Does nothing if utterance is already paused",
2703
+ "params": [
2704
+ {
2705
+ "name": "speechid",
2706
+ "summary": "Identifier for the speech call",
2707
+ "schema": {
2708
+ "$ref": "#/components/schemas/SpeechId"
2709
+ },
2710
+ "required": true
2711
+ }
2712
+ ],
2713
+ "tags": [
2714
+ {
2715
+ "name": "rpc-only"
2716
+ },
2717
+ {
2718
+ "name": "capabilities",
2719
+ "x-uses": [
2720
+ "xrn:firebolt:capability:text-to-speech:general"
2721
+ ]
2722
+ }
2723
+ ],
2724
+ "result": {
2725
+ "name": "pauseResult",
2726
+ "summary": "Result for Pause",
2727
+ "schema": {
2728
+ "$ref": "#/components/schemas/TTSStatusResponse"
2729
+ }
2730
+ },
2731
+ "examples": [
2732
+ {
2733
+ "name": "Pause a given speech id",
2734
+ "params": [
2735
+ {
2736
+ "name": "speechid",
2737
+ "value": 1
2738
+ }
2739
+ ],
2740
+ "result": {
2741
+ "name": "TTS_Status",
2742
+ "value": {
2743
+ "TTS_Status": 0,
2744
+ "success": true
2745
+ }
2746
+ }
2747
+ }
2748
+ ]
2749
+ },
2750
+ {
2751
+ "name": "TextToSpeech.resume",
2752
+ "summary": "Resumes the speech for given speech id",
2753
+ "description": "Continue the paused utterance. Raises onSpeechresume if paused speech is resumed. Does nothing if the utterance is not paused",
2754
+ "params": [
2755
+ {
2756
+ "name": "speechid",
2757
+ "summary": "Identifier for the speech call",
2758
+ "schema": {
2759
+ "$ref": "#/components/schemas/SpeechId"
2760
+ },
2761
+ "required": true
2762
+ }
2763
+ ],
2764
+ "tags": [
2765
+ {
2766
+ "name": "rpc-only"
2767
+ },
2768
+ {
2769
+ "name": "capabilities",
2770
+ "x-uses": [
2771
+ "xrn:firebolt:capability:text-to-speech:general"
2772
+ ]
2773
+ }
2774
+ ],
2775
+ "result": {
2776
+ "name": "resumeResult",
2777
+ "summary": "Result for Resume",
2778
+ "schema": {
2779
+ "$ref": "#/components/schemas/TTSStatusResponse"
2780
+ }
2781
+ },
2782
+ "examples": [
2783
+ {
2784
+ "name": "Resume a given speech id.",
2785
+ "params": [
2786
+ {
2787
+ "name": "speechid",
2788
+ "value": 1
2789
+ }
2790
+ ],
2791
+ "result": {
2792
+ "name": "TTS_Status",
2793
+ "value": {
2794
+ "TTS_Status": 0,
2795
+ "success": true
2796
+ }
2797
+ }
2798
+ }
2799
+ ]
2800
+ },
2801
+ {
2802
+ "name": "TextToSpeech.cancel",
2803
+ "summary": "Cancels the speech for given speech id",
2804
+ "description": "Stop speaking if utterance is currently being spoken. Raises onSpeechinterrupted if speaking was interrupted.",
2805
+ "params": [
2806
+ {
2807
+ "name": "speechid",
2808
+ "summary": "Identifier for the speech call",
2809
+ "schema": {
2810
+ "$ref": "#/components/schemas/SpeechId"
2811
+ },
2812
+ "required": true
2813
+ }
2814
+ ],
2815
+ "tags": [
2816
+ {
2817
+ "name": "rpc-only"
2818
+ },
2819
+ {
2820
+ "name": "capabilities",
2821
+ "x-uses": [
2822
+ "xrn:firebolt:capability:text-to-speech:general"
2823
+ ]
2824
+ }
2825
+ ],
2826
+ "result": {
2827
+ "name": "cancelResult",
2828
+ "summary": "Result for cancel",
2829
+ "schema": {
2830
+ "$ref": "#/components/schemas/TTSStatusResponse"
2831
+ }
2832
+ },
2833
+ "examples": [
2834
+ {
2835
+ "name": "Cancel a given speech id.",
2836
+ "params": [
2837
+ {
2838
+ "name": "speechid",
2839
+ "value": 1
2840
+ }
2841
+ ],
2842
+ "result": {
2843
+ "name": "TTS_Status",
2844
+ "value": {
2845
+ "TTS_Status": 0,
2846
+ "success": true
2847
+ }
2848
+ }
2849
+ }
2850
+ ]
2851
+ },
2852
+ {
2853
+ "name": "TextToSpeech.getspeechstate",
2854
+ "summary": "Returns the state of the utterance.",
2855
+ "params": [
2856
+ {
2857
+ "name": "speechid",
2858
+ "summary": "Identifier for the speech call",
2859
+ "schema": {
2860
+ "$ref": "#/components/schemas/SpeechId"
2861
+ },
2862
+ "required": true
2863
+ }
2864
+ ],
2865
+ "tags": [
2866
+ {
2867
+ "name": "rpc-only"
2868
+ },
2869
+ {
2870
+ "name": "capabilities",
2871
+ "x-uses": [
2872
+ "xrn:firebolt:capability:text-to-speech:general"
2873
+ ]
2874
+ }
2875
+ ],
2876
+ "result": {
2877
+ "name": "speechStateResult",
2878
+ "summary": "Result for speech state",
2879
+ "schema": {
2880
+ "$ref": "#/components/schemas/SpeechStateResponse"
2881
+ }
2882
+ },
2883
+ "examples": [
2884
+ {
2885
+ "name": "State for a given speech id.",
2886
+ "params": [
2887
+ {
2888
+ "name": "speechid",
2889
+ "value": 1
2890
+ }
2891
+ ],
2892
+ "result": {
2893
+ "name": "speechstate",
2894
+ "value": {
2895
+ "speechstate": 1,
2896
+ "TTS_Status": 0,
2897
+ "success": true
2898
+ }
2899
+ }
2900
+ }
2901
+ ]
2902
+ },
2903
+ {
2904
+ "name": "TextToSpeech.listvoices",
2905
+ "summary": "Returns the list of available voices as human-readable strings, e.g. 'ava', 'amelie', 'angelica'",
2906
+ "params": [
2907
+ {
2908
+ "name": "language",
2909
+ "summary": "Language - string - BCP 47",
2910
+ "schema": {
2911
+ "$ref": "#/x-schemas/Localization/Locale"
2912
+ },
2913
+ "required": true
2914
+ }
2915
+ ],
2916
+ "tags": [
2917
+ {
2918
+ "name": "rpc-only"
2919
+ },
2920
+ {
2921
+ "name": "capabilities",
2922
+ "x-uses": [
2923
+ "xrn:firebolt:capability:text-to-speech:general"
2924
+ ]
2925
+ }
2926
+ ],
2927
+ "result": {
2928
+ "name": "listvoices",
2929
+ "summary": "The list of voices supported for the language",
2930
+ "schema": {
2931
+ "$ref": "#/components/schemas/ListVoicesResponse"
2932
+ }
2933
+ },
2934
+ "examples": [
2935
+ {
2936
+ "name": "Getting the list of voices",
2937
+ "params": [
2938
+ {
2939
+ "name": "language",
2940
+ "value": "en-US"
2941
+ }
2942
+ ],
2943
+ "result": {
2944
+ "name": "voiceList",
2945
+ "value": {
2946
+ "TTS_Status": 0,
2947
+ "voices": [
2948
+ "carol",
2949
+ "tom"
2950
+ ]
2951
+ }
2952
+ }
2953
+ }
2954
+ ]
2955
+ },
2956
+ {
2957
+ "name": "TextToSpeech.onWillspeak",
2958
+ "summary": "Text to speech conversion is about to start.",
2959
+ "tags": [
2960
+ {
2961
+ "name": "rpc-only"
2962
+ },
2963
+ {
2964
+ "name": "event",
2965
+ "x-notifier": "TextToSpeech.onWillspeak"
2966
+ },
2967
+ {
2968
+ "name": "capabilities",
2969
+ "x-uses": [
2970
+ "xrn:firebolt:capability:text-to-speech:general"
2971
+ ]
2972
+ }
2973
+ ],
2974
+ "params": [
2975
+ {
2976
+ "name": "listen",
2977
+ "schema": {
2978
+ "type": "boolean"
2979
+ }
2980
+ }
2981
+ ],
2982
+ "examples": [
2983
+ {
2984
+ "name": "Default Example",
2985
+ "params": [
2986
+ {
2987
+ "name": "listen",
2988
+ "value": true
2989
+ }
2990
+ ],
2991
+ "result": {
2992
+ "name": "result",
2993
+ "value": null
2994
+ }
2995
+ }
2996
+ ],
2997
+ "result": {
2998
+ "name": "result",
2999
+ "schema": {
3000
+ "type": "null"
3001
+ }
3002
+ }
3003
+ },
3004
+ {
3005
+ "name": "TextToSpeech.onSpeechstart",
3006
+ "summary": "Utterance is about to be spoken.",
3007
+ "tags": [
3008
+ {
3009
+ "name": "rpc-only"
3010
+ },
3011
+ {
3012
+ "name": "event",
3013
+ "x-notifier": "TextToSpeech.onSpeechstart"
3014
+ },
3015
+ {
3016
+ "name": "capabilities",
3017
+ "x-uses": [
3018
+ "xrn:firebolt:capability:text-to-speech:general"
3019
+ ]
3020
+ }
3021
+ ],
3022
+ "params": [
3023
+ {
3024
+ "name": "listen",
3025
+ "schema": {
3026
+ "type": "boolean"
3027
+ }
3028
+ }
3029
+ ],
3030
+ "examples": [
3031
+ {
3032
+ "name": "Default Example",
3033
+ "params": [
3034
+ {
3035
+ "name": "listen",
3036
+ "value": true
3037
+ }
3038
+ ],
3039
+ "result": {
3040
+ "name": "result",
3041
+ "value": null
3042
+ }
3043
+ }
3044
+ ],
3045
+ "result": {
3046
+ "name": "result",
3047
+ "schema": {
3048
+ "type": "null"
3049
+ }
3050
+ }
3051
+ },
3052
+ {
3053
+ "name": "TextToSpeech.onSpeechpause",
3054
+ "summary": "Ongoing speech was paused.",
3055
+ "tags": [
3056
+ {
3057
+ "name": "rpc-only"
3058
+ },
3059
+ {
3060
+ "name": "event",
3061
+ "x-notifier": "TextToSpeech.onSpeechpause"
3062
+ },
3063
+ {
3064
+ "name": "capabilities",
3065
+ "x-uses": [
3066
+ "xrn:firebolt:capability:text-to-speech:general"
3067
+ ]
3068
+ }
3069
+ ],
3070
+ "params": [
3071
+ {
3072
+ "name": "listen",
3073
+ "schema": {
3074
+ "type": "boolean"
3075
+ }
3076
+ }
3077
+ ],
3078
+ "examples": [
3079
+ {
3080
+ "name": "Default Example",
3081
+ "params": [
3082
+ {
3083
+ "name": "listen",
3084
+ "value": true
3085
+ }
3086
+ ],
3087
+ "result": {
3088
+ "name": "result",
3089
+ "value": null
3090
+ }
3091
+ }
3092
+ ],
3093
+ "result": {
3094
+ "name": "result",
3095
+ "schema": {
3096
+ "type": "null"
3097
+ }
3098
+ }
3099
+ },
3100
+ {
3101
+ "name": "TextToSpeech.onSpeechresume",
3102
+ "summary": "Paused speech was resumed.",
3103
+ "tags": [
3104
+ {
3105
+ "name": "rpc-only"
3106
+ },
3107
+ {
3108
+ "name": "event",
3109
+ "x-notifier": "TextToSpeech.onSpeechresume"
3110
+ },
3111
+ {
3112
+ "name": "capabilities",
3113
+ "x-uses": [
3114
+ "xrn:firebolt:capability:text-to-speech:general"
3115
+ ]
3116
+ }
3117
+ ],
3118
+ "params": [
3119
+ {
3120
+ "name": "listen",
3121
+ "schema": {
3122
+ "type": "boolean"
3123
+ }
3124
+ }
3125
+ ],
3126
+ "examples": [
3127
+ {
3128
+ "name": "Default Example",
3129
+ "params": [
3130
+ {
3131
+ "name": "listen",
3132
+ "value": true
3133
+ }
3134
+ ],
3135
+ "result": {
3136
+ "name": "result",
3137
+ "value": null
3138
+ }
3139
+ }
3140
+ ],
3141
+ "result": {
3142
+ "name": "result",
3143
+ "schema": {
3144
+ "type": "null"
3145
+ }
3146
+ }
3147
+ },
3148
+ {
3149
+ "name": "TextToSpeech.onSpeechcomplete",
3150
+ "summary": "Speech completed successfully.",
3151
+ "tags": [
3152
+ {
3153
+ "name": "rpc-only"
3154
+ },
3155
+ {
3156
+ "name": "event",
3157
+ "x-notifier": "TextToSpeech.onSpeechcomplete"
3158
+ },
3159
+ {
3160
+ "name": "capabilities",
3161
+ "x-uses": [
3162
+ "xrn:firebolt:capability:text-to-speech:general"
3163
+ ]
3164
+ }
3165
+ ],
3166
+ "params": [
3167
+ {
3168
+ "name": "listen",
3169
+ "schema": {
3170
+ "type": "boolean"
3171
+ }
3172
+ }
3173
+ ],
3174
+ "examples": [
3175
+ {
3176
+ "name": "Default Example",
3177
+ "params": [
3178
+ {
3179
+ "name": "listen",
3180
+ "value": true
3181
+ }
3182
+ ],
3183
+ "result": {
3184
+ "name": "result",
3185
+ "value": null
3186
+ }
3187
+ }
3188
+ ],
3189
+ "result": {
3190
+ "name": "result",
3191
+ "schema": {
3192
+ "type": "null"
3193
+ }
3194
+ }
3195
+ },
3196
+ {
3197
+ "name": "TextToSpeech.onSpeechinterrupted",
3198
+ "summary": "Speech was stopped, due to another call to speak or cancel.",
3199
+ "tags": [
3200
+ {
3201
+ "name": "rpc-only"
3202
+ },
3203
+ {
3204
+ "name": "event",
3205
+ "x-notifier": "TextToSpeech.onSpeechinterrupted"
3206
+ },
3207
+ {
3208
+ "name": "capabilities",
3209
+ "x-uses": [
3210
+ "xrn:firebolt:capability:text-to-speech:general"
3211
+ ]
3212
+ }
3213
+ ],
3214
+ "params": [
3215
+ {
3216
+ "name": "listen",
3217
+ "schema": {
3218
+ "type": "boolean"
3219
+ }
3220
+ }
3221
+ ],
3222
+ "examples": [
3223
+ {
3224
+ "name": "Default Example",
3225
+ "params": [
3226
+ {
3227
+ "name": "listen",
3228
+ "value": true
3229
+ }
3230
+ ],
3231
+ "result": {
3232
+ "name": "result",
3233
+ "value": null
3234
+ }
3235
+ }
3236
+ ],
3237
+ "result": {
3238
+ "name": "result",
3239
+ "schema": {
3240
+ "type": "null"
3241
+ }
3242
+ }
3243
+ },
3244
+ {
3245
+ "name": "TextToSpeech.onNetworkerror",
3246
+ "summary": "Utterance failed due to network error.",
3247
+ "tags": [
3248
+ {
3249
+ "name": "rpc-only"
3250
+ },
3251
+ {
3252
+ "name": "event",
3253
+ "x-notifier": "TextToSpeech.onNetworkerror"
3254
+ },
3255
+ {
3256
+ "name": "capabilities",
3257
+ "x-uses": [
3258
+ "xrn:firebolt:capability:text-to-speech:general"
3259
+ ]
3260
+ }
3261
+ ],
3262
+ "params": [
3263
+ {
3264
+ "name": "listen",
3265
+ "schema": {
3266
+ "type": "boolean"
3267
+ }
3268
+ }
3269
+ ],
3270
+ "examples": [
3271
+ {
3272
+ "name": "Default Example",
3273
+ "params": [
3274
+ {
3275
+ "name": "listen",
3276
+ "value": true
3277
+ }
3278
+ ],
3279
+ "result": {
3280
+ "name": "result",
3281
+ "value": null
3282
+ }
3283
+ }
3284
+ ],
3285
+ "result": {
3286
+ "name": "result",
3287
+ "schema": {
3288
+ "type": "null"
3289
+ }
3290
+ }
3291
+ },
3292
+ {
3293
+ "name": "TextToSpeech.onPlaybackerror",
3294
+ "summary": "Utterance failed during playback.",
3295
+ "tags": [
3296
+ {
3297
+ "name": "rpc-only"
3298
+ },
3299
+ {
3300
+ "name": "event",
3301
+ "x-notifier": "TextToSpeech.onPlaybackerror"
3302
+ },
3303
+ {
3304
+ "name": "capabilities",
3305
+ "x-uses": [
3306
+ "xrn:firebolt:capability:text-to-speech:general"
3307
+ ]
3308
+ }
3309
+ ],
3310
+ "params": [
3311
+ {
3312
+ "name": "listen",
3313
+ "schema": {
3314
+ "type": "boolean"
3315
+ }
3316
+ }
3317
+ ],
3318
+ "examples": [
3319
+ {
3320
+ "name": "Default Example",
3321
+ "params": [
3322
+ {
3323
+ "name": "listen",
3324
+ "value": true
3325
+ }
3326
+ ],
3327
+ "result": {
3328
+ "name": "result",
3329
+ "value": null
3330
+ }
3331
+ }
3332
+ ],
3333
+ "result": {
3334
+ "name": "result",
3335
+ "schema": {
3336
+ "type": "null"
3337
+ }
3338
+ }
3339
+ }
3340
+ ],
3341
+ "components": {
3342
+ "schemas": {
3343
+ "InitializeResult": {
3344
+ "title": "InitializeResult",
3345
+ "type": "object",
3346
+ "required": [
3347
+ "version"
3348
+ ],
3349
+ "properties": {
3350
+ "version": {
3351
+ "$ref": "#/x-schemas/Types/SemanticVersion",
3352
+ "description": "The semantic version of the FEE."
3353
+ }
3354
+ },
3355
+ "additionalProperties": false
3356
+ },
3357
+ "AdvertisingIdResult": {
3358
+ "title": "AdvertisingIdResult",
3359
+ "type": "object",
3360
+ "properties": {
3361
+ "ifa": {
3362
+ "type": "string",
3363
+ "description": "UUID conforming to IAB standard"
3364
+ },
3365
+ "ifa_type": {
3366
+ "type": "string",
3367
+ "enum": [
3368
+ "dpid",
3369
+ "sspid",
3370
+ "sessionid"
3371
+ ],
3372
+ "description": "Source of the IFA as defined by IAB"
3373
+ },
3374
+ "lmt": {
3375
+ "type": "string",
3376
+ "enum": [
3377
+ "0",
3378
+ "1"
3379
+ ],
3380
+ "description": "Boolean that if set to 1, user has requested ad tracking and measurement is disabled"
3381
+ }
3382
+ },
3383
+ "required": [
3384
+ "ifa",
3385
+ "ifa_type",
3386
+ "lmt"
3387
+ ]
3388
+ },
3389
+ "HDRFormatMap": {
3390
+ "title": "HDRFormatMap",
3391
+ "type": "object",
3392
+ "properties": {
3393
+ "hdr10": {
3394
+ "type": "boolean"
3395
+ },
3396
+ "hdr10Plus": {
3397
+ "type": "boolean"
3398
+ },
3399
+ "dolbyVision": {
3400
+ "type": "boolean"
3401
+ },
3402
+ "hlg": {
3403
+ "type": "boolean"
3404
+ }
3405
+ },
3406
+ "required": [
3407
+ "hdr10",
3408
+ "hdr10Plus",
3409
+ "dolbyVision",
3410
+ "hlg"
3411
+ ],
3412
+ "description": "The type of HDR format"
3413
+ },
3414
+ "DeviceClass": {
3415
+ "title": "DeviceClass",
3416
+ "type": "string",
3417
+ "enum": [
3418
+ "ott",
3419
+ "stb",
3420
+ "tv"
3421
+ ],
3422
+ "description": "The type of device"
3423
+ },
3424
+ "CloseType": {
3425
+ "title": "CloseType",
3426
+ "description": "The application close type",
3427
+ "type": "string",
3428
+ "enum": [
3429
+ "deactivate",
3430
+ "unload",
3431
+ "killReload",
3432
+ "killReactivate"
3433
+ ]
3434
+ },
3435
+ "LifecycleState": {
3436
+ "title": "LifecycleState",
3437
+ "description": "The application Lifecycle state",
3438
+ "type": "string",
3439
+ "enum": [
3440
+ "initializing",
3441
+ "active",
3442
+ "paused",
3443
+ "suspended",
3444
+ "hibernated",
3445
+ "terminating"
3446
+ ]
3447
+ },
3448
+ "MediaPosition": {
3449
+ "title": "MediaPosition",
3450
+ "description": "Represents a position inside playback content, as a decimal percentage (0-0.999) for content with a known duration, or an integer number of seconds (0-86400) for content with an unknown duration.",
3451
+ "oneOf": [
3452
+ {
3453
+ "const": 0
3454
+ },
3455
+ {
3456
+ "type": "number",
3457
+ "exclusiveMinimum": 0,
3458
+ "exclusiveMaximum": 1
3459
+ },
3460
+ {
3461
+ "type": "integer",
3462
+ "minimum": 1,
3463
+ "maximum": 86400
3464
+ }
3465
+ ]
3466
+ },
3467
+ "ErrorType": {
3468
+ "title": "ErrorType",
3469
+ "type": "string",
3470
+ "enum": [
3471
+ "network",
3472
+ "media",
3473
+ "restriction",
3474
+ "entitlement",
3475
+ "other"
3476
+ ]
3477
+ },
3478
+ "Connected": {
3479
+ "type": "boolean",
3480
+ "description": "Indicates whether the device currently has a usable network connection."
3481
+ },
3482
+ "MemoryUsage": {
3483
+ "title": "MemoryUsage",
3484
+ "type": "object",
3485
+ "description": "Describes current and maximum memory usage of the container.",
3486
+ "properties": {
3487
+ "userMemoryUsed": {
3488
+ "type": "integer",
3489
+ "description": "User memory currently used in bytes."
3490
+ },
3491
+ "userMemoryLimit": {
3492
+ "type": "integer",
3493
+ "description": "Maximum user memory available in bytes."
3494
+ },
3495
+ "gpuMemoryUsed": {
3496
+ "type": "integer",
3497
+ "description": "GPU memory currently used in bytes."
3498
+ },
3499
+ "gpuMemoryLimit": {
3500
+ "type": "integer",
3501
+ "description": "Maximum GPU memory available in bytes."
3502
+ }
3503
+ },
3504
+ "required": [
3505
+ "userMemoryUsed",
3506
+ "userMemoryLimit",
3507
+ "gpuMemoryUsed",
3508
+ "gpuMemoryLimit"
3509
+ ]
3510
+ },
3511
+ "ListVoicesResponse": {
3512
+ "title": "ListVoicesResponse",
3513
+ "type": "object",
3514
+ "required": [
3515
+ "TTS_Status",
3516
+ "voices"
3517
+ ],
3518
+ "properties": {
3519
+ "TTS_Status": {
3520
+ "$ref": "#/components/schemas/TTSStatus"
3521
+ },
3522
+ "voices": {
3523
+ "type": "array",
3524
+ "items": {
3525
+ "type": "string"
3526
+ }
3527
+ }
3528
+ }
3529
+ },
3530
+ "SpeechResponse": {
3531
+ "title": "SpeechResponse",
3532
+ "type": "object",
3533
+ "properties": {
3534
+ "speechid": {
3535
+ "$ref": "#/components/schemas/SpeechId"
3536
+ },
3537
+ "TTS_Status": {
3538
+ "$ref": "#/components/schemas/TTSStatus"
3539
+ },
3540
+ "success": {
3541
+ "type": "boolean"
3542
+ }
3543
+ },
3544
+ "required": [
3545
+ "speechid",
3546
+ "TTS_Status",
3547
+ "success"
3548
+ ]
3549
+ },
3550
+ "SpeechId": {
3551
+ "type": "integer"
3552
+ },
3553
+ "TTSStatus": {
3554
+ "title": "TTSStatus",
3555
+ "type": "integer",
3556
+ "minimum": 0,
3557
+ "maximum": 3
3558
+ },
3559
+ "SpeechState": {
3560
+ "title": "SpeechState",
3561
+ "type": "integer",
3562
+ "enum": [
3563
+ 0,
3564
+ 1,
3565
+ 2,
3566
+ 3
3567
+ ],
3568
+ "description": "0 = SPEECH_PENDING, 1 = SPEECH_IN_PROGRESS, 2 = SPEECH_PAUSED, 3 = SPEECH_NOT_FOUND"
3569
+ },
3570
+ "SpeechStateResponse": {
3571
+ "title": "SpeechStateResponse",
3572
+ "type": "object",
3573
+ "properties": {
3574
+ "speechstate": {
3575
+ "$ref": "#/components/schemas/SpeechState"
3576
+ },
3577
+ "TTS_Status": {
3578
+ "$ref": "#/components/schemas/TTSStatus"
3579
+ },
3580
+ "success": {
3581
+ "type": "boolean"
3582
+ }
3583
+ },
3584
+ "required": [
3585
+ "speechstate",
3586
+ "TTS_Status",
3587
+ "success"
3588
+ ]
3589
+ },
3590
+ "TTSStatusResponse": {
3591
+ "title": "TTSStatusResponse",
3592
+ "type": "object",
3593
+ "properties": {
3594
+ "TTS_Status": {
3595
+ "$ref": "#/components/schemas/TTSStatus"
3596
+ },
3597
+ "success": {
3598
+ "type": "boolean"
3599
+ }
3600
+ },
3601
+ "required": [
3602
+ "TTS_Status",
3603
+ "success"
3604
+ ]
3605
+ }
3606
+ }
3607
+ },
3608
+ "x-schemas": {
3609
+ "Types": {
3610
+ "uri": "https://meta.comcast.com/firebolt/types",
3611
+ "SemanticVersion": {
3612
+ "title": "SemanticVersion",
3613
+ "type": "object",
3614
+ "properties": {
3615
+ "major": {
3616
+ "type": "integer",
3617
+ "minimum": 0
3618
+ },
3619
+ "minor": {
3620
+ "type": "integer",
3621
+ "minimum": 0
3622
+ },
3623
+ "patch": {
3624
+ "type": "integer",
3625
+ "minimum": 0
3626
+ },
3627
+ "readable": {
3628
+ "type": "string"
3629
+ }
3630
+ },
3631
+ "required": [
3632
+ "major",
3633
+ "minor",
3634
+ "patch",
3635
+ "readable"
3636
+ ],
3637
+ "additionalProperties": false
3638
+ },
3639
+ "FlatMap": {
3640
+ "type": "object",
3641
+ "additionalProperties": {
3642
+ "oneOf": [
3643
+ {
3644
+ "type": "string"
3645
+ },
3646
+ {
3647
+ "type": "number"
3648
+ },
3649
+ {
3650
+ "type": "boolean"
3651
+ }
3652
+ ]
3653
+ }
3654
+ }
3655
+ },
3656
+ "Accessibility": {
3657
+ "uri": "https://meta.comcast.com/firebolt/accessibility",
3658
+ "ClosedCaptionsSettings": {
3659
+ "title": "ClosedCaptionsSettings",
3660
+ "type": "object",
3661
+ "required": [
3662
+ "enabled"
3663
+ ],
3664
+ "properties": {
3665
+ "enabled": {
3666
+ "type": "boolean",
3667
+ "description": "Whether or not closed-captions should be enabled by default"
3668
+ },
3669
+ "preferredLanguages": {
3670
+ "type": "array",
3671
+ "items": {
3672
+ "$ref": "#/x-schemas/Localization/ISO639_2Language"
3673
+ }
3674
+ }
3675
+ },
3676
+ "examples": [
3677
+ {
3678
+ "enabled": true,
3679
+ "styles": {
3680
+ "fontFamily": "monospaced_serif",
3681
+ "fontSize": 1,
3682
+ "fontColor": "#ffffff",
3683
+ "fontEdge": "none",
3684
+ "fontEdgeColor": "#7F7F7F",
3685
+ "fontOpacity": 100,
3686
+ "backgroundColor": "#000000",
3687
+ "backgroundOpacity": 100,
3688
+ "textAlign": "center",
3689
+ "textAlignVertical": "middle",
3690
+ "windowColor": "white",
3691
+ "windowOpacity": 50
3692
+ },
3693
+ "preferredLanguages": [
3694
+ "eng",
3695
+ "spa"
3696
+ ]
3697
+ }
3698
+ ]
3699
+ },
3700
+ "VoiceGuidanceSettings": {
3701
+ "title": "VoiceGuidanceSettings",
3702
+ "type": "object",
3703
+ "required": [
3704
+ "enabled",
3705
+ "navigationHints",
3706
+ "rate"
3707
+ ],
3708
+ "properties": {
3709
+ "enabled": {
3710
+ "type": "boolean",
3711
+ "description": "Whether or not voice guidance should be enabled by default"
3712
+ },
3713
+ "rate": {
3714
+ "$ref": "#/x-schemas/Accessibility/SpeechRate",
3715
+ "description": "The rate at which voice guidance speech will be read back to the user"
3716
+ },
3717
+ "navigationHints": {
3718
+ "type": "boolean",
3719
+ "description": "Whether or not voice guidance should include additional navigation hints"
3720
+ }
3721
+ },
3722
+ "examples": [
3723
+ {
3724
+ "enabled": true,
3725
+ "navigationHints": true,
3726
+ "rate": 0.8
3727
+ }
3728
+ ]
3729
+ },
3730
+ "SpeechRate": {
3731
+ "title": "SpeechRate",
3732
+ "type": "number",
3733
+ "minimum": 0.1,
3734
+ "maximum": 10
3735
+ }
3736
+ },
3737
+ "Localization": {
3738
+ "uri": "https://meta.comcast.com/firebolt/localization",
3739
+ "ISO639_2Language": {
3740
+ "type": "string",
3741
+ "pattern": "^[a-z]{3}$"
3742
+ },
3743
+ "CountryCode": {
3744
+ "type": "string",
3745
+ "pattern": "^[A-Z]{2}$"
3746
+ },
3747
+ "Locale": {
3748
+ "type": "string",
3749
+ "pattern": "^[a-zA-Z]+([a-zA-Z0-9\\-]*)$"
3750
+ }
3751
+ },
3752
+ "Policies": {
3753
+ "uri": "https://meta.comcast.com/firebolt/policies",
3754
+ "AgePolicy": {
3755
+ "title": "AgePolicy",
3756
+ "description": "The policy that describes various age groups to which content is directed. See distributor documentation for further details.",
3757
+ "anyOf": [
3758
+ {
3759
+ "type": "string"
3760
+ },
3761
+ {
3762
+ "type": "string",
3763
+ "enum": [
3764
+ "app:adult",
3765
+ "app:child",
3766
+ "app:teen"
3767
+ ]
3768
+ }
3769
+ ]
3770
+ }
3771
+ }
3772
+ }
3773
+ }