3 * Copyright (C) 2005-2012 Team XBMC
6 * This Program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
11 * This Program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with XBMC; see the file COPYING. If not, write to
18 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
19 * http://www.gnu.org/copyleft/gpl.html
25 const char* const JSONRPC_SERVICE_ID = "http://www.xbmc.org/jsonrpc/ServiceDescription.json";
26 const int JSONRPC_SERVICE_VERSION = 5;
27 const char* const JSONRPC_SERVICE_DESCRIPTION = "JSON-RPC API of XBMC";
29 const char* const JSONRPC_SERVICE_TYPES[] = {
30 "\"Optional.Boolean\": {"
31 "\"type\": [ \"null\", \"boolean\" ],"
34 "\"Optional.String\": {"
35 "\"type\": [ \"null\", \"string\" ], "
38 "\"Optional.Integer\": {"
39 "\"type\": [ \"null\", \"integer\" ], "
42 "\"Optional.Number\": {"
43 "\"type\": [ \"null\", \"number\" ], "
47 "\"type\": \"array\","
48 "\"items\": { \"type\": \"string\", \"minLength\": 1 }"
50 "\"Array.Integer\": {"
51 "\"type\": \"array\","
52 "\"items\": { \"type\": \"integer\" }"
55 "\"type\": \"object\","
57 "\"hours\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 23 },"
58 "\"minutes\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 59 },"
59 "\"seconds\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 59 },"
60 "\"milliseconds\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 999 }"
62 "\"additionalProperties\": false"
64 "\"Global.IncrementDecrement\": {"
65 "\"type\": \"string\","
66 "\"enum\": [ \"increment\", \"decrement\" ]"
68 "\"Global.Toggle\": {"
70 "{ \"type\": \"boolean\", \"required\": true },"
71 "{ \"type\": \"string\", \"enum\": [ \"toggle\" ], \"required\": true }"
74 "\"Configuration.Notifications\": {"
75 "\"type\": \"object\","
77 "\"Player\": { \"type\": \"boolean\", \"required\": true },"
78 "\"GUI\": { \"type\": \"boolean\", \"required\": true },"
79 "\"System\": { \"type\": \"boolean\", \"required\": true },"
80 "\"VideoLibrary\": { \"type\": \"boolean\", \"required\": true },"
81 "\"AudioLibrary\": { \"type\": \"boolean\", \"required\": true },"
82 "\"Other\": { \"type\": \"boolean\", \"required\": true }"
84 "\"additionalProperties\": false"
86 "\"Configuration\": {"
87 "\"type\": \"object\", \"required\": true,"
89 "\"notifications\": { \"$ref\": \"Configuration.Notifications\", \"required\": true }"
93 "\"type\": \"integer\","
98 "\"type\": \"integer\","
103 "\"Playlist.Type\": {"
104 "\"type\": \"string\","
105 "\"enum\": [ \"unknown\", \"video\", \"audio\", \"picture\", \"mixed\" ]"
107 "\"Playlist.Property.Name\": {"
108 "\"type\": \"string\","
109 "\"enum\": [ \"type\", \"size\" ]"
111 "\"Playlist.Property.Value\": {"
112 "\"type\": \"object\","
114 "\"type\": { \"$ref\": \"Playlist.Type\" },"
115 "\"size\": { \"type\": \"integer\", \"minimum\": 0 }"
118 "\"Playlist.Position\": {"
119 "\"type\": \"integer\","
123 "\"Playlist.Item\": {"
125 "{ \"type\": \"object\", \"properties\": { \"file\": { \"type\": \"string\", \"description\": \"Path to a file (not a directory) to be added to the playlist\", \"required\": true } }, \"additionalProperties\": false },"
126 "{ \"type\": \"object\", \"properties\": { \"directory\": { \"type\": \"string\", \"required\": true } }, \"additionalProperties\": false },"
127 "{ \"type\": \"object\", \"properties\": { \"movieid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
128 "{ \"type\": \"object\", \"properties\": { \"episodeid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
129 "{ \"type\": \"object\", \"properties\": { \"musicvideoid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
130 "{ \"type\": \"object\", \"properties\": { \"artistid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
131 "{ \"type\": \"object\", \"properties\": { \"albumid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
132 "{ \"type\": \"object\", \"properties\": { \"songid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
133 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true, \"description\": \"Identification of a genre from the AudioLibrary\" } }, \"additionalProperties\": false }"
137 "\"type\": \"integer\","
143 "\"type\": \"string\","
144 "\"enum\": [ \"video\", \"audio\", \"picture\" ]"
146 "\"Player.Position.Percentage\": {"
147 "\"type\": \"number\","
151 "\"Player.Position.Time\": {"
152 "\"type\": \"object\","
153 "\"additionalProperties\": false,"
155 "\"hours\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 23, \"default\": 0 },"
156 "\"minutes\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 59, \"default\": 0 },"
157 "\"seconds\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 59, \"default\": 0 },"
158 "\"milliseconds\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 999, \"default\": 0 }"
161 "\"Player.Speed\": {"
162 "\"type\": \"object\","
163 "\"required\": true,"
165 "\"speed\": { \"type\": \"integer\" }"
168 "\"Player.Repeat\": {"
169 "\"type\": \"string\","
170 "\"enum\": [ \"off\", \"one\", \"all\" ]"
172 "\"Player.Audio.Stream\": {"
173 "\"type\": \"object\","
175 "\"index\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
176 "\"name\": { \"type\": \"string\", \"required\": true },"
177 "\"language\": { \"type\": \"string\", \"required\": true }"
180 "\"Player.Audio.Stream.Extended\": {"
181 "\"extends\": \"Player.Audio.Stream\","
183 "\"codec\": { \"type\": \"string\", \"required\": true },"
184 "\"bitrate\": { \"type\": \"integer\", \"required\": true },"
185 "\"channels\": { \"type\": \"integer\", \"required\": true }"
188 "\"Player.Subtitle\": {"
189 "\"type\": \"object\","
191 "\"index\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
192 "\"name\": { \"type\": \"string\", \"required\": true },"
193 "\"language\": { \"type\": \"string\", \"required\": true }"
196 "\"Player.Property.Name\": {"
197 "\"type\": \"string\","
198 "\"enum\": [ \"type\", \"partymode\", \"speed\", \"time\", \"percentage\","
199 "\"totaltime\", \"playlistid\", \"position\", \"repeat\", \"shuffled\","
200 "\"canseek\", \"canchangespeed\", \"canmove\", \"canzoom\", \"canrotate\","
201 "\"canshuffle\", \"canrepeat\", \"currentaudiostream\", \"audiostreams\","
202 "\"subtitleenabled\", \"currentsubtitle\", \"subtitles\" ]"
204 "\"Player.Property.Value\": {"
205 "\"type\": \"object\","
207 "\"type\": { \"$ref\": \"Player.Type\" },"
208 "\"partymode\": { \"type\": \"boolean\" },"
209 "\"speed\": { \"type\": \"integer\" },"
210 "\"time\": { \"$ref\": \"Global.Time\" },"
211 "\"percentage\": { \"$ref\": \"Player.Position.Percentage\" },"
212 "\"totaltime\": { \"$ref\": \"Global.Time\" },"
213 "\"playlistid\": { \"$ref\": \"Playlist.Id\" },"
214 "\"position\": { \"$ref\": \"Playlist.Position\" },"
215 "\"repeat\": { \"$ref\": \"Player.Repeat\" },"
216 "\"shuffled\": { \"type\": \"boolean\" },"
217 "\"canseek\": { \"type\": \"boolean\" },"
218 "\"canchangespeed\": { \"type\": \"boolean\" },"
219 "\"canmove\": { \"type\": \"boolean\" },"
220 "\"canzoom\": { \"type\": \"boolean\" },"
221 "\"canrotate\": { \"type\": \"boolean\" },"
222 "\"canshuffle\": { \"type\": \"boolean\" },"
223 "\"canrepeat\": { \"type\": \"boolean\" },"
224 "\"currentaudiostream\": { \"$ref\": \"Player.Audio.Stream.Extended\" },"
225 "\"audiostreams\": { \"type\": \"array\", \"items\": { \"$ref\": \"Player.Audio.Stream\" } },"
226 "\"subtitleenabled\": { \"type\": \"boolean\" },"
227 "\"currentsubtitle\": { \"$ref\": \"Player.Subtitle\" },"
228 "\"subtitles\": { \"type\": \"array\", \"items\": { \"$ref\": \"Player.Subtitle\" } }"
231 "\"Player.Notifications.Item.Type\": {"
232 "\"type\": \"string\","
233 "\"enum\": [ \"unknown\", \"movie\", \"episode\", \"musicvideo\", \"song\" ]"
235 "\"Player.Notifications.Item\": {"
237 "{ \"type\": \"object\", \"description\": \"An unknown item does not have any additional information.\","
239 "\"type\": { \"$ref\": \"Player.Notifications.Item.Type\", \"required\": true }"
242 "{ \"type\": \"object\", \"description\": \"An item known to the database has an identification.\","
244 "\"type\": { \"$ref\": \"Player.Notifications.Item.Type\", \"required\": true },"
245 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true }"
248 "{ \"type\": \"object\", \"description\": \"A movie item has a title and may have a release year.\","
250 "\"type\": { \"$ref\": \"Player.Notifications.Item.Type\", \"required\": true },"
251 "\"title\": { \"type\": \"string\", \"required\": true },"
252 "\"year\": { \"type\": \"integer\" }"
255 "{ \"type\": \"object\", \"description\": \"A tv episode has a title and may have an episode number, season number and the title of the show it belongs to.\","
257 "\"type\": { \"$ref\": \"Player.Notifications.Item.Type\", \"required\": true },"
258 "\"title\": { \"type\": \"string\", \"required\": true },"
259 "\"episode\": { \"type\": \"integer\" },"
260 "\"season\": { \"type\": \"integer\" },"
261 "\"showtitle\": { \"type\": \"string\" }"
264 "{ \"type\": \"object\", \"description\": \"A music video has a title and may have an album and an artist.\","
266 "\"type\": { \"$ref\": \"Player.Notifications.Item.Type\", \"required\": true },"
267 "\"title\": { \"type\": \"string\", \"required\": true },"
268 "\"album\": { \"type\": \"string\" },"
269 "\"artist\": { \"type\": \"string\" }"
272 "{ \"type\": \"object\", \"description\": \"A song has a title and may have an album, an artist and a track number.\","
274 "\"type\": { \"$ref\": \"Player.Notifications.Item.Type\", \"required\": true },"
275 "\"title\": { \"type\": \"string\", \"required\": true },"
276 "\"album\": { \"type\": \"string\" },"
277 "\"artist\": { \"type\": \"string\" },"
278 "\"track\": { \"type\": \"integer\" }"
283 "\"Player.Notifications.Player\": {"
284 "\"type\": \"object\","
286 "\"playerid\": { \"$ref\": \"Player.Id\", \"required\": true },"
287 "\"speed\": { \"type\": \"integer\" }"
290 "\"Player.Notifications.Player.Seek\": {"
291 "\"extends\": \"Player.Notifications.Player\","
293 "\"time\": { \"$ref\": \"Global.Time\" },"
294 "\"seekoffset\": { \"$ref\": \"Global.Time\" }"
297 "\"Player.Notifications.Data\": {"
298 "\"type\": \"object\","
300 "\"item\": { \"$ref\": \"Player.Notifications.Item\", \"required\": true },"
301 "\"player\": { \"$ref\": \"Player.Notifications.Player\", \"required\": true }"
304 "\"Item.Fields.Base\": {"
305 "\"type\": \"array\","
306 "\"uniqueItems\": true,"
307 "\"items\": { \"type\": \"string\" }"
309 "\"Item.Details.Base\": {"
310 "\"type\": \"object\","
312 "\"label\": { \"type\": \"string\", \"required\": true }"
315 "\"Media.Details.Base\": {"
316 "\"extends\": \"Item.Details.Base\","
318 "\"fanart\": { \"type\": \"string\" },"
319 "\"thumbnail\": { \"type\": \"string\" }"
322 "\"Library.Fields.Genre\": {"
323 "\"extends\": \"Item.Fields.Base\","
324 "\"items\": { \"type\": \"string\", \"enum\": [ \"title\", \"thumbnail\" ] }"
326 "\"Library.Details.Genre\": {"
327 "\"extends\": \"Item.Details.Base\","
329 "\"genreid\": { \"$ref\": \"Library.Id\", \"required\": true },"
330 "\"title\": { \"type\": \"string\" },"
331 "\"thumbnail\": { \"type\": \"string\" }"
334 "\"Audio.Fields.Artist\": {"
335 "\"extends\": \"Item.Fields.Base\","
336 "\"items\": { \"type\": \"string\","
337 "\"enum\": [ \"instrument\", \"style\", \"mood\", \"born\", \"formed\","
338 "\"description\", \"genre\", \"died\", \"disbanded\","
339 "\"yearsactive\", \"musicbrainzartistid\", \"fanart\","
343 "\"Audio.Fields.Album\": {"
344 "\"extends\": \"Item.Fields.Base\","
345 "\"items\": { \"type\": \"string\","
346 "\"enum\": [ \"title\", \"description\", \"artist\", \"genre\","
347 "\"theme\", \"mood\", \"style\", \"type\", \"albumlabel\","
348 "\"rating\", \"year\", \"musicbrainzalbumid\","
349 "\"musicbrainzalbumartistid\", \"fanart\", \"thumbnail\","
353 "\"Audio.Fields.Song\": {"
354 "\"extends\": \"Item.Fields.Base\","
355 "\"items\": { \"type\": \"string\","
356 "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\","
357 "\"rating\", \"album\", \"track\", \"duration\", \"comment\","
358 "\"lyrics\", \"musicbrainztrackid\", \"musicbrainzartistid\","
359 "\"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
360 "\"playcount\", \"fanart\", \"thumbnail\", \"file\", \"artistid\","
361 "\"albumid\", \"lastplayed\", \"disc\" ]"
364 "\"Audio.Details.Base\": {"
365 "\"extends\": \"Media.Details.Base\","
367 "\"genre\": { \"type\": \"string\" }"
370 "\"Audio.Details.Media\": {"
371 "\"extends\": \"Audio.Details.Base\","
373 "\"title\": { \"type\": \"string\" },"
374 "\"artist\": { \"type\": \"string\" },"
375 "\"year\": { \"type\": \"integer\" },"
376 "\"rating\": { \"type\": \"integer\" },"
377 "\"musicbrainzalbumid\": { \"type\": \"string\" },"
378 "\"musicbrainzalbumartistid\": { \"type\": \"string\" }"
381 "\"Audio.Details.Artist\": {"
382 "\"extends\": \"Audio.Details.Base\","
384 "\"artistid\": { \"$ref\": \"Library.Id\", \"required\": true },"
385 "\"artist\": { \"type\": \"string\", \"required\": true },"
386 "\"instrument\": { \"type\": \"string\" },"
387 "\"style\": { \"type\": \"string\" },"
388 "\"mood\": { \"type\": \"string\" },"
389 "\"born\": { \"type\": \"string\" },"
390 "\"formed\": { \"type\": \"string\" },"
391 "\"description\": { \"type\": \"string\" },"
392 "\"died\": { \"type\": \"string\" },"
393 "\"disbanded\": { \"type\": \"string\" },"
394 "\"yearsactive\": { \"type\": \"string\" },"
395 "\"musicbrainzartistid\": { \"type\": \"string\" }"
398 "\"Audio.Details.Album\": {"
399 "\"extends\": \"Audio.Details.Media\","
401 "\"albumid\": { \"$ref\": \"Library.Id\", \"required\": true },"
402 "\"description\": { \"type\": \"string\" },"
403 "\"theme\": { \"type\": \"string\" },"
404 "\"mood\": { \"type\": \"string\" },"
405 "\"style\": { \"type\": \"string\" },"
406 "\"type\": { \"type\": \"string\" },"
407 "\"albumlabel\": { \"type\": \"string\" },"
408 "\"artistid\": { \"$ref\": \"Library.Id\" }"
411 "\"Audio.Details.Song\": {"
412 "\"extends\": \"Audio.Details.Media\","
414 "\"songid\": { \"$ref\": \"Library.Id\", \"required\": true },"
415 "\"file\": { \"type\": \"string\" },"
416 "\"albumartist\": { \"type\": \"string\" },"
417 "\"album\": { \"type\": \"string\" },"
418 "\"track\": { \"type\": \"integer\" },"
419 "\"duration\": { \"type\": \"integer\" },"
420 "\"comment\": { \"type\": \"string\" },"
421 "\"lyrics\": { \"type\": \"string\" },"
422 "\"playcount\": { \"type\": \"integer\" },"
423 "\"musicbrainztrackid\": { \"type\": \"string\" },"
424 "\"musicbrainzartistid\": { \"type\": \"string\" },"
425 "\"artistid\": { \"$ref\": \"Library.Id\" },"
426 "\"albumid\": { \"$ref\": \"Library.Id\" },"
427 "\"lastplayed\": { \"type\": \"string\" },"
428 "\"disc\": { \"type\": \"integer\" }"
431 "\"Video.Fields.Movie\": {"
432 "\"extends\": \"Item.Fields.Base\","
433 "\"items\": { \"type\": \"string\","
434 "\"description\": \"Requesting the cast, set, showling and/or resume field will result in increased response times\","
435 "\"enum\": [ \"title\", \"genre\", \"year\", \"rating\", \"director\", \"trailer\","
436 "\"tagline\", \"plot\", \"plotoutline\", \"originaltitle\", \"lastplayed\","
437 "\"playcount\", \"writer\", \"studio\", \"mpaa\", \"cast\", \"country\","
438 "\"imdbnumber\", \"premiered\", \"productioncode\", \"runtime\", \"set\","
439 "\"showlink\", \"streamdetails\", \"top250\", \"votes\", \"fanart\","
440 "\"thumbnail\", \"file\", \"sorttitle\", \"resume\", \"setid\", \"dateadded\" ]"
443 "\"Video.Fields.MovieSet\": {"
444 "\"extends\": \"Item.Fields.Base\","
445 "\"items\": { \"type\": \"string\","
446 "\"enum\": [ \"title\", \"playcount\", \"fanart\", \"thumbnail\" ]"
449 "\"Video.Fields.TVShow\": {"
450 "\"extends\": \"Item.Fields.Base\","
451 "\"items\": { \"type\": \"string\","
452 "\"description\": \"Requesting the cast field will result in increased response times\","
453 "\"enum\": [ \"title\", \"genre\", \"year\", \"rating\", \"plot\","
454 "\"studio\", \"mpaa\", \"cast\", \"playcount\", \"episode\","
455 "\"imdbnumber\", \"premiered\", \"votes\", \"lastplayed\","
456 "\"fanart\", \"thumbnail\", \"file\", \"originaltitle\","
457 "\"sorttitle\", \"episodeguide\", \"season\", \"watchedepisodes\","
461 "\"Video.Fields.Season\": {"
462 "\"extends\": \"Item.Fields.Base\","
463 "\"items\": { \"type\": \"string\","
464 "\"enum\": [ \"season\", \"showtitle\", \"playcount\", \"episode\", \"fanart\", \"thumbnail\", \"tvshowid\","
465 "\"watchedepisodes\" ]"
468 "\"Video.Fields.Episode\": {"
469 "\"extends\": \"Item.Fields.Base\","
470 "\"items\": { \"type\": \"string\","
471 "\"description\": \"Requesting the cast and/or resume field will result in increased response times\","
472 "\"enum\": [ \"title\", \"plot\", \"votes\", \"rating\", \"writer\","
473 "\"firstaired\", \"playcount\", \"runtime\", \"director\","
474 "\"productioncode\", \"season\", \"episode\", \"originaltitle\","
475 "\"showtitle\", \"cast\", \"streamdetails\", \"lastplayed\", \"fanart\","
476 "\"thumbnail\", \"file\", \"resume\", \"tvshowid\", \"dateadded\" ]"
479 "\"Video.Fields.MusicVideo\": {"
480 "\"extends\": \"Item.Fields.Base\","
481 "\"items\": { \"type\": \"string\","
482 "\"description\": \"Requesting the resume field will result in increased response times\","
483 "\"enum\": [ \"title\", \"playcount\", \"runtime\", \"director\","
484 "\"studio\", \"year\", \"plot\", \"album\", \"artist\","
485 "\"genre\", \"track\", \"streamdetails\", \"lastplayed\","
486 "\"fanart\", \"thumbnail\", \"file\", \"resume\", \"dateadded\" ]"
490 "\"type\": \"array\","
491 "\"items\": { \"type\": \"object\","
493 "\"name\": { \"type\": \"string\", \"required\": true },"
494 "\"role\": { \"type\": \"string\", \"required\": true },"
495 "\"thumbnail\": { \"type\": \"string\" }"
497 "\"additionalProperties\": false"
500 "\"Video.Streams\": {"
501 "\"type\": \"object\","
503 "\"audio\": { \"type\": \"array\", \"minItems\": 1,"
504 "\"items\": { \"type\": \"object\","
506 "\"codec\": { \"type\": \"string\" },"
507 "\"language\": { \"type\": \"string\" },"
508 "\"channels\": { \"type\": \"integer\" }"
510 "\"additionalProperties\": false"
513 "\"video\": { \"type\": \"array\", \"minItems\": 1,"
514 "\"items\": { \"type\": \"object\","
516 "\"codec\": { \"type\": \"string\" },"
517 "\"aspect\": { \"type\": \"number\" },"
518 "\"width\": { \"type\": \"integer\" },"
519 "\"height\": { \"type\": \"integer\" },"
520 "\"duration\": { \"type\": \"integer\" }"
522 "\"additionalProperties\": false"
525 "\"subtitle\": { \"type\": \"array\", \"minItems\": 1,"
526 "\"items\": { \"type\": \"object\","
528 "\"language\": { \"type\": \"string\" }"
530 "\"additionalProperties\": false"
534 "\"additionalProperties\": false"
536 "\"Video.Resume\": {"
537 "\"type\": \"object\","
539 "\"position\": { \"type\": \"number\", \"minimum\": 0 },"
540 "\"total\": { \"type\": \"number\", \"minimum\": 0 }"
542 "\"additionalProperties\": false"
544 "\"Video.Details.Base\": {"
545 "\"extends\": \"Media.Details.Base\","
547 "\"playcount\": { \"type\": \"integer\" }"
550 "\"Video.Details.Media\": {"
551 "\"extends\": \"Video.Details.Base\","
553 "\"title\": { \"type\": \"string\" }"
556 "\"Video.Details.Item\": {"
557 "\"extends\": \"Video.Details.Media\","
559 "\"file\": { \"type\": \"string\" },"
560 "\"plot\": { \"type\": \"string\" },"
561 "\"lastplayed\": { \"type\": \"string\" },"
562 "\"dateadded\": { \"type\": \"string\" }"
565 "\"Video.Details.File\": {"
566 "\"extends\": \"Video.Details.Item\","
568 "\"runtime\": { \"type\": \"string\" },"
569 "\"director\": { \"type\": \"string\" },"
570 "\"streamdetails\": { \"$ref\": \"Video.Streams\" },"
571 "\"resume\": { \"$ref\": \"Video.Resume\" }"
574 "\"Video.Details.Movie\": {"
575 "\"extends\": \"Video.Details.File\","
577 "\"movieid\": { \"$ref\": \"Library.Id\", \"required\": true },"
578 "\"genre\": { \"type\": \"string\" },"
579 "\"year\": { \"type\": \"integer\" },"
580 "\"rating\": { \"type\": \"number\" },"
581 "\"trailer\": { \"type\": \"string\" },"
582 "\"tagline\": { \"type\": \"string\" },"
583 "\"plotoutline\": { \"type\": \"string\" },"
584 "\"originaltitle\": { \"type\": \"string\" },"
585 "\"sorttitle\": { \"type\": \"string\" },"
586 "\"writer\": { \"type\": \"string\" },"
587 "\"studio\": { \"type\": \"string\" },"
588 "\"mpaa\": { \"type\": \"string\" },"
589 "\"cast\": { \"$ref\": \"Video.Cast\" },"
590 "\"country\": { \"type\": \"string\" },"
591 "\"imdbnumber\": { \"type\": \"string\" },"
592 "\"premiered\": { \"type\": \"string\" },"
593 "\"productioncode\": { \"type\": \"string\" },"
594 "\"set\": { \"$ref\": \"Array.String\" },"
595 "\"showlink\": { \"type\": \"string\" },"
596 "\"top250\": { \"type\": \"integer\" },"
597 "\"votes\": { \"type\": \"string\" },"
598 "\"setid\": { \"$ref\": \"Array.Integer\" }"
601 "\"Video.Details.MovieSet\": {"
602 "\"extends\": \"Video.Details.Media\","
604 "\"setid\": { \"$ref\": \"Library.Id\", \"required\": true }"
607 "\"Video.Details.MovieSet.Extended\": {"
608 "\"extends\": \"Video.Details.MovieSet\","
610 "\"movies\": { \"type\": \"array\","
611 "\"items\": { \"$ref\": \"Video.Details.Movie\" }"
615 "\"Video.Details.TVShow\": {"
616 "\"extends\": \"Video.Details.Item\","
618 "\"tvshowid\": { \"$ref\": \"Library.Id\", \"required\": true },"
619 "\"genre\": { \"type\": \"string\" },"
620 "\"year\": { \"type\": \"integer\" },"
621 "\"rating\": { \"type\": \"number\" },"
622 "\"originaltitle\": { \"type\": \"string\" },"
623 "\"sorttitle\": { \"type\": \"string\" },"
624 "\"studio\": { \"type\": \"string\" },"
625 "\"mpaa\": { \"type\": \"string\" },"
626 "\"cast\": { \"$ref\": \"Video.Cast\" },"
627 "\"episode\": { \"type\": \"integer\" },"
628 "\"watchedepisodes\": { \"type\": \"integer\" },"
629 "\"imdbnumber\": { \"type\": \"string\" },"
630 "\"premiered\": { \"type\": \"string\" },"
631 "\"votes\": { \"type\": \"string\" },"
632 "\"episodeguide\": { \"type\": \"string\" },"
633 "\"season\": { \"type\": \"integer\" }"
636 "\"Video.Details.Season\": {"
637 "\"extends\": \"Video.Details.Base\","
639 "\"season\": { \"type\": \"integer\", \"required\": true },"
640 "\"showtitle\": { \"type\": \"string\" },"
641 "\"episode\": { \"type\": \"integer\" },"
642 "\"watchedepisodes\": { \"type\": \"integer\" },"
643 "\"tvshowid\": { \"$ref\": \"Library.Id\" }"
646 "\"Video.Details.Episode\": {"
647 "\"extends\": \"Video.Details.File\","
649 "\"episodeid\": { \"$ref\": \"Library.Id\", \"required\": true },"
650 "\"votes\": { \"type\": \"string\" },"
651 "\"rating\": { \"type\": \"number\" },"
652 "\"writer\": { \"type\": \"string\" },"
653 "\"firstaired\": { \"type\": \"string\" },"
654 "\"productioncode\": { \"type\": \"string\" },"
655 "\"season\": { \"type\": \"integer\" },"
656 "\"episode\": { \"type\": \"integer\" },"
657 "\"originaltitle\": { \"type\": \"string\" },"
658 "\"showtitle\": { \"type\": \"string\" },"
659 "\"cast\": { \"$ref\": \"Video.Cast\" },"
660 "\"tvshowid\": { \"$ref\": \"Library.Id\" }"
663 "\"Video.Details.MusicVideo\": {"
664 "\"extends\": \"Video.Details.File\","
666 "\"musicvideoid\": { \"$ref\": \"Library.Id\", \"required\": true },"
667 "\"studio\": { \"type\": \"string\" },"
668 "\"year\": { \"type\": \"integer\" },"
669 "\"album\": { \"type\": \"string\" },"
670 "\"artist\": { \"type\": \"string\" },"
671 "\"genre\": { \"type\": \"string\" },"
672 "\"track\": { \"type\": \"integer\" }"
676 "\"type\": \"string\","
677 "\"enum\": [ \"video\", \"music\", \"pictures\", \"files\", \"programs\" ]"
680 "\"type\": \"integer\","
685 "\"type\": \"object\","
687 "\"start\": { \"type\": \"integer\", \"minimum\": 0, \"default\": 0 },"
688 "\"end\": { \"type\": \"integer\", \"minimum\": 0, \"default\": -1, \"description\": \"The number of items in the list being returned\" }"
690 "\"additionalProperties\": false"
693 "\"type\": \"object\","
695 "\"method\": { \"type\": \"string\", \"default\": \"none\","
696 "\"enum\": [ \"none\", \"label\", \"date\", \"size\", \"file\", \"drivetype\", \"track\", \"duration\", \"title\", \"artist\","
697 "\"album\", \"genre\", \"country\", \"year\", \"videorating\", \"dateadded\", \"programcount\", \"playlist\","
698 "\"episode\", \"videotitle\", \"sorttitle\", \"productioncode\", \"songrating\", \"mpaarating\", \"videoruntime\","
699 "\"studio\", \"fullpath\", \"lastplayed\", \"playcount\", \"listeners\", \"bitrate\", \"unsorted\" ]"
701 "\"order\": { \"type\": \"string\", \"default\": \"ascending\", \"enum\": [ \"ascending\", \"descending\" ] },"
702 "\"ignorearticle\": { \"type\": \"boolean\", \"default\": false }"
705 "\"List.LimitsReturned\": {"
706 "\"type\": \"object\","
708 "\"start\": { \"type\": \"integer\", \"minimum\": 0, \"default\": 0 },"
709 "\"end\": { \"type\": \"integer\", \"minimum\": 0, \"default\": -1 },"
710 "\"total\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true }"
712 "\"additionalProperties\": false"
714 "\"List.Fields.All\": {"
715 "\"extends\": \"Item.Fields.Base\","
716 "\"items\": { \"type\": \"string\","
717 "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\", \"rating\","
718 "\"album\", \"track\", \"duration\", \"comment\", \"lyrics\", \"musicbrainztrackid\","
719 "\"musicbrainzartistid\", \"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
720 "\"playcount\", \"fanart\", \"director\", \"trailer\", \"tagline\", \"plot\","
721 "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
722 "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
723 "\"runtime\", \"set\", \"showlink\", \"streamdetails\", \"top250\", \"votes\","
724 "\"firstaired\", \"season\", \"episode\", \"showtitle\", \"thumbnail\", \"file\","
725 "\"resume\", \"artistid\", \"albumid\", \"tvshowid\", \"setid\", \"watchedepisodes\","
729 "\"List.Item.All\": {"
730 "\"extends\": [ \"Video.Details.File\", \"Audio.Details.Media\" ],"
732 "\"id\": { \"$ref\": \"Library.Id\" },"
733 "\"type\": { \"type\": \"string\", \"enum\": [ \"unknown\", \"movie\", \"episode\", \"musicvideo\", \"song\", \"picture\" ] },"
734 "\"albumartist\": { \"type\": \"string\" },"
735 "\"album\": { \"type\": \"string\" },"
736 "\"track\": { \"type\": \"integer\" },"
737 "\"duration\": { \"type\": \"integer\" },"
738 "\"comment\": { \"type\": \"string\" },"
739 "\"lyrics\": { \"type\": \"string\" },"
740 "\"musicbrainztrackid\": { \"type\": \"string\" },"
741 "\"musicbrainzartistid\": { \"type\": \"string\" },"
742 "\"trailer\": { \"type\": \"string\" },"
743 "\"tagline\": { \"type\": \"string\" },"
744 "\"plotoutline\": { \"type\": \"string\" },"
745 "\"originaltitle\": { \"type\": \"string\" },"
746 "\"writer\": { \"type\": \"string\" },"
747 "\"studio\": { \"type\": \"string\" },"
748 "\"mpaa\": { \"type\": \"string\" },"
749 "\"cast\": { \"$ref\": \"Video.Cast\" },"
750 "\"country\": { \"type\": \"string\" },"
751 "\"imdbnumber\": { \"type\": \"string\" },"
752 "\"premiered\": { \"type\": \"string\" },"
753 "\"productioncode\": { \"type\": \"string\" },"
754 "\"set\": { \"$ref\": \"Array.String\" },"
755 "\"showlink\": { \"type\": \"string\" },"
756 "\"top250\": { \"type\": \"integer\" },"
757 "\"votes\": { \"type\": \"string\" },"
758 "\"firstaired\": { \"type\": \"string\" },"
759 "\"season\": { \"type\": \"integer\" },"
760 "\"episode\": { \"type\": \"integer\" },"
761 "\"showtitle\": { \"type\": \"string\" },"
762 "\"artistid\": { \"$ref\": \"Library.Id\" },"
763 "\"albumid\": { \"$ref\": \"Library.Id\" },"
764 "\"setid\": { \"$ref\": \"Array.Integer\" },"
765 "\"tvshowid\": { \"$ref\": \"Library.Id\" },"
766 "\"watchedepisodes\": { \"type\": \"integer\" },"
767 "\"disc\": { \"type\": \"integer\" }"
770 "\"List.Fields.Files\": {"
771 "\"extends\": \"Item.Fields.Base\","
772 "\"items\": { \"type\": \"string\","
773 "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\", \"rating\","
774 "\"album\", \"track\", \"duration\", \"comment\", \"lyrics\", \"musicbrainztrackid\","
775 "\"musicbrainzartistid\", \"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
776 "\"playcount\", \"fanart\", \"director\", \"trailer\", \"tagline\", \"plot\","
777 "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
778 "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
779 "\"runtime\", \"set\", \"showlink\", \"streamdetails\", \"top250\", \"votes\","
780 "\"firstaired\", \"season\", \"episode\", \"showtitle\", \"thumbnail\", \"file\","
781 "\"resume\", \"artistid\", \"albumid\", \"tvshowid\", \"setid\", \"size\","
782 "\"lastmodified\", \"mimetype\", \"watchedepisodes\", \"disc\" ]"
785 "\"List.Item.File\": {"
786 "\"extends\": \"List.Item.All\","
788 "\"file\": { \"type\": \"string\", \"required\": true },"
789 "\"filetype\": { \"type\": \"string\", \"enum\": [ \"file\", \"directory\" ], \"required\": true },"
790 "\"size\": { \"type\": \"integer\", \"description\": \"Size of the file in kB (1000 Byte)\" },"
791 "\"lastmodified\": { \"type\": \"string\" },"
792 "\"mimetype\": { \"type\": \"string\" }"
795 "\"List.Items.Sources\": {"
796 "\"type\": \"array\","
798 "\"extends\": \"Item.Details.Base\","
800 "\"file\": { \"type\": \"string\", \"required\": true }"
804 "\"GUI.Property.Name\": {"
805 "\"type\": \"string\","
806 "\"enum\": [ \"currentwindow\", \"currentcontrol\", \"skin\", \"fullscreen\" ]"
808 "\"GUI.Property.Value\": {"
809 "\"type\": \"object\","
811 "\"currentwindow\": { \"type\": \"object\","
813 "\"id\": { \"type\": \"integer\", \"required\": true },"
814 "\"label\": { \"type\": \"string\", \"required\": true }"
817 "\"currentcontrol\": { \"type\": \"object\","
819 "\"label\": { \"type\": \"string\", \"required\": true }"
822 "\"skin\": { \"type\": \"object\","
824 "\"id\": { \"type\": \"string\", \"required\": true, \"minLength\": 1 },"
825 "\"name\": { \"type\": \"string\" }"
828 "\"fullscreen\": { \"type\": \"boolean\" }"
831 "\"System.Property.Name\": {"
832 "\"type\": \"string\","
833 "\"enum\": [ \"canshutdown\", \"cansuspend\", \"canhibernate\", \"canreboot\" ]"
835 "\"System.Property.Value\": {"
836 "\"type\": \"object\","
838 "\"canshutdown\": { \"type\": \"boolean\" },"
839 "\"cansuspend\": { \"type\": \"boolean\" },"
840 "\"canhibernate\": { \"type\": \"boolean\" },"
841 "\"canreboot\": { \"type\": \"boolean\" }"
844 "\"Application.Property.Name\": {"
845 "\"type\": \"string\","
846 "\"enum\": [ \"volume\", \"muted\", \"name\", \"version\" ]"
848 "\"Application.Property.Value\": {"
849 "\"type\": \"object\","
851 "\"volume\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 100 },"
852 "\"muted\": { \"type\": \"boolean\" },"
853 "\"name\": { \"type\": \"string\", \"minLength\": 1 },"
854 "\"version\": { \"type\": \"object\","
856 "\"major\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
857 "\"minor\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
858 "\"revision\": { \"type\": [ \"string\", \"integer\" ] },"
859 "\"tag\": { \"type\": \"string\", \"enum\": [ \"prealpha\", \"alpha\", \"beta\", \"releasecandidate\", \"stable\" ], \"required\": true }"
866 const char* const JSONRPC_SERVICE_METHODS[] = {
867 "\"JSONRPC.Introspect\": {"
868 "\"type\": \"method\","
869 "\"description\": \"Enumerates all actions and descriptions\","
870 "\"transport\": \"Response\","
871 "\"permission\": \"ReadData\","
873 "{ \"name\": \"getdescriptions\", \"type\": \"boolean\", \"default\": true },"
874 "{ \"name\": \"getmetadata\", \"type\": \"boolean\", \"default\": false },"
875 "{ \"name\": \"filterbytransport\", \"type\": \"boolean\", \"default\": true },"
876 "{ \"name\": \"filter\", \"type\": \"object\","
878 "\"id\": { \"type\": \"string\", \"required\": true, \"description\": \"Name of a namespace, method or type\" },"
879 "\"type\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"method\", \"namespace\", \"type\", \"notification\" ], \"description\": \"Type of the given name\" },"
880 "\"getreferences\": { \"type\": \"boolean\", \"default\": true, \"description\": \"Whether or not to print the schema for referenced types\" }"
884 "\"returns\": \"object\""
886 "\"JSONRPC.Version\": {"
887 "\"type\": \"method\","
888 "\"description\": \"Retrieve the jsonrpc protocol version\","
889 "\"transport\": \"Response\","
890 "\"permission\": \"ReadData\","
892 "\"returns\": \"string\""
894 "\"JSONRPC.Permission\": {"
895 "\"type\": \"method\","
896 "\"description\": \"Retrieve the clients permissions\","
897 "\"transport\": \"Response\","
898 "\"permission\": \"ReadData\","
901 "\"type\": \"object\","
903 "\"ReadData\": { \"type\": \"boolean\", \"required\": true },"
904 "\"ControlPlayback\": { \"type\": \"boolean\", \"required\": true },"
905 "\"ControlNotify\": { \"type\": \"boolean\", \"required\": true },"
906 "\"ControlPower\": { \"type\": \"boolean\", \"required\": true },"
907 "\"UpdateData\": { \"type\": \"boolean\", \"required\": true },"
908 "\"RemoveData\": { \"type\": \"boolean\", \"required\": true },"
909 "\"Navigate\": { \"type\": \"boolean\", \"required\": true },"
910 "\"WriteFile\": { \"type\": \"boolean\", \"required\": true },"
911 "\"ControlSystem\": { \"type\": \"boolean\", \"required\": true },"
912 "\"ControlGUI\": { \"type\": \"boolean\", \"required\": true }"
916 "\"JSONRPC.Ping\": {"
917 "\"type\": \"method\","
918 "\"description\": \"Ping responder\","
919 "\"transport\": \"Response\","
920 "\"permission\": \"ReadData\","
922 "\"returns\": \"string\""
924 "\"JSONRPC.GetConfiguration\": {"
925 "\"type\": \"method\","
926 "\"description\": \"Get client-specific configurations\","
927 "\"transport\": \"Announcing\","
928 "\"permission\": \"ReadData\","
930 "\"returns\": { \"$ref\": \"Configuration\" }"
932 "\"JSONRPC.SetConfiguration\": {"
933 "\"type\": \"method\","
934 "\"description\": \"Change the client-specific configuration\","
935 "\"transport\": \"Announcing\","
936 "\"permission\": \"ControlNotify\","
938 "{ \"name\": \"notifications\", \"type\": \"object\","
940 "\"Player\": { \"$ref\": \"Optional.Boolean\" },"
941 "\"GUI\": { \"$ref\": \"Optional.Boolean\" },"
942 "\"System\": { \"$ref\": \"Optional.Boolean\" },"
943 "\"AudioLibrary\": { \"$ref\": \"Optional.Boolean\" },"
944 "\"VideoLibrary\": { \"$ref\": \"Optional.Boolean\" },"
945 "\"Application\": { \"$ref\": \"Optional.Boolean\" },"
946 "\"Other\": { \"$ref\": \"Optional.Boolean\" }"
950 "\"returns\": { \"$ref\": \"Configuration\" }"
952 "\"JSONRPC.NotifyAll\": {"
953 "\"type\": \"method\","
954 "\"description\": \"Notify all other connected clients\","
955 "\"transport\": \"Response\","
956 "\"permission\": \"ReadData\","
958 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
959 "{ \"name\": \"message\", \"type\": \"string\", \"required\": true },"
960 "{ \"name\": \"data\", \"type\": \"any\", \"default\": null }"
962 "\"returns\": \"any\""
965 "\"type\": \"method\","
966 "\"description\": \"Start playback of either the playlist with the given ID, a slideshow with the pictures from the given directory or a single file or an item from the database.\","
967 "\"transport\": \"Response\","
968 "\"permission\": \"ControlPlayback\","
970 "{ \"name\": \"item\","
972 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
974 "\"playlistid\": { \"$ref\": \"Playlist.Id\", \"required\": true },"
975 "\"position\": { \"$ref\": \"Playlist.Position\", \"default\": 0 }"
978 "{ \"$ref\": \"Playlist.Item\", \"required\": true },"
979 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
981 "\"path\": { \"type\": \"string\", \"required\": true },"
982 "\"random\": { \"type\": \"boolean\", \"default\": true, \"description\": \"Deprecated, use the shuffled property of the options parameter instead\" },"
983 "\"recursive\": { \"type\": \"boolean\", \"default\": true }"
988 "{ \"name\": \"options\", \"type\": \"object\", \"additionalProperties\": false,"
990 "\"shuffled\": { \"$ref\": \"Optional.Boolean\" },"
991 "\"repeat\": { \"type\": [ \"null\", { \"$ref\": \"Player.Repeat\", \"required\": true } ], \"default\": null },"
992 "\"resume\": { \"type\": ["
993 "{ \"type\": \"boolean\", \"required\": true, \"description\": \"Whether to resume from the resume point or not\" },"
994 "{ \"$ref\": \"Player.Position.Percentage\", \"required\": true, \"description\": \"Percentage value to start from\" },"
995 "{ \"$ref\": \"Player.Position.Time\", \"required\": true, \"description\": \"Time to start from\" }"
1002 "\"returns\": \"string\""
1004 "\"Player.GetActivePlayers\": {"
1005 "\"type\": \"method\","
1006 "\"description\": \"Returns all active players\","
1007 "\"transport\": \"Response\","
1008 "\"permission\": \"ReadData\","
1011 "\"type\": \"array\","
1012 "\"uniqueItems\": true,"
1014 "\"type\": \"object\","
1016 "\"playerid\": { \"$ref\": \"Player.Id\", \"required\": true },"
1017 "\"type\": { \"$ref\": \"Player.Type\", \"required\": true }"
1022 "\"Player.GetProperties\": {"
1023 "\"type\": \"method\","
1024 "\"description\": \"Retrieves the values of the given properties\","
1025 "\"transport\": \"Response\","
1026 "\"permission\": \"ReadData\","
1028 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1029 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"Player.Property.Name\" } }"
1031 "\"returns\": { \"$ref\": \"Player.Property.Value\", \"required\": true }"
1033 "\"Player.GetItem\": {"
1034 "\"type\": \"method\","
1035 "\"description\": \"Retrieves the currently played item\","
1036 "\"transport\": \"Response\","
1037 "\"permission\": \"ReadData\","
1039 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1040 "{ \"name\": \"properties\", \"$ref\": \"List.Fields.All\" }"
1042 "\"returns\": { \"type\": \"object\","
1044 "\"item\": { \"$ref\": \"List.Item.All\", \"required\": true }"
1048 "\"Player.PlayPause\": {"
1049 "\"type\": \"method\","
1050 "\"description\": \"Pauses or unpause playback and returns the new state\","
1051 "\"transport\": \"Response\","
1052 "\"permission\": \"ControlPlayback\","
1054 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1055 "{ \"name\": \"play\", \"$ref\": \"Global.Toggle\", \"default\": \"toggle\" }"
1057 "\"returns\": { \"$ref\": \"Player.Speed\" }"
1059 "\"Player.Stop\": {"
1060 "\"type\": \"method\","
1061 "\"description\": \"Stops playback\","
1062 "\"transport\": \"Response\","
1063 "\"permission\": \"ControlPlayback\","
1065 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1067 "\"returns\": \"string\""
1069 "\"Player.SetSpeed\": {"
1070 "\"type\": \"method\","
1071 "\"description\": \"Set the speed of the current playback\","
1072 "\"transport\": \"Response\","
1073 "\"permission\": \"ControlPlayback\","
1075 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1076 "{ \"name\": \"speed\", \"type\": ["
1077 "{ \"type\": \"integer\", \"required\": true, \"enum\": [ -32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 32 ] },"
1078 "{ \"$ref\": \"Global.IncrementDecrement\", \"required\": true }"
1080 "\"required\": true"
1083 "\"returns\": { \"$ref\": \"Player.Speed\" }"
1085 "\"Player.Seek\": {"
1086 "\"type\": \"method\","
1087 "\"description\": \"Seek through the playing item\","
1088 "\"transport\": \"Response\","
1089 "\"permission\": \"ControlPlayback\","
1091 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1092 "{ \"name\": \"value\", \"required\": true, \"type\": ["
1093 "{ \"$ref\": \"Player.Position.Percentage\", \"required\": true, \"description\": \"Percentage value to seek to\" },"
1094 "{ \"$ref\": \"Player.Position.Time\", \"required\": true, \"description\": \"Time to seek to\" },"
1095 "{ \"type\": \"string\", \"enum\": [ \"smallforward\", \"smallbackward\", \"bigforward\", \"bigbackward\" ], \"required\": true, \"description\": \"Seek by predefined jumps\" }"
1100 "\"type\": \"object\","
1102 "\"percentage\": { \"$ref\": \"Player.Position.Percentage\" },"
1103 "\"time\": { \"$ref\": \"Global.Time\" },"
1104 "\"totaltime\": { \"$ref\": \"Global.Time\" }"
1108 "\"Player.MoveLeft\": {"
1109 "\"type\": \"method\","
1110 "\"description\": \"If picture is zoomed move viewport left otherwise skip previous\","
1111 "\"transport\": \"Response\","
1112 "\"permission\": \"ControlPlayback\","
1114 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1116 "\"returns\": \"string\""
1118 "\"Player.MoveRight\": {"
1119 "\"type\": \"method\","
1120 "\"description\": \"If picture is zoomed move viewport right otherwise skip next\","
1121 "\"transport\": \"Response\","
1122 "\"permission\": \"ControlPlayback\","
1124 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1126 "\"returns\": \"string\""
1128 "\"Player.MoveDown\": {"
1129 "\"type\": \"method\","
1130 "\"description\": \"If picture is zoomed move viewport down\","
1131 "\"transport\": \"Response\","
1132 "\"permission\": \"ControlPlayback\","
1134 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1136 "\"returns\": \"string\""
1138 "\"Player.MoveUp\": {"
1139 "\"type\": \"method\","
1140 "\"description\": \"If picture is zoomed move viewport up\","
1141 "\"transport\": \"Response\","
1142 "\"permission\": \"ControlPlayback\","
1144 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1146 "\"returns\": \"string\""
1148 "\"Player.ZoomOut\": {"
1149 "\"type\": \"method\","
1150 "\"description\": \"Zoom out once\","
1151 "\"transport\": \"Response\","
1152 "\"permission\": \"ControlPlayback\","
1154 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1156 "\"returns\": \"string\""
1158 "\"Player.ZoomIn\": {"
1159 "\"type\": \"method\","
1160 "\"description\": \"Zoom in once\","
1161 "\"transport\": \"Response\","
1162 "\"permission\": \"ControlPlayback\","
1164 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1166 "\"returns\": \"string\""
1168 "\"Player.Zoom\": {"
1169 "\"type\": \"method\","
1170 "\"description\": \"Zooms current picture\","
1171 "\"transport\": \"Response\","
1172 "\"permission\": \"ControlPlayback\","
1174 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1175 "{ \"name\": \"value\", \"type\": \"integer\", \"required\": true, \"minimum\": 1, \"maximum\": 10, \"description\": \"Zoom level\" }"
1177 "\"returns\": \"string\""
1179 "\"Player.Rotate\": {"
1180 "\"type\": \"method\","
1181 "\"description\": \"Rotates current picture\","
1182 "\"transport\": \"Response\","
1183 "\"permission\": \"ControlPlayback\","
1185 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1187 "\"returns\": \"string\""
1189 "\"Player.GoPrevious\": {"
1190 "\"type\": \"method\","
1191 "\"description\": \"Go to previous item on the playlist\","
1192 "\"transport\": \"Response\","
1193 "\"permission\": \"ControlPlayback\","
1195 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1197 "\"returns\": \"string\""
1199 "\"Player.GoNext\": {"
1200 "\"type\": \"method\","
1201 "\"description\": \"Go to next item on the playlist\","
1202 "\"transport\": \"Response\","
1203 "\"permission\": \"ControlPlayback\","
1205 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1207 "\"returns\": \"string\""
1209 "\"Player.GoTo\": {"
1210 "\"type\": \"method\","
1211 "\"description\": \"Go to item at the given position in the playlist\","
1212 "\"transport\": \"Response\","
1213 "\"permission\": \"ControlPlayback\","
1215 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1216 "{ \"name\": \"position\", \"$ref\": \"Playlist.Position\", \"required\": true }"
1218 "\"returns\": \"string\""
1220 "\"Player.Shuffle\": {"
1221 "\"type\": \"method\","
1222 "\"description\": \"Shuffle items in the player\","
1223 "\"transport\": \"Response\","
1224 "\"permission\": \"ControlPlayback\","
1226 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1228 "\"returns\": \"string\""
1230 "\"Player.UnShuffle\": {"
1231 "\"type\": \"method\","
1232 "\"description\": \"Unshuffle items in the player\","
1233 "\"transport\": \"Response\","
1234 "\"permission\": \"ControlPlayback\","
1236 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1238 "\"returns\": \"string\""
1240 "\"Player.Repeat\": {"
1241 "\"type\": \"method\","
1242 "\"description\": \"Set the repeat mode of the player\","
1243 "\"transport\": \"Response\","
1244 "\"permission\": \"ControlPlayback\","
1246 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1247 "{ \"name\": \"state\", \"$ref\": \"Player.Repeat\", \"required\": true }"
1249 "\"returns\": \"string\""
1251 "\"Player.SetAudioStream\": {"
1252 "\"type\": \"method\","
1253 "\"description\": \"Set the audio stream played by the player\","
1254 "\"transport\": \"Response\","
1255 "\"permission\": \"ControlPlayback\","
1257 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1258 "{ \"name\": \"stream\", \"required\": true, \"type\": ["
1259 "{ \"type\": \"string\", \"enum\": [ \"previous\", \"next\" ] },"
1260 "{ \"type\": \"integer\", \"minimum\": 0, \"description\": \"Index of the audio stream to play\" }"
1264 "\"returns\": \"string\""
1266 "\"Player.SetSubtitle\": {"
1267 "\"type\": \"method\","
1268 "\"description\": \"Set the subtitle displayed by the player\","
1269 "\"transport\": \"Response\","
1270 "\"permission\": \"ControlPlayback\","
1272 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1273 "{ \"name\": \"subtitle\", \"required\": true, \"type\": ["
1274 "{ \"type\": \"string\", \"enum\": [ \"previous\", \"next\", \"off\", \"on\" ] },"
1275 "{ \"type\": \"integer\", \"minimum\": 0, \"description\": \"Index of the subtitle to display\" }"
1278 "{ \"name\": \"enable\", \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to enable subtitles to be displayed after setting the new subtitle\" }"
1280 "\"returns\": \"string\""
1282 "\"Playlist.GetPlaylists\": {"
1283 "\"type\": \"method\","
1284 "\"description\": \"Returns all existing playlists\","
1285 "\"transport\": \"Response\","
1286 "\"permission\": \"ReadData\","
1289 "\"type\": \"array\","
1290 "\"uniqueItems\": true,"
1292 "\"type\": \"object\","
1294 "\"playlistid\": { \"$ref\": \"Playlist.Id\", \"required\": true },"
1295 "\"type\": { \"$ref\": \"Playlist.Type\", \"required\": true }"
1300 "\"Playlist.GetProperties\": {"
1301 "\"type\": \"method\","
1302 "\"description\": \"Retrieves the values of the given properties\","
1303 "\"transport\": \"Response\","
1304 "\"permission\": \"ReadData\","
1306 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
1307 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"Playlist.Property.Name\" } }"
1309 "\"returns\": { \"$ref\": \"Playlist.Property.Value\", \"required\": true }"
1311 "\"Playlist.GetItems\": {"
1312 "\"type\": \"method\","
1313 "\"description\": \"Get all items from playlist\","
1314 "\"transport\": \"Response\","
1315 "\"permission\": \"ReadData\","
1317 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
1318 "{ \"name\": \"properties\", \"$ref\": \"List.Fields.All\" },"
1319 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1320 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1322 "\"returns\": { \"type\": \"object\","
1324 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1325 "\"items\": { \"type\": \"array\", \"items\": { \"$ref\": \"List.Item.All\" }, \"required\": true }"
1329 "\"Playlist.Add\": {"
1330 "\"type\": \"method\","
1331 "\"description\": \"Add item(s) to playlist\","
1332 "\"transport\": \"Response\","
1333 "\"permission\": \"ControlPlayback\","
1335 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
1336 "{ \"name\": \"item\", \"$ref\": \"Playlist.Item\", \"required\": true }"
1338 "\"returns\": \"string\""
1340 "\"Playlist.Insert\": {"
1341 "\"type\": \"method\","
1342 "\"description\": \"Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).\","
1343 "\"transport\": \"Response\","
1344 "\"permission\": \"ControlPlayback\","
1346 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
1347 "{ \"name\": \"position\", \"$ref\": \"Playlist.Position\", \"required\": true },"
1348 "{ \"name\": \"item\", \"$ref\": \"Playlist.Item\", \"required\": true }"
1350 "\"returns\": \"string\""
1352 "\"Playlist.Remove\": {"
1353 "\"type\": \"method\","
1354 "\"description\": \"Remove item from playlist. Does not work for picture playlists (aka slideshows).\","
1355 "\"transport\": \"Response\","
1356 "\"permission\": \"ControlPlayback\","
1358 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
1359 "{ \"name\": \"position\", \"$ref\": \"Playlist.Position\", \"required\": true }"
1361 "\"returns\": \"string\""
1363 "\"Playlist.Clear\": {"
1364 "\"type\": \"method\","
1365 "\"description\": \"Clear playlist\","
1366 "\"transport\": \"Response\","
1367 "\"permission\": \"ControlPlayback\","
1369 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true }"
1371 "\"returns\": \"string\""
1373 "\"Playlist.Swap\": {"
1374 "\"type\": \"method\","
1375 "\"description\": \"Swap items in the playlist. Does not work for picture playlists (aka slideshows).\","
1376 "\"transport\": \"Response\","
1377 "\"permission\": \"ControlPlayback\","
1379 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
1380 "{ \"name\": \"position1\", \"$ref\": \"Playlist.Position\", \"required\": true },"
1381 "{ \"name\": \"position2\", \"$ref\": \"Playlist.Position\", \"required\": true }"
1383 "\"returns\": \"string\""
1385 "\"Files.GetSources\": {"
1386 "\"type\": \"method\","
1387 "\"description\": \"Get the sources of the media windows\","
1388 "\"transport\": \"Response\","
1389 "\"permission\": \"ReadData\","
1391 "{ \"name\": \"media\", \"$ref\": \"Files.Media\", \"required\": true },"
1392 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1393 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1396 "\"type\": \"object\","
1398 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1399 "\"sources\": { \"$ref\": \"List.Items.Sources\", \"required\": true }"
1403 "\"Files.PrepareDownload\": {"
1404 "\"type\": \"method\","
1405 "\"description\": \"Provides a way to download a given file (e.g. providing an URL to the real file location)\","
1406 "\"transport\": [ \"Response\", \"FileDownloadRedirect\" ],"
1407 "\"permission\": \"ReadData\","
1409 "{ \"name\": \"path\", \"type\": \"string\", \"required\": true }"
1412 "\"type\": \"object\","
1414 "\"protocol\": { \"type\": \"string\", \"enum\": [ \"http\" ], \"required\": true },"
1415 "\"details\": { \"type\": \"any\", \"required\": true, \"description\": \"Transport specific details on how/from where to download the given file\" },"
1416 "\"mode\": { \"type\": \"string\", \"enum\": [ \"redirect\", \"direct\" ], \"required\": true, \"description\": \"Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol\" }"
1420 "\"Files.Download\": {"
1421 "\"type\": \"method\","
1422 "\"description\": \"Downloads the given file\","
1423 "\"transport\": [ \"Response\", \"FileDownloadDirect\" ],"
1424 "\"permission\": \"ReadData\","
1426 "{ \"name\": \"path\", \"type\": \"string\", \"required\": true }"
1428 "\"returns\": { \"type\": \"any\", \"required\": true }"
1430 "\"Files.GetDirectory\": {"
1431 "\"type\": \"method\","
1432 "\"description\": \"Get the directories and files in the given directory\","
1433 "\"transport\": \"Response\","
1434 "\"permission\": \"ReadData\","
1436 "{ \"name\": \"directory\", \"type\": \"string\", \"required\": true },"
1437 "{ \"name\": \"media\", \"$ref\": \"Files.Media\", \"default\": \"files\" },"
1438 "{ \"name\": \"properties\", \"$ref\": \"List.Fields.Files\" },"
1439 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1442 "\"type\": \"object\","
1444 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1445 "\"files\": { \"type\": \"array\", \"items\": { \"$ref\": \"List.Item.File\" }, \"required\": true }"
1449 "\"AudioLibrary.GetArtists\": {"
1450 "\"type\": \"method\","
1451 "\"description\": \"Retrieve all artists\","
1452 "\"transport\": \"Response\","
1453 "\"permission\": \"ReadData\","
1455 "{ \"name\": \"albumartistsonly\", \"$ref\": \"Optional.Boolean\", \"description\": \"Whether or not to include artists only appearing in compilations. If the parameter is not passed or is passed as null the GUI setting will be used\" },"
1456 "{ \"name\": \"genreid\", \"$ref\": \"Library.Id\" },"
1457 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Artist\" },"
1458 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1459 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1462 "\"type\": \"object\","
1464 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1465 "\"artists\": { \"type\": \"array\","
1466 "\"items\": { \"$ref\": \"Audio.Details.Artist\" }"
1471 "\"AudioLibrary.GetArtistDetails\": {"
1472 "\"type\": \"method\","
1473 "\"description\": \"Retrieve details about a specific artist\","
1474 "\"transport\": \"Response\","
1475 "\"permission\": \"ReadData\","
1477 "{ \"name\": \"artistid\", \"$ref\": \"Library.Id\", \"required\": true },"
1478 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Artist\" }"
1480 "\"returns\": { \"type\": \"object\","
1482 "\"artistdetails\": { \"$ref\": \"Audio.Details.Artist\" }"
1486 "\"AudioLibrary.GetAlbums\": {"
1487 "\"type\": \"method\","
1488 "\"description\": \"Retrieve all albums from specified artist or genre\","
1489 "\"transport\": \"Response\","
1490 "\"permission\": \"ReadData\","
1492 "{ \"name\": \"artistid\", \"$ref\": \"Library.Id\" },"
1493 "{ \"name\": \"genreid\", \"$ref\": \"Library.Id\" },"
1494 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" },"
1495 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1496 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1499 "\"type\": \"object\","
1501 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1502 "\"albums\": { \"type\": \"array\","
1503 "\"items\": { \"$ref\": \"Audio.Details.Album\" }"
1508 "\"AudioLibrary.GetAlbumDetails\": {"
1509 "\"type\": \"method\","
1510 "\"description\": \"Retrieve details about a specific album\","
1511 "\"transport\": \"Response\","
1512 "\"permission\": \"ReadData\","
1514 "{ \"name\": \"albumid\", \"$ref\": \"Library.Id\", \"required\": true },"
1515 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" }"
1517 "\"returns\": { \"type\": \"object\","
1519 "\"albumdetails\": { \"$ref\": \"Audio.Details.Album\" }"
1523 "\"AudioLibrary.GetSongs\": {"
1524 "\"type\": \"method\","
1525 "\"description\": \"Retrieve all songs from specified album, artist or genre\","
1526 "\"transport\": \"Response\","
1527 "\"permission\": \"ReadData\","
1529 "{ \"name\": \"artistid\", \"$ref\": \"Library.Id\" },"
1530 "{ \"name\": \"albumid\", \"$ref\": \"Library.Id\" },"
1531 "{ \"name\": \"genreid\", \"$ref\": \"Library.Id\" },"
1532 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" },"
1533 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1534 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1537 "\"type\": \"object\","
1539 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1540 "\"songs\": { \"type\": \"array\","
1541 "\"items\": { \"$ref\": \"Audio.Details.Song\" }"
1546 "\"AudioLibrary.GetSongDetails\": {"
1547 "\"type\": \"method\","
1548 "\"description\": \"Retrieve details about a specific song\","
1549 "\"transport\": \"Response\","
1550 "\"permission\": \"ReadData\","
1552 "{ \"name\": \"songid\", \"$ref\": \"Library.Id\", \"required\": true },"
1553 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" }"
1555 "\"returns\": { \"type\": \"object\","
1557 "\"songdetails\": { \"$ref\": \"Audio.Details.Song\" }"
1561 "\"AudioLibrary.GetRecentlyAddedAlbums\": {"
1562 "\"type\": \"method\","
1563 "\"description\": \"Retrieve recently added albums\","
1564 "\"transport\": \"Response\","
1565 "\"permission\": \"ReadData\","
1567 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" },"
1568 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1569 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1572 "\"type\": \"object\","
1574 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1575 "\"albums\": { \"type\": \"array\","
1576 "\"items\": { \"$ref\": \"Audio.Details.Album\" }"
1581 "\"AudioLibrary.GetRecentlyAddedSongs\": {"
1582 "\"type\": \"method\","
1583 "\"description\": \"Retrieve recently added songs\","
1584 "\"transport\": \"Response\","
1585 "\"permission\": \"ReadData\","
1587 "{ \"name\": \"albumlimit\", \"$ref\": \"List.Amount\", \"description\": \"The amount of recently added albums from which to return the songs\" },"
1588 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" },"
1589 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1590 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1593 "\"type\": \"object\","
1595 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1596 "\"songs\": { \"type\": \"array\","
1597 "\"items\": { \"$ref\": \"Audio.Details.Song\" }"
1602 "\"AudioLibrary.GetRecentlyPlayedAlbums\": {"
1603 "\"type\": \"method\","
1604 "\"description\": \"Retrieve recently played albums\","
1605 "\"transport\": \"Response\","
1606 "\"permission\": \"ReadData\","
1608 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" },"
1609 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1610 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1613 "\"type\": \"object\","
1615 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1616 "\"albums\": { \"type\": \"array\","
1617 "\"items\": { \"$ref\": \"Audio.Details.Album\" }"
1622 "\"AudioLibrary.GetRecentlyPlayedSongs\": {"
1623 "\"type\": \"method\","
1624 "\"description\": \"Retrieve recently played songs\","
1625 "\"transport\": \"Response\","
1626 "\"permission\": \"ReadData\","
1628 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" },"
1629 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1630 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1633 "\"type\": \"object\","
1635 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1636 "\"songs\": { \"type\": \"array\","
1637 "\"items\": { \"$ref\": \"Audio.Details.Song\" }"
1642 "\"AudioLibrary.GetGenres\": {"
1643 "\"type\": \"method\","
1644 "\"description\": \"Retrieve all genres\","
1645 "\"transport\": \"Response\","
1646 "\"permission\": \"ReadData\","
1648 "{ \"name\": \"properties\", \"$ref\": \"Library.Fields.Genre\" },"
1649 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1650 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1653 "\"type\": \"object\","
1655 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1656 "\"genres\": { \"type\": \"array\", \"required\": true,"
1657 "\"items\": { \"$ref\": \"Library.Details.Genre\" }"
1662 "\"AudioLibrary.SetArtistDetails\": {"
1663 "\"type\": \"method\","
1664 "\"description\": \"Update the given artist with the given details\","
1665 "\"transport\": \"Response\","
1666 "\"permission\": \"UpdateData\","
1668 "{ \"name\": \"artistid\", \"$ref\": \"Library.Id\", \"required\": true },"
1669 "{ \"name\": \"artist\", \"$ref\": \"Optional.String\" },"
1670 "{ \"name\": \"instrument\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1671 "{ \"name\": \"style\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1672 "{ \"name\": \"mood\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1673 "{ \"name\": \"born\", \"$ref\": \"Optional.String\" },"
1674 "{ \"name\": \"formed\", \"$ref\": \"Optional.String\" },"
1675 "{ \"name\": \"description\", \"$ref\": \"Optional.String\" },"
1676 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1677 "{ \"name\": \"died\", \"$ref\": \"Optional.String\" },"
1678 "{ \"name\": \"disbanded\", \"$ref\": \"Optional.String\" },"
1679 "{ \"name\": \"yearsactive\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null }"
1681 "\"returns\": \"string\""
1683 "\"AudioLibrary.SetAlbumDetails\": {"
1684 "\"type\": \"method\","
1685 "\"description\": \"Update the given album with the given details\","
1686 "\"transport\": \"Response\","
1687 "\"permission\": \"UpdateData\","
1689 "{ \"name\": \"albumid\", \"$ref\": \"Library.Id\", \"required\": true },"
1690 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
1691 "{ \"name\": \"artist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1692 "{ \"name\": \"description\", \"$ref\": \"Optional.String\" },"
1693 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1694 "{ \"name\": \"theme\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1695 "{ \"name\": \"mood\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1696 "{ \"name\": \"style\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1697 "{ \"name\": \"type\", \"$ref\": \"Optional.String\" },"
1698 "{ \"name\": \"albumlabel\", \"$ref\": \"Optional.String\" },"
1699 "{ \"name\": \"rating\", \"$ref\": \"Optional.Integer\" },"
1700 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" }"
1702 "\"returns\": \"string\""
1704 "\"AudioLibrary.SetSongDetails\": {"
1705 "\"type\": \"method\","
1706 "\"description\": \"Update the given song with the given details\","
1707 "\"transport\": \"Response\","
1708 "\"permission\": \"UpdateData\","
1710 "{ \"name\": \"songid\", \"$ref\": \"Library.Id\", \"required\": true },"
1711 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
1712 "{ \"name\": \"artist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1713 "{ \"name\": \"albumartist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1714 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
1715 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" },"
1716 "{ \"name\": \"rating\", \"$ref\": \"Optional.Integer\" },"
1717 "{ \"name\": \"album\", \"$ref\": \"Optional.String\" },"
1718 "{ \"name\": \"track\", \"$ref\": \"Optional.Integer\" },"
1719 "{ \"name\": \"disc\", \"$ref\": \"Optional.Integer\" },"
1720 "{ \"name\": \"duration\", \"$ref\": \"Optional.Integer\" },"
1721 "{ \"name\": \"comment\", \"$ref\": \"Optional.String\" },"
1722 "{ \"name\": \"musicbrainztrackid\", \"$ref\": \"Optional.String\" },"
1723 "{ \"name\": \"musicbrainzartistid\", \"$ref\": \"Optional.String\" },"
1724 "{ \"name\": \"musicbrainzalbumid\", \"$ref\": \"Optional.String\" },"
1725 "{ \"name\": \"musicbrainzalbumartistid\", \"$ref\": \"Optional.String\" }"
1727 "\"returns\": \"string\""
1729 "\"AudioLibrary.Scan\": {"
1730 "\"type\": \"method\","
1731 "\"description\": \"Scans the audio sources for new library items\","
1732 "\"transport\": \"Response\","
1733 "\"permission\": \"UpdateData\","
1735 "{ \"name\": \"directory\", \"type\": \"string\", \"default\": \"\" }"
1737 "\"returns\": \"string\""
1739 "\"AudioLibrary.Export\": {"
1740 "\"type\": \"method\","
1741 "\"description\": \"Exports all items from the audio library\","
1742 "\"transport\": \"Response\","
1743 "\"permission\": \"WriteFile\","
1745 "{ \"name\": \"options\", \"type\": ["
1746 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
1748 "\"path\": { \"type\": \"string\", \"required\": true, \"minLength\": 1, \"description\": \"Path to the directory to where the data should be exported\" }"
1751 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
1753 "\"overwrite\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to overwrite existing exported files\" },"
1754 "\"images\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to export thumbnails and fanart images\" }"
1760 "\"returns\": \"string\""
1762 "\"AudioLibrary.Clean\": {"
1763 "\"type\": \"method\","
1764 "\"description\": \"Cleans the audio library from non-existent items\","
1765 "\"transport\": \"Response\","
1766 "\"permission\": \"RemoveData\","
1768 "\"returns\": \"string\""
1770 "\"VideoLibrary.GetMovies\": {"
1771 "\"type\": \"method\","
1772 "\"description\": \"Retrieve all movies\","
1773 "\"transport\": \"Response\","
1774 "\"permission\": \"ReadData\","
1776 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Movie\" },"
1777 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1778 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1781 "\"type\": \"object\","
1783 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1784 "\"movies\": { \"type\": \"array\","
1785 "\"items\": { \"$ref\": \"Video.Details.Movie\" }"
1790 "\"VideoLibrary.GetMovieDetails\": {"
1791 "\"type\": \"method\","
1792 "\"description\": \"Retrieve details about a specific movie\","
1793 "\"transport\": \"Response\","
1794 "\"permission\": \"ReadData\","
1796 "{ \"name\": \"movieid\", \"$ref\": \"Library.Id\", \"required\": true },"
1797 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Movie\" }"
1799 "\"returns\": { \"type\": \"object\","
1801 "\"moviedetails\": { \"$ref\": \"Video.Details.Movie\" }"
1805 "\"VideoLibrary.GetMovieSets\": {"
1806 "\"type\": \"method\","
1807 "\"description\": \"Retrieve all movie sets\","
1808 "\"transport\": \"Response\","
1809 "\"permission\": \"ReadData\","
1811 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MovieSet\" },"
1812 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1813 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1815 "\"returns\": { \"type\": \"object\","
1817 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1818 "\"sets\": { \"type\": \"array\","
1819 "\"items\": { \"$ref\": \"Video.Details.MovieSet\" }"
1824 "\"VideoLibrary.GetMovieSetDetails\": {"
1825 "\"type\": \"method\","
1826 "\"description\": \"Retrieve details about a specific movie set\","
1827 "\"transport\": \"Response\","
1828 "\"permission\": \"ReadData\","
1830 "{ \"name\": \"setid\", \"$ref\": \"Library.Id\", \"required\": true },"
1831 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MovieSet\" },"
1832 "{ \"name\": \"movies\", \"type\": \"object\","
1834 "\"properties\": { \"$ref\": \"Video.Fields.Movie\" },"
1835 "\"limits\": { \"$ref\": \"List.Limits\" },"
1836 "\"sort\": { \"$ref\": \"List.Sort\" }"
1840 "\"returns\": { \"type\": \"object\","
1842 "\"setdetails\": { \"$ref\": \"Video.Details.MovieSet.Extended\" }"
1846 "\"VideoLibrary.GetTVShows\": {"
1847 "\"type\": \"method\","
1848 "\"description\": \"Retrieve all tv shows\","
1849 "\"transport\": \"Response\","
1850 "\"permission\": \"ReadData\","
1852 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.TVShow\" },"
1853 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1854 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1856 "\"returns\": { \"type\": \"object\","
1858 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1859 "\"tvshows\": { \"type\": \"array\","
1860 "\"items\": { \"$ref\": \"Video.Details.TVShow\" }"
1865 "\"VideoLibrary.GetTVShowDetails\": {"
1866 "\"type\": \"method\","
1867 "\"description\": \"Retrieve details about a specific tv show\","
1868 "\"transport\": \"Response\","
1869 "\"permission\": \"ReadData\","
1871 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true },"
1872 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.TVShow\" }"
1874 "\"returns\": { \"type\": \"object\","
1876 "\"tvshowdetails\": { \"$ref\": \"Video.Details.TVShow\" }"
1880 "\"VideoLibrary.GetSeasons\": {"
1881 "\"type\": \"method\","
1882 "\"description\": \"Retrieve all tv seasons\","
1883 "\"transport\": \"Response\","
1884 "\"permission\": \"ReadData\","
1886 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true },"
1887 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Season\" },"
1888 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1889 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1891 "\"returns\": { \"type\": \"object\","
1893 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1894 "\"seasons\": { \"type\": \"array\","
1895 "\"items\": { \"$ref\": \"Video.Details.Season\" }"
1900 "\"VideoLibrary.GetEpisodes\": {"
1901 "\"type\": \"method\","
1902 "\"description\": \"Retrieve all tv show episodes\","
1903 "\"transport\": \"Response\","
1904 "\"permission\": \"ReadData\","
1906 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\" },"
1907 "{ \"name\": \"season\", \"type\": \"integer\", \"minimum\": 0, \"default\": -1 },"
1908 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Episode\" },"
1909 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1910 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1912 "\"returns\": { \"type\": \"object\","
1914 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1915 "\"episodes\": { \"type\": \"array\","
1916 "\"items\": { \"$ref\": \"Video.Details.Episode\" }"
1921 "\"VideoLibrary.GetEpisodeDetails\": {"
1922 "\"type\": \"method\","
1923 "\"description\": \"Retrieve details about a specific tv show episode\","
1924 "\"transport\": \"Response\","
1925 "\"permission\": \"ReadData\","
1927 "{ \"name\": \"episodeid\", \"$ref\": \"Library.Id\", \"required\": true },"
1928 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Episode\" }"
1930 "\"returns\": { \"type\": \"object\","
1932 "\"episodedetails\": { \"$ref\": \"Video.Details.Episode\" }"
1936 "\"VideoLibrary.GetMusicVideos\": {"
1937 "\"type\": \"method\","
1938 "\"description\": \"Retrieve all music videos\","
1939 "\"transport\": \"Response\","
1940 "\"permission\": \"ReadData\","
1942 "{ \"name\": \"artistid\", \"$ref\": \"Library.Id\" },"
1943 "{ \"name\": \"albumid\", \"$ref\": \"Library.Id\" },"
1944 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MusicVideo\" },"
1945 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1946 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1948 "\"returns\": { \"type\": \"object\","
1950 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1951 "\"musicvideos\": { \"type\": \"array\","
1952 "\"items\": { \"$ref\": \"Video.Details.MusicVideo\" }"
1957 "\"VideoLibrary.GetMusicVideoDetails\": {"
1958 "\"type\": \"method\","
1959 "\"description\": \"Retrieve details about a specific music video\","
1960 "\"transport\": \"Response\","
1961 "\"permission\": \"ReadData\","
1963 "{ \"name\": \"musicvideoid\", \"$ref\": \"Library.Id\", \"required\": true },"
1964 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MusicVideo\" }"
1966 "\"returns\": { \"type\": \"object\","
1968 "\"musicvideodetails\": { \"$ref\": \"Video.Details.MusicVideo\" }"
1972 "\"VideoLibrary.GetRecentlyAddedMovies\": {"
1973 "\"type\": \"method\","
1974 "\"description\": \"Retrieve all recently added movies\","
1975 "\"transport\": \"Response\","
1976 "\"permission\": \"ReadData\","
1978 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Movie\" },"
1979 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1980 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
1982 "\"returns\": { \"type\": \"object\","
1984 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
1985 "\"movies\": { \"type\": \"array\","
1986 "\"items\": { \"$ref\": \"Video.Details.Movie\" }"
1991 "\"VideoLibrary.GetRecentlyAddedEpisodes\": {"
1992 "\"type\": \"method\","
1993 "\"description\": \"Retrieve all recently added tv episodes\","
1994 "\"transport\": \"Response\","
1995 "\"permission\": \"ReadData\","
1997 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Episode\" },"
1998 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
1999 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2001 "\"returns\": { \"type\": \"object\","
2003 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2004 "\"episodes\": { \"type\": \"array\","
2005 "\"items\": { \"$ref\": \"Video.Details.Episode\" }"
2010 "\"VideoLibrary.GetRecentlyAddedMusicVideos\": {"
2011 "\"type\": \"method\","
2012 "\"description\": \"Retrieve all recently added music videos\","
2013 "\"transport\": \"Response\","
2014 "\"permission\": \"ReadData\","
2016 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MusicVideo\" },"
2017 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2018 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2020 "\"returns\": { \"type\": \"object\","
2022 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2023 "\"musicvideos\": { \"type\": \"array\","
2024 "\"items\": { \"$ref\": \"Video.Details.MusicVideo\" }"
2029 "\"VideoLibrary.GetGenres\": {"
2030 "\"type\": \"method\","
2031 "\"description\": \"Retrieve all genres\","
2032 "\"transport\": \"Response\","
2033 "\"permission\": \"ReadData\","
2035 "{ \"name\": \"type\", \"type\": \"string\", \"required\": true, \"enum\": [ \"movie\", \"tvshow\", \"musicvideo\"] },"
2036 "{ \"name\": \"properties\", \"$ref\": \"Library.Fields.Genre\" },"
2037 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2038 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2041 "\"type\": \"object\","
2043 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2044 "\"genres\": { \"type\": \"array\", \"required\": true,"
2045 "\"items\": { \"$ref\": \"Library.Details.Genre\" }"
2050 "\"VideoLibrary.SetMovieDetails\": {"
2051 "\"type\": \"method\","
2052 "\"description\": \"Update the given movie with the given details\","
2053 "\"transport\": \"Response\","
2054 "\"permission\": \"UpdateData\","
2056 "{ \"name\": \"movieid\", \"$ref\": \"Library.Id\", \"required\": true },"
2057 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
2058 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
2059 "{ \"name\": \"runtime\", \"$ref\": \"Optional.String\" },"
2060 "{ \"name\": \"director\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2061 "{ \"name\": \"studio\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2062 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" },"
2063 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
2064 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2065 "{ \"name\": \"rating\", \"$ref\": \"Optional.Number\" },"
2066 "{ \"name\": \"mpaa\", \"$ref\": \"Optional.String\" },"
2067 "{ \"name\": \"imdbnumber\", \"$ref\": \"Optional.String\" },"
2068 "{ \"name\": \"votes\", \"$ref\": \"Optional.String\" },"
2069 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
2070 "{ \"name\": \"originaltitle\", \"$ref\": \"Optional.String\" },"
2071 "{ \"name\": \"trailer\", \"$ref\": \"Optional.String\" },"
2072 "{ \"name\": \"tagline\", \"$ref\": \"Optional.String\" },"
2073 "{ \"name\": \"plotoutline\", \"$ref\": \"Optional.String\" },"
2074 "{ \"name\": \"writer\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2075 "{ \"name\": \"country\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2076 "{ \"name\": \"top250\", \"$ref\": \"Optional.Integer\" },"
2077 "{ \"name\": \"sorttitle\", \"$ref\": \"Optional.String\" },"
2078 "{ \"name\": \"set\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2079 "{ \"name\": \"showlink\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2080 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
2081 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" }"
2083 "\"returns\": \"string\""
2085 "\"VideoLibrary.SetTVShowDetails\": {"
2086 "\"type\": \"method\","
2087 "\"description\": \"Update the given tvshow with the given details\","
2088 "\"transport\": \"Response\","
2089 "\"permission\": \"UpdateData\","
2091 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true },"
2092 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
2093 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
2094 "{ \"name\": \"studio\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2095 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" },"
2096 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
2097 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2098 "{ \"name\": \"rating\", \"$ref\": \"Optional.Number\" },"
2099 "{ \"name\": \"mpaa\", \"$ref\": \"Optional.String\" },"
2100 "{ \"name\": \"imdbnumber\", \"$ref\": \"Optional.String\" },"
2101 "{ \"name\": \"premiered\", \"$ref\": \"Optional.String\" },"
2102 "{ \"name\": \"votes\", \"$ref\": \"Optional.String\" },"
2103 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
2104 "{ \"name\": \"originaltitle\", \"$ref\": \"Optional.String\" },"
2105 "{ \"name\": \"sorttitle\", \"$ref\": \"Optional.String\" },"
2106 "{ \"name\": \"episodeguide\", \"$ref\": \"Optional.String\" },"
2107 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
2108 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" }"
2110 "\"returns\": \"string\""
2112 "\"VideoLibrary.SetEpisodeDetails\": {"
2113 "\"type\": \"method\","
2114 "\"description\": \"Update the given episode with the given details\","
2115 "\"transport\": \"Response\","
2116 "\"permission\": \"UpdateData\","
2118 "{ \"name\": \"episodeid\", \"$ref\": \"Library.Id\", \"required\": true },"
2119 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
2120 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
2121 "{ \"name\": \"runtime\", \"$ref\": \"Optional.String\" },"
2122 "{ \"name\": \"director\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2123 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
2124 "{ \"name\": \"rating\", \"$ref\": \"Optional.Number\" },"
2125 "{ \"name\": \"votes\", \"$ref\": \"Optional.String\" },"
2126 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
2127 "{ \"name\": \"writer\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2128 "{ \"name\": \"firstaired\", \"$ref\": \"Optional.String\" },"
2129 "{ \"name\": \"productioncode\", \"$ref\": \"Optional.String\" },"
2130 "{ \"name\": \"season\", \"$ref\": \"Optional.Integer\" },"
2131 "{ \"name\": \"episode\", \"$ref\": \"Optional.Integer\" },"
2132 "{ \"name\": \"originaltitle\", \"$ref\": \"Optional.String\" },"
2133 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
2134 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" }"
2136 "\"returns\": \"string\""
2138 "\"VideoLibrary.SetMusicVideoDetails\": {"
2139 "\"type\": \"method\","
2140 "\"description\": \"Update the given music video with the given details\","
2141 "\"transport\": \"Response\","
2142 "\"permission\": \"UpdateData\","
2144 "{ \"name\": \"musicvideoid\", \"$ref\": \"Library.Id\", \"required\": true },"
2145 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
2146 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
2147 "{ \"name\": \"runtime\", \"$ref\": \"Optional.String\" },"
2148 "{ \"name\": \"director\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2149 "{ \"name\": \"studio\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2150 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" },"
2151 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
2152 "{ \"name\": \"album\", \"$ref\": \"Optional.String\" },"
2153 "{ \"name\": \"artist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ] },"
2154 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2155 "{ \"name\": \"track\", \"$ref\": \"Optional.Integer\" },"
2156 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
2157 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
2158 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" }"
2160 "\"returns\": \"string\""
2162 "\"VideoLibrary.RemoveMovie\": {"
2163 "\"type\": \"method\","
2164 "\"description\": \"Removes the given movie from the library\","
2165 "\"transport\": \"Response\","
2166 "\"permission\": \"RemoveData\","
2168 "{ \"name\": \"movieid\", \"$ref\": \"Library.Id\", \"required\": true }"
2170 "\"returns\": \"string\""
2172 "\"VideoLibrary.RemoveTVShow\": {"
2173 "\"type\": \"method\","
2174 "\"description\": \"Removes the given tv show from the library\","
2175 "\"transport\": \"Response\","
2176 "\"permission\": \"RemoveData\","
2178 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true }"
2180 "\"returns\": \"string\""
2182 "\"VideoLibrary.RemoveEpisode\": {"
2183 "\"type\": \"method\","
2184 "\"description\": \"Removes the given episode from the library\","
2185 "\"transport\": \"Response\","
2186 "\"permission\": \"RemoveData\","
2188 "{ \"name\": \"episodeid\", \"$ref\": \"Library.Id\", \"required\": true }"
2190 "\"returns\": \"string\""
2192 "\"VideoLibrary.RemoveMusicVideo\": {"
2193 "\"type\": \"method\","
2194 "\"description\": \"Removes the given music video from the library\","
2195 "\"transport\": \"Response\","
2196 "\"permission\": \"RemoveData\","
2198 "{ \"name\": \"musicvideoid\", \"$ref\": \"Library.Id\", \"required\": true }"
2200 "\"returns\": \"string\""
2202 "\"VideoLibrary.Scan\": {"
2203 "\"type\": \"method\","
2204 "\"description\": \"Scans the video sources for new library items\","
2205 "\"transport\": \"Response\","
2206 "\"permission\": \"UpdateData\","
2208 "{ \"name\": \"directory\", \"type\": \"string\", \"default\": \"\" }"
2210 "\"returns\": \"string\""
2212 "\"VideoLibrary.Export\": {"
2213 "\"type\": \"method\","
2214 "\"description\": \"Exports all items from the video library\","
2215 "\"transport\": \"Response\","
2216 "\"permission\": \"WriteFile\","
2218 "{ \"name\": \"options\", \"type\": ["
2219 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
2221 "\"path\": { \"type\": \"string\", \"required\": true, \"minLength\": 1, \"description\": \"Path to the directory to where the data should be exported\" }"
2224 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
2226 "\"overwrite\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to overwrite existing exported files\" },"
2227 "\"images\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to export thumbnails and fanart images\" },"
2228 "\"actorthumbs\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to export actor thumbnails\" }"
2234 "\"returns\": \"string\""
2236 "\"VideoLibrary.Clean\": {"
2237 "\"type\": \"method\","
2238 "\"description\": \"Cleans the video library from non-existent items\","
2239 "\"transport\": \"Response\","
2240 "\"permission\": \"RemoveData\","
2242 "\"returns\": \"string\""
2244 "\"GUI.ShowNotification\": {"
2245 "\"type\": \"method\","
2246 "\"description\": \"Shows a GUI notification\","
2247 "\"transport\": \"Response\","
2248 "\"permission\": \"ControlGUI\","
2250 "{ \"name\": \"title\", \"type\": \"string\", \"required\": true },"
2251 "{ \"name\": \"message\", \"type\": \"string\", \"required\": true },"
2252 "{ \"name\": \"image\", \"type\": ["
2253 "{ \"type\": \"string\", \"required\": true, \"enum\": [ \"info\", \"warning\", \"error\" ] },"
2254 "{ \"type\": \"string\", \"required\": true }"
2255 "], \"default\": \"\""
2257 "{ \"name\": \"displaytime\", \"type\": \"integer\", \"minimum\": 1500, \"default\": 5000, \"description\": \"The time in milliseconds the notification will be visible\" }"
2259 "\"returns\": { \"$ref\": \"System.Property.Value\", \"required\": true }"
2261 "\"GUI.GetProperties\": {"
2262 "\"type\": \"method\","
2263 "\"description\": \"Retrieves the values of the given properties\","
2264 "\"transport\": \"Response\","
2265 "\"permission\": \"ReadData\","
2267 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"GUI.Property.Name\" } }"
2269 "\"returns\": { \"$ref\": \"GUI.Property.Value\", \"required\": true }"
2271 "\"GUI.SetFullscreen\": {"
2272 "\"type\": \"method\","
2273 "\"description\": \"Toggle fullscreen/GUI\","
2274 "\"transport\": \"Response\","
2275 "\"permission\": \"ControlGUI\","
2277 "{ \"name\": \"fullscreen\", \"required\": true, \"$ref\": \"Global.Toggle\" }"
2279 "\"returns\": { \"type\": \"boolean\", \"description\": \"Fullscreen state\" }"
2281 "\"System.GetProperties\": {"
2282 "\"type\": \"method\","
2283 "\"description\": \"Retrieves the values of the given properties\","
2284 "\"transport\": \"Response\","
2285 "\"permission\": \"ReadData\","
2287 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"System.Property.Name\" } }"
2289 "\"returns\": { \"$ref\": \"System.Property.Value\", \"required\": true }"
2291 "\"System.EjectOpticalDrive\": {"
2292 "\"type\": \"method\","
2293 "\"description\": \"Ejects or closes the optical disc drive (if available)\","
2294 "\"transport\": \"Response\","
2295 "\"permission\": \"ControlSystem\","
2297 "\"returns\": \"string\""
2299 "\"System.Shutdown\": {"
2300 "\"type\": \"method\","
2301 "\"description\": \"Shuts the system running XBMC down\","
2302 "\"transport\": \"Response\","
2303 "\"permission\": \"ControlPower\","
2305 "\"returns\": \"string\""
2307 "\"System.Suspend\": {"
2308 "\"type\": \"method\","
2309 "\"description\": \"Suspends the system running XBMC\","
2310 "\"transport\": \"Response\","
2311 "\"permission\": \"ControlPower\","
2313 "\"returns\": \"string\""
2315 "\"System.Hibernate\": {"
2316 "\"type\": \"method\","
2317 "\"description\": \"Puts the system running XBMC into hibernate mode\","
2318 "\"transport\": \"Response\","
2319 "\"permission\": \"ControlPower\","
2321 "\"returns\": \"string\""
2323 "\"System.Reboot\": {"
2324 "\"type\": \"method\","
2325 "\"description\": \"Reboots the system running XBMC\","
2326 "\"transport\": \"Response\","
2327 "\"permission\": \"ControlPower\","
2329 "\"returns\": \"string\""
2331 "\"Input.SendText\": {"
2332 "\"type\": \"method\","
2333 "\"description\": \"Send a generic (unicode) text\","
2334 "\"transport\": \"Response\","
2335 "\"permission\": \"Navigate\","
2337 "{ \"name\": \"text\", \"type\": \"string\", \"minLength\": 1, \"required\": true, \"description\": \"Unicode text\" },"
2338 "{ \"name\": \"done\", \"type\": \"boolean\", \"default\": true, \"description\": \"Whether this is the whole input or not (closes an open input dialog if true).\" }"
2340 "\"returns\": \"string\""
2342 "\"Input.ExecuteAction\": {"
2343 "\"type\": \"method\","
2344 "\"description\": \"Execute a specific action\","
2345 "\"transport\": \"Response\","
2346 "\"permission\": \"Navigate\","
2348 "{ \"name\": \"action\", \"$ref\": \"Input.Action\", \"required\": true }"
2350 "\"returns\": \"string\""
2353 "\"type\": \"method\","
2354 "\"description\": \"Navigate left in GUI\","
2355 "\"transport\": \"Response\","
2356 "\"permission\": \"Navigate\","
2358 "\"returns\": \"string\""
2360 "\"Input.Right\": {"
2361 "\"type\": \"method\","
2362 "\"description\": \"Navigate right in GUI\","
2363 "\"transport\": \"Response\","
2364 "\"permission\": \"Navigate\","
2366 "\"returns\": \"string\""
2369 "\"type\": \"method\","
2370 "\"description\": \"Navigate down in GUI\","
2371 "\"transport\": \"Response\","
2372 "\"permission\": \"Navigate\","
2374 "\"returns\": \"string\""
2377 "\"type\": \"method\","
2378 "\"description\": \"Navigate up in GUI\","
2379 "\"transport\": \"Response\","
2380 "\"permission\": \"Navigate\","
2382 "\"returns\": \"string\""
2384 "\"Input.Select\": {"
2385 "\"type\": \"method\","
2386 "\"description\": \"Select current item in GUI\","
2387 "\"transport\": \"Response\","
2388 "\"permission\": \"Navigate\","
2390 "\"returns\": \"string\""
2393 "\"type\": \"method\","
2394 "\"description\": \"Goes back in GUI\","
2395 "\"transport\": \"Response\","
2396 "\"permission\": \"Navigate\","
2398 "\"returns\": \"string\""
2400 "\"Input.ContextMenu\": {"
2401 "\"type\": \"method\","
2402 "\"description\": \"Shows the context menu\","
2403 "\"transport\": \"Response\","
2404 "\"permission\": \"Navigate\","
2406 "\"returns\": \"string\""
2409 "\"type\": \"method\","
2410 "\"description\": \"Shows the information dialog\","
2411 "\"transport\": \"Response\","
2412 "\"permission\": \"Navigate\","
2414 "\"returns\": \"string\""
2417 "\"type\": \"method\","
2418 "\"description\": \"Goes to home window in GUI\","
2419 "\"transport\": \"Response\","
2420 "\"permission\": \"Navigate\","
2422 "\"returns\": \"string\""
2424 "\"Input.ShowCodec\": {"
2425 "\"type\": \"method\","
2426 "\"description\": \"Show codec information of the playing item\","
2427 "\"transport\": \"Response\","
2428 "\"permission\": \"Navigate\","
2430 "\"returns\": \"string\""
2432 "\"Input.ShowOSD\": {"
2433 "\"type\": \"method\","
2434 "\"description\": \"Show the on-screen display for the current player\","
2435 "\"transport\": \"Response\","
2436 "\"permission\": \"Navigate\","
2438 "\"returns\": \"string\""
2440 "\"Application.GetProperties\": {"
2441 "\"type\": \"method\","
2442 "\"description\": \"Retrieves the values of the given properties\","
2443 "\"transport\": \"Response\","
2444 "\"permission\": \"ReadData\","
2446 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"Application.Property.Name\" } }"
2448 "\"returns\": { \"$ref\": \"Application.Property.Value\", \"required\": true }"
2450 "\"Application.SetVolume\": {"
2451 "\"type\": \"method\","
2452 "\"description\": \"Set the current volume\","
2453 "\"transport\": \"Response\","
2454 "\"permission\": \"ControlPlayback\","
2456 "{ \"name\": \"volume\", \"type\": ["
2457 "{ \"type\": \"integer\", \"minimum\": 0, \"maximum\": 100, \"required\": true },"
2458 "{ \"$ref\": \"Global.IncrementDecrement\", \"required\": true }"
2460 "\"required\": true"
2463 "\"returns\": \"integer\""
2465 "\"Application.SetMute\": {"
2466 "\"type\": \"method\","
2467 "\"description\": \"Toggle mute/unmute\","
2468 "\"transport\": \"Response\","
2469 "\"permission\": \"ControlPlayback\","
2471 "{ \"name\": \"mute\", \"required\": true, \"$ref\": \"Global.Toggle\" }"
2473 "\"returns\": { \"type\": \"boolean\", \"description\": \"Mute state\" }"
2475 "\"Application.Quit\": {"
2476 "\"type\": \"method\","
2477 "\"description\": \"Quit application\","
2478 "\"transport\": \"Response\","
2479 "\"permission\": \"ControlPower\","
2481 "\"returns\": \"string\""
2483 "\"XBMC.GetInfoLabels\": {"
2484 "\"type\": \"method\","
2485 "\"description\": \"Retrieve info labels about XBMC and the system\","
2486 "\"transport\": \"Response\","
2487 "\"permission\": \"ReadData\","
2489 "{ \"name\": \"labels\", \"type\": \"array\", \"required\": true, \"items\": { \"type\": \"string\" }, \"minItems\": 1, \"description\": \"See http://wiki.xbmc.org/index.php?title=InfoLabels for a list of possible info labels\" }"
2492 "\"type\": \"object\","
2493 "\"description\": \"List of key-value pairs of the retrieved info labels\""
2496 "\"XBMC.GetInfoBooleans\": {"
2497 "\"type\": \"method\","
2498 "\"description\": \"Retrieve info booleans about XBMC and the system\","
2499 "\"transport\": \"Response\","
2500 "\"permission\": \"ReadData\","
2502 "{ \"name\": \"booleans\", \"type\": \"array\", \"required\": true, \"items\": { \"type\": \"string\" }, \"minItems\": 1 }"
2505 "\"type\": \"object\","
2506 "\"description\": \"List of key-value pairs of the retrieved info booleans\""
2511 const char* const JSONRPC_SERVICE_NOTIFICATIONS[] = {
2512 "\"Player.OnPlay\": {"
2513 "\"type\": \"notification\","
2514 "\"description\": \"Playback of a media item has been started or the playback speed has changed. If there is no ID available extra information will be provided.\","
2516 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2517 "{ \"name\": \"data\", \"$ref\": \"Player.Notifications.Data\", \"required\": true }"
2521 "\"Player.OnPause\": {"
2522 "\"type\": \"notification\","
2523 "\"description\": \"Playback of a media item has been paused. If there is no ID available extra information will be provided.\","
2525 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2526 "{ \"name\": \"data\", \"$ref\": \"Player.Notifications.Data\", \"required\": true }"
2530 "\"Player.OnStop\": {"
2531 "\"type\": \"notification\","
2532 "\"description\": \"Playback of a media item has been stopped. If there is no ID available extra information will be provided.\","
2534 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2535 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true, "
2537 "\"item\": { \"$ref\": \"Player.Notifications.Item\" },"
2538 "\"end\": { \"type\": \"boolean\", \"required\": true, \"description\": \"Whether the player has reached the end of the playable item(s) or not\" }"
2544 "\"Player.OnSpeedChanged\": {"
2545 "\"type\": \"notification\","
2546 "\"description\": \"Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.\","
2548 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2549 "{ \"name\": \"data\", \"$ref\": \"Player.Notifications.Data\", \"required\": true }"
2553 "\"Player.OnSeek\": {"
2554 "\"type\": \"notification\","
2555 "\"description\": \"The playback position has been changed. If there is no ID available extra information will be provided.\","
2557 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2558 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true, "
2560 "\"item\": { \"$ref\": \"Player.Notifications.Item\" },"
2561 "\"player\": { \"$ref\": \"Player.Notifications.Player.Seek\", \"required\": true }"
2567 "\"AudioLibrary.OnUpdate\": {"
2568 "\"type\": \"notification\","
2569 "\"description\": \"An audio item has been updated.\","
2571 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2572 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
2574 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
2575 "\"type\": { \"type\": \"string\", \"id\": \"Notifications.Library.Audio.Type\", \"enum\": [ \"song\" ], \"required\": true }"
2581 "\"AudioLibrary.OnRemove\": {"
2582 "\"type\": \"notification\","
2583 "\"description\": \"An audio item has been removed.\","
2585 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2586 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
2588 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
2589 "\"type\": { \"$ref\": \"Notifications.Library.Audio.Type\", \"required\": true }"
2595 "\"AudioLibrary.OnScanFinished\": {"
2596 "\"type\": \"notification\","
2597 "\"description\": \"Scanning the audio library has been finished.\","
2599 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2600 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
2604 "\"VideoLibrary.OnUpdate\": {"
2605 "\"type\": \"notification\","
2606 "\"description\": \"A video item has been updated.\","
2608 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2609 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
2611 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
2612 "\"type\": { \"type\": \"string\", \"id\": \"Notifications.Library.Video.Type\", \"enum\": [ \"movie\", \"tvshow\", \"episode\", \"musicvideo\" ], \"required\": true },"
2613 "\"playcount\": { \"type\": \"integer\", \"minimum\": 0, \"default\": -1 }"
2619 "\"VideoLibrary.OnRemove\": {"
2620 "\"type\": \"notification\","
2621 "\"description\": \"A video item has been removed.\","
2623 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2624 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
2626 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
2627 "\"type\": { \"$ref\": \"Notifications.Library.Video.Type\", \"required\": true }"
2633 "\"VideoLibrary.OnScanFinished\": {"
2634 "\"type\": \"notification\","
2635 "\"description\": \"Scanning the video library has been finished.\","
2637 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2638 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
2642 "\"System.OnQuit\": {"
2643 "\"type\": \"notification\","
2644 "\"description\": \"XBMC will be closed.\","
2646 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2647 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
2651 "\"System.OnRestart\": {"
2652 "\"type\": \"notification\","
2653 "\"description\": \"The system will be restarted.\","
2655 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2656 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
2660 "\"System.OnSleep\": {"
2661 "\"type\": \"notification\","
2662 "\"description\": \"The system will be suspended.\","
2664 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2665 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
2669 "\"System.OnWake\": {"
2670 "\"type\": \"notification\","
2671 "\"description\": \"The system woke up from suspension.\","
2673 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2674 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
2678 "\"System.OnLowBattery\": {"
2679 "\"type\": \"notification\","
2680 "\"description\": \"The system is on low battery.\","
2682 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2683 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
2687 "\"Application.OnVolumeChanged\": {"
2688 "\"type\": \"notification\","
2689 "\"description\": \"The volume of the application has changed.\","
2691 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2692 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
2694 "\"volume\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 100, \"required\": true },"
2695 "\"muted\": { \"type\": \"boolean\", \"required\": true }"
2701 "\"Input.OnInputRequested\": {"
2702 "\"type\": \"notification\","
2703 "\"description\": \"The user is requested to provide some information.\","
2705 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2706 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
2708 "\"type\": { \"type\": \"string\", \"enum\": [ \"keyboard\", \"time\", \"date\", \"ip\", \"password\", \"number\", \"seconds\" ], \"required\": true },"
2709 "\"title\": { \"type\": \"string\" }"
2715 "\"Input.OnInputFinished\": {"
2716 "\"type\": \"notification\","
2717 "\"description\": \"The user has provided the requested input.\","
2719 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
2720 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"