PageRenderTime 72ms CodeModel.GetById 39ms RepoModel.GetById 0ms app.codeStats 0ms

/xbmc/interfaces/json-rpc/ServiceDescription.h

http://github.com/xbmc/xbmc
C Header | 3586 lines | 3563 code | 4 blank | 19 comment | 0 complexity | 4b4099277b5f36bffb9719d4228c6a14 MD5 | raw file
Possible License(s): GPL-3.0, CC-BY-SA-3.0, LGPL-2.0, 0BSD, Unlicense, GPL-2.0, AGPL-1.0, BSD-3-Clause, LGPL-2.1, LGPL-3.0

Large files files are truncated, but you can click here to view the full file

  1. #pragma once
  2. /*
  3. * Copyright (C) 2005-2013 Team XBMC
  4. * http://xbmc.org
  5. *
  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)
  9. * any later version.
  10. *
  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.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with XBMC; see the file COPYING. If not, see
  18. * <http://www.gnu.org/licenses/>.
  19. *
  20. */
  21. namespace JSONRPC
  22. {
  23. const char* const JSONRPC_SERVICE_ID = "http://xbmc.org/jsonrpc/ServiceDescription.json";
  24. const char* const JSONRPC_SERVICE_VERSION = "6.6.2";
  25. const char* const JSONRPC_SERVICE_DESCRIPTION = "JSON-RPC API of XBMC";
  26. const char* const JSONRPC_SERVICE_TYPES[] = {
  27. "\"Optional.Boolean\": {"
  28. "\"type\": [ \"null\", \"boolean\" ],"
  29. "\"default\": null"
  30. "}",
  31. "\"Optional.String\": {"
  32. "\"type\": [ \"null\", \"string\" ],"
  33. "\"default\": null"
  34. "}",
  35. "\"Optional.Integer\": {"
  36. "\"type\": [ \"null\", \"integer\" ],"
  37. "\"default\": null"
  38. "}",
  39. "\"Optional.Number\": {"
  40. "\"type\": [ \"null\", \"number\" ],"
  41. "\"default\": null"
  42. "}",
  43. "\"Array.String\": {"
  44. "\"type\": \"array\","
  45. "\"items\": { \"type\": \"string\", \"minLength\": 1 }"
  46. "}",
  47. "\"Array.Integer\": {"
  48. "\"type\": \"array\","
  49. "\"items\": { \"type\": \"integer\" }"
  50. "}",
  51. "\"Global.Time\": {"
  52. "\"type\": \"object\","
  53. "\"properties\": {"
  54. "\"hours\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 23 },"
  55. "\"minutes\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 59 },"
  56. "\"seconds\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 59 },"
  57. "\"milliseconds\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 999 }"
  58. "},"
  59. "\"additionalProperties\": false"
  60. "}",
  61. "\"Global.IncrementDecrement\": {"
  62. "\"type\": \"string\","
  63. "\"enum\": [ \"increment\", \"decrement\" ]"
  64. "}",
  65. "\"Global.Toggle\": {"
  66. "\"type\": ["
  67. "{ \"type\": \"boolean\", \"required\": true },"
  68. "{ \"type\": \"string\", \"enum\": [ \"toggle\" ], \"required\": true }"
  69. "]"
  70. "}",
  71. "\"Global.String.NotEmpty\": {"
  72. "\"type\": \"string\","
  73. "\"minLength\": 1"
  74. "}",
  75. "\"Configuration.Notifications\": {"
  76. "\"type\": \"object\","
  77. "\"properties\": {"
  78. "\"Player\": { \"type\": \"boolean\", \"required\": true },"
  79. "\"Playlist\": { \"type\": \"boolean\", \"required\": true },"
  80. "\"GUI\": { \"type\": \"boolean\", \"required\": true },"
  81. "\"System\": { \"type\": \"boolean\", \"required\": true },"
  82. "\"VideoLibrary\": { \"type\": \"boolean\", \"required\": true },"
  83. "\"AudioLibrary\": { \"type\": \"boolean\", \"required\": true },"
  84. "\"Application\": { \"type\": \"boolean\", \"required\": true },"
  85. "\"Input\": { \"type\": \"boolean\", \"required\": true },"
  86. "\"PVR\": { \"type\": \"boolean\", \"required\": true },"
  87. "\"Other\": { \"type\": \"boolean\", \"required\": true }"
  88. "},"
  89. "\"additionalProperties\": false"
  90. "}",
  91. "\"Configuration\": {"
  92. "\"type\": \"object\", \"required\": true,"
  93. "\"properties\": {"
  94. "\"notifications\": { \"$ref\": \"Configuration.Notifications\", \"required\": true }"
  95. "}"
  96. "}",
  97. "\"Files.Media\": {"
  98. "\"type\": \"string\","
  99. "\"enum\": [ \"video\", \"music\", \"pictures\", \"files\", \"programs\" ]"
  100. "}",
  101. "\"List.Amount\": {"
  102. "\"type\": \"integer\","
  103. "\"default\": -1,"
  104. "\"minimum\": 0"
  105. "}",
  106. "\"List.Limits\": {"
  107. "\"type\": \"object\","
  108. "\"properties\": {"
  109. "\"start\": { \"type\": \"integer\", \"minimum\": 0, \"default\": 0, \"description\": \"Index of the first item to return\" },"
  110. "\"end\": { \"$ref\": \"List.Amount\", \"description\": \"Index of the last item to return\" }"
  111. "},"
  112. "\"additionalProperties\": false"
  113. "}",
  114. "\"List.LimitsReturned\": {"
  115. "\"type\": \"object\","
  116. "\"properties\": {"
  117. "\"start\": { \"type\": \"integer\", \"minimum\": 0, \"default\": 0 },"
  118. "\"end\": { \"$ref\": \"List.Amount\" },"
  119. "\"total\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true }"
  120. "},"
  121. "\"additionalProperties\": false"
  122. "}",
  123. "\"List.Sort\": {"
  124. "\"type\": \"object\","
  125. "\"properties\": {"
  126. "\"method\": { \"type\": \"string\", \"default\": \"none\","
  127. "\"enum\": [ \"none\", \"label\", \"date\", \"size\", \"file\", \"path\", \"drivetype\", \"title\", \"track\", \"time\", \"artist\","
  128. "\"album\", \"albumtype\", \"genre\", \"country\", \"year\", \"rating\", \"votes\", \"top250\", \"programcount\","
  129. "\"playlist\", \"episode\", \"season\", \"totalepisodes\", \"watchedepisodes\", \"tvshowstatus\", \"tvshowtitle\","
  130. "\"sorttitle\", \"productioncode\", \"mpaa\", \"studio\", \"dateadded\", \"lastplayed\", \"playcount\", \"listeners\","
  131. "\"bitrate\", \"random\" ]"
  132. "},"
  133. "\"order\": { \"type\": \"string\", \"default\": \"ascending\", \"enum\": [ \"ascending\", \"descending\" ] },"
  134. "\"ignorearticle\": { \"type\": \"boolean\", \"default\": false }"
  135. "}"
  136. "}",
  137. "\"Library.Id\": {"
  138. "\"type\": \"integer\","
  139. "\"default\": -1,"
  140. "\"minimum\": 1"
  141. "}",
  142. "\"PVR.Channel.Type\": {"
  143. "\"type\": \"string\","
  144. "\"enum\": [ \"tv\", \"radio\" ]"
  145. "}",
  146. "\"Playlist.Id\": {"
  147. "\"type\": \"integer\","
  148. "\"minimum\": 0,"
  149. "\"maximum\": 2,"
  150. "\"default\": -1"
  151. "}",
  152. "\"Playlist.Type\": {"
  153. "\"type\": \"string\","
  154. "\"enum\": [ \"unknown\", \"video\", \"audio\", \"picture\", \"mixed\" ]"
  155. "}",
  156. "\"Playlist.Property.Name\": {"
  157. "\"type\": \"string\","
  158. "\"enum\": [ \"type\", \"size\" ]"
  159. "}",
  160. "\"Playlist.Property.Value\": {"
  161. "\"type\": \"object\","
  162. "\"properties\": {"
  163. "\"type\": { \"$ref\": \"Playlist.Type\" },"
  164. "\"size\": { \"type\": \"integer\", \"minimum\": 0 }"
  165. "}"
  166. "}",
  167. "\"Playlist.Position\": {"
  168. "\"type\": \"integer\","
  169. "\"minimum\": 0,"
  170. "\"default\": -1"
  171. "}",
  172. "\"Playlist.Item\": {"
  173. "\"type\": ["
  174. "{ \"type\": \"object\", \"properties\": { \"file\": { \"type\": \"string\", \"description\": \"Path to a file (not a directory) to be added to the playlist\", \"required\": true } }, \"additionalProperties\": false },"
  175. "{ \"type\": \"object\", \"properties\": { \"directory\": { \"type\": \"string\", \"required\": true }, \"recursive\": { \"type\": \"boolean\", \"default\": false }, \"media\": { \"$ref\": \"Files.Media\", \"default\": \"files\" } }, \"additionalProperties\": false },"
  176. "{ \"type\": \"object\", \"properties\": { \"movieid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
  177. "{ \"type\": \"object\", \"properties\": { \"episodeid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
  178. "{ \"type\": \"object\", \"properties\": { \"musicvideoid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
  179. "{ \"type\": \"object\", \"properties\": { \"artistid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
  180. "{ \"type\": \"object\", \"properties\": { \"albumid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
  181. "{ \"type\": \"object\", \"properties\": { \"songid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
  182. "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true, \"description\": \"Identification of a genre from the AudioLibrary\" } }, \"additionalProperties\": false }"
  183. "]"
  184. "}",
  185. "\"Player.Id\": {"
  186. "\"type\": \"integer\","
  187. "\"minimum\": 0,"
  188. "\"maximum\": 2,"
  189. "\"default\": -1"
  190. "}",
  191. "\"Player.Type\": {"
  192. "\"type\": \"string\","
  193. "\"enum\": [ \"video\", \"audio\", \"picture\" ]"
  194. "}",
  195. "\"Player.Position.Percentage\": {"
  196. "\"type\": \"number\","
  197. "\"minimum\": 0.0,"
  198. "\"maximum\": 100.0"
  199. "}",
  200. "\"Player.Position.Time\": {"
  201. "\"type\": \"object\","
  202. "\"additionalProperties\": false,"
  203. "\"properties\": {"
  204. "\"hours\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 23, \"default\": 0 },"
  205. "\"minutes\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 59, \"default\": 0 },"
  206. "\"seconds\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 59, \"default\": 0 },"
  207. "\"milliseconds\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 999, \"default\": 0 }"
  208. "}"
  209. "}",
  210. "\"Player.Speed\": {"
  211. "\"type\": \"object\","
  212. "\"required\": true,"
  213. "\"properties\": {"
  214. "\"speed\": { \"type\": \"integer\" }"
  215. "}"
  216. "}",
  217. "\"Player.Repeat\": {"
  218. "\"type\": \"string\","
  219. "\"enum\": [ \"off\", \"one\", \"all\" ]"
  220. "}",
  221. "\"Player.Audio.Stream\": {"
  222. "\"type\": \"object\","
  223. "\"properties\": {"
  224. "\"index\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
  225. "\"name\": { \"type\": \"string\", \"required\": true },"
  226. "\"language\": { \"type\": \"string\", \"required\": true },"
  227. "\"codec\": { \"type\": \"string\", \"required\": true },"
  228. "\"bitrate\": { \"type\": \"integer\", \"required\": true },"
  229. "\"channels\": { \"type\": \"integer\", \"required\": true }"
  230. "}"
  231. "}",
  232. "\"Player.Subtitle\": {"
  233. "\"type\": \"object\","
  234. "\"properties\": {"
  235. "\"index\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
  236. "\"name\": { \"type\": \"string\", \"required\": true },"
  237. "\"language\": { \"type\": \"string\", \"required\": true }"
  238. "}"
  239. "}",
  240. "\"Player.Property.Name\": {"
  241. "\"type\": \"string\","
  242. "\"enum\": [ \"type\", \"partymode\", \"speed\", \"time\", \"percentage\","
  243. "\"totaltime\", \"playlistid\", \"position\", \"repeat\", \"shuffled\","
  244. "\"canseek\", \"canchangespeed\", \"canmove\", \"canzoom\", \"canrotate\","
  245. "\"canshuffle\", \"canrepeat\", \"currentaudiostream\", \"audiostreams\","
  246. "\"subtitleenabled\", \"currentsubtitle\", \"subtitles\", \"live\" ]"
  247. "}",
  248. "\"Player.Property.Value\": {"
  249. "\"type\": \"object\","
  250. "\"properties\": {"
  251. "\"type\": { \"$ref\": \"Player.Type\" },"
  252. "\"partymode\": { \"type\": \"boolean\" },"
  253. "\"speed\": { \"type\": \"integer\" },"
  254. "\"time\": { \"$ref\": \"Global.Time\" },"
  255. "\"percentage\": { \"$ref\": \"Player.Position.Percentage\" },"
  256. "\"totaltime\": { \"$ref\": \"Global.Time\" },"
  257. "\"playlistid\": { \"$ref\": \"Playlist.Id\" },"
  258. "\"position\": { \"$ref\": \"Playlist.Position\" },"
  259. "\"repeat\": { \"$ref\": \"Player.Repeat\" },"
  260. "\"shuffled\": { \"type\": \"boolean\" },"
  261. "\"canseek\": { \"type\": \"boolean\" },"
  262. "\"canchangespeed\": { \"type\": \"boolean\" },"
  263. "\"canmove\": { \"type\": \"boolean\" },"
  264. "\"canzoom\": { \"type\": \"boolean\" },"
  265. "\"canrotate\": { \"type\": \"boolean\" },"
  266. "\"canshuffle\": { \"type\": \"boolean\" },"
  267. "\"canrepeat\": { \"type\": \"boolean\" },"
  268. "\"currentaudiostream\": { \"$ref\": \"Player.Audio.Stream\" },"
  269. "\"audiostreams\": { \"type\": \"array\", \"items\": { \"$ref\": \"Player.Audio.Stream\" } },"
  270. "\"subtitleenabled\": { \"type\": \"boolean\" },"
  271. "\"currentsubtitle\": { \"$ref\": \"Player.Subtitle\" },"
  272. "\"subtitles\": { \"type\": \"array\", \"items\": { \"$ref\": \"Player.Subtitle\" } },"
  273. "\"live\": { \"type\": \"boolean\" }"
  274. "}"
  275. "}",
  276. "\"Notifications.Item.Type\": {"
  277. "\"type\": \"string\","
  278. "\"enum\": [ \"unknown\", \"movie\", \"episode\", \"musicvideo\", \"song\", \"picture\", \"channel\" ]"
  279. "}",
  280. "\"Notifications.Item\": {"
  281. "\"type\": ["
  282. "{ \"type\": \"object\", \"description\": \"An unknown item does not have any additional information.\","
  283. "\"properties\": {"
  284. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true }"
  285. "}"
  286. "},"
  287. "{ \"type\": \"object\", \"description\": \"An item known to the database has an identification.\","
  288. "\"properties\": {"
  289. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
  290. "\"id\": { \"$ref\": \"Library.Id\", \"required\": true }"
  291. "}"
  292. "},"
  293. "{ \"type\": \"object\", \"description\": \"A movie item has a title and may have a release year.\","
  294. "\"properties\": {"
  295. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
  296. "\"title\": { \"type\": \"string\", \"required\": true },"
  297. "\"year\": { \"type\": \"integer\" }"
  298. "}"
  299. "},"
  300. "{ \"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.\","
  301. "\"properties\": {"
  302. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
  303. "\"title\": { \"type\": \"string\", \"required\": true },"
  304. "\"episode\": { \"type\": \"integer\" },"
  305. "\"season\": { \"type\": \"integer\" },"
  306. "\"showtitle\": { \"type\": \"string\" }"
  307. "}"
  308. "},"
  309. "{ \"type\": \"object\", \"description\": \"A music video has a title and may have an album and an artist.\","
  310. "\"properties\": {"
  311. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
  312. "\"title\": { \"type\": \"string\", \"required\": true },"
  313. "\"album\": { \"type\": \"string\" },"
  314. "\"artist\": { \"type\": \"string\" }"
  315. "}"
  316. "},"
  317. "{ \"type\": \"object\", \"description\": \"A song has a title and may have an album, an artist and a track number.\","
  318. "\"properties\": {"
  319. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
  320. "\"title\": { \"type\": \"string\", \"required\": true },"
  321. "\"album\": { \"type\": \"string\" },"
  322. "\"artist\": { \"type\": \"string\" },"
  323. "\"track\": { \"type\": \"integer\" }"
  324. "}"
  325. "},"
  326. "{ \"type\": \"object\", \"description\": \"A picture has a file path.\","
  327. "\"properties\": {"
  328. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
  329. "\"file\": { \"type\": \"string\", \"required\": true }"
  330. "}"
  331. "},"
  332. "{ \"type\": \"object\", \"description\": \"A PVR channel is either a radio or tv channel and has a title.\","
  333. "\"properties\": {"
  334. "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
  335. "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
  336. "\"title\": { \"type\": \"string\", \"required\": true },"
  337. "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\", \"required\": true }"
  338. "}"
  339. "}"
  340. "]"
  341. "}",
  342. "\"Player.Notifications.Player\": {"
  343. "\"type\": \"object\","
  344. "\"properties\": {"
  345. "\"playerid\": { \"$ref\": \"Player.Id\", \"required\": true },"
  346. "\"speed\": { \"type\": \"integer\" }"
  347. "}"
  348. "}",
  349. "\"Player.Notifications.Player.Seek\": {"
  350. "\"extends\": \"Player.Notifications.Player\","
  351. "\"properties\": {"
  352. "\"time\": { \"$ref\": \"Global.Time\" },"
  353. "\"seekoffset\": { \"$ref\": \"Global.Time\" }"
  354. "}"
  355. "}",
  356. "\"Player.Notifications.Data\": {"
  357. "\"type\": \"object\","
  358. "\"properties\": {"
  359. "\"item\": { \"$ref\": \"Notifications.Item\", \"required\": true },"
  360. "\"player\": { \"$ref\": \"Player.Notifications.Player\", \"required\": true }"
  361. "}"
  362. "}",
  363. "\"Item.Fields.Base\": {"
  364. "\"type\": \"array\","
  365. "\"uniqueItems\": true,"
  366. "\"items\": { \"type\": \"string\" }"
  367. "}",
  368. "\"Item.Details.Base\": {"
  369. "\"type\": \"object\","
  370. "\"properties\": {"
  371. "\"label\": { \"type\": \"string\", \"required\": true }"
  372. "}"
  373. "}",
  374. "\"Media.Details.Base\": {"
  375. "\"extends\": \"Item.Details.Base\","
  376. "\"properties\": {"
  377. "\"fanart\": { \"type\": \"string\" },"
  378. "\"thumbnail\": { \"type\": \"string\" }"
  379. "}"
  380. "}",
  381. "\"Media.Artwork\": {"
  382. "\"type\": \"object\","
  383. "\"properties\": {"
  384. "\"thumb\": { \"$ref\": \"Global.String.NotEmpty\" },"
  385. "\"poster\": { \"$ref\": \"Global.String.NotEmpty\" },"
  386. "\"banner\": { \"$ref\": \"Global.String.NotEmpty\" },"
  387. "\"fanart\": { \"$ref\": \"Global.String.NotEmpty\" }"
  388. "},"
  389. "\"additionalProperties\": { \"$ref\": \"Global.String.NotEmpty\" }"
  390. "}",
  391. "\"Library.Fields.Genre\": {"
  392. "\"extends\": \"Item.Fields.Base\","
  393. "\"items\": { \"type\": \"string\", \"enum\": [ \"title\", \"thumbnail\" ] }"
  394. "}",
  395. "\"Library.Details.Genre\": {"
  396. "\"extends\": \"Item.Details.Base\","
  397. "\"properties\": {"
  398. "\"genreid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  399. "\"title\": { \"type\": \"string\" },"
  400. "\"thumbnail\": { \"type\": \"string\" }"
  401. "}"
  402. "}",
  403. "\"Audio.Fields.Artist\": {"
  404. "\"extends\": \"Item.Fields.Base\","
  405. "\"items\": { \"type\": \"string\","
  406. "\"enum\": [ \"instrument\", \"style\", \"mood\", \"born\", \"formed\","
  407. "\"description\", \"genre\", \"died\", \"disbanded\","
  408. "\"yearsactive\", \"musicbrainzartistid\", \"fanart\","
  409. "\"thumbnail\", \"compilationartist\" ]"
  410. "}"
  411. "}",
  412. "\"Audio.Fields.Album\": {"
  413. "\"extends\": \"Item.Fields.Base\","
  414. "\"items\": { \"type\": \"string\","
  415. "\"description\": \"Requesting the genreid and/or artistid field will result in increased response times\","
  416. "\"enum\": [ \"title\", \"description\", \"artist\", \"genre\","
  417. "\"theme\", \"mood\", \"style\", \"type\", \"albumlabel\","
  418. "\"rating\", \"year\", \"musicbrainzalbumid\","
  419. "\"musicbrainzalbumartistid\", \"fanart\", \"thumbnail\","
  420. "\"playcount\", \"genreid\", \"artistid\", \"displayartist\" ]"
  421. "}"
  422. "}",
  423. "\"Audio.Fields.Song\": {"
  424. "\"extends\": \"Item.Fields.Base\","
  425. "\"items\": { \"type\": \"string\","
  426. "\"description\": \"Requesting the genreid, artistid and/or albumartistid field will result in increased response times\","
  427. "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\","
  428. "\"rating\", \"album\", \"track\", \"duration\", \"comment\","
  429. "\"lyrics\", \"musicbrainztrackid\", \"musicbrainzartistid\","
  430. "\"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
  431. "\"playcount\", \"fanart\", \"thumbnail\", \"file\", \"albumid\","
  432. "\"lastplayed\", \"disc\", \"genreid\", \"artistid\", \"displayartist\","
  433. "\"albumartistid\" ]"
  434. "}"
  435. "}",
  436. "\"Audio.Details.Base\": {"
  437. "\"extends\": \"Media.Details.Base\","
  438. "\"properties\": {"
  439. "\"genre\": { \"$ref\": \"Array.String\" }"
  440. "}"
  441. "}",
  442. "\"Audio.Details.Media\": {"
  443. "\"extends\": \"Audio.Details.Base\","
  444. "\"properties\": {"
  445. "\"title\": { \"type\": \"string\" },"
  446. "\"artist\": { \"$ref\": \"Array.String\" },"
  447. "\"year\": { \"type\": \"integer\" },"
  448. "\"rating\": { \"type\": \"integer\" },"
  449. "\"musicbrainzalbumid\": { \"type\": \"string\" },"
  450. "\"musicbrainzalbumartistid\": { \"type\": \"string\" },"
  451. "\"genreid\": { \"$ref\": \"Array.Integer\" },"
  452. "\"artistid\": { \"$ref\": \"Array.Integer\" },"
  453. "\"displayartist\": { \"type\" : \"string\" }"
  454. "}"
  455. "}",
  456. "\"Audio.Details.Artist\": {"
  457. "\"extends\": \"Audio.Details.Base\","
  458. "\"properties\": {"
  459. "\"artistid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  460. "\"artist\": { \"type\": \"string\", \"required\": true },"
  461. "\"instrument\": { \"$ref\": \"Array.String\" },"
  462. "\"style\": { \"$ref\": \"Array.String\" },"
  463. "\"mood\": { \"$ref\": \"Array.String\" },"
  464. "\"born\": { \"type\": \"string\" },"
  465. "\"formed\": { \"type\": \"string\" },"
  466. "\"description\": { \"type\": \"string\" },"
  467. "\"died\": { \"type\": \"string\" },"
  468. "\"disbanded\": { \"type\": \"string\" },"
  469. "\"yearsactive\": { \"$ref\": \"Array.String\" },"
  470. "\"compilationartist\": { \"type\": \"boolean\" },"
  471. "\"musicbrainzartistid\": { \"type\": \"string\" }"
  472. "}"
  473. "}",
  474. "\"Audio.Details.Album\": {"
  475. "\"extends\": \"Audio.Details.Media\","
  476. "\"properties\": {"
  477. "\"albumid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  478. "\"description\": { \"type\": \"string\" },"
  479. "\"theme\": { \"$ref\": \"Array.String\" },"
  480. "\"mood\": { \"$ref\": \"Array.String\" },"
  481. "\"style\": { \"$ref\": \"Array.String\" },"
  482. "\"type\": { \"type\": \"string\" },"
  483. "\"albumlabel\": { \"type\": \"string\" },"
  484. "\"playcount\": { \"type\": \"integer\" }"
  485. "}"
  486. "}",
  487. "\"Audio.Details.Song\": {"
  488. "\"extends\": \"Audio.Details.Media\","
  489. "\"properties\": {"
  490. "\"songid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  491. "\"file\": { \"type\": \"string\" },"
  492. "\"albumartist\": { \"$ref\": \"Array.String\" },"
  493. "\"album\": { \"type\": \"string\" },"
  494. "\"track\": { \"type\": \"integer\" },"
  495. "\"duration\": { \"type\": \"integer\" },"
  496. "\"comment\": { \"type\": \"string\" },"
  497. "\"lyrics\": { \"type\": \"string\" },"
  498. "\"playcount\": { \"type\": \"integer\" },"
  499. "\"musicbrainztrackid\": { \"type\": \"string\" },"
  500. "\"musicbrainzartistid\": { \"type\": \"string\" },"
  501. "\"albumid\": { \"$ref\": \"Library.Id\" },"
  502. "\"lastplayed\": { \"type\": \"string\" },"
  503. "\"disc\": { \"type\": \"integer\" },"
  504. "\"albumartistid\": { \"$ref\": \"Array.Integer\" }"
  505. "}"
  506. "}",
  507. "\"Video.Fields.Movie\": {"
  508. "\"extends\": \"Item.Fields.Base\","
  509. "\"items\": { \"type\": \"string\","
  510. "\"description\": \"Requesting the cast, showlink and/or tag field will result in increased response times\","
  511. "\"enum\": [ \"title\", \"genre\", \"year\", \"rating\", \"director\", \"trailer\","
  512. "\"tagline\", \"plot\", \"plotoutline\", \"originaltitle\", \"lastplayed\","
  513. "\"playcount\", \"writer\", \"studio\", \"mpaa\", \"cast\", \"country\","
  514. "\"imdbnumber\", \"runtime\", \"set\", \"showlink\", \"streamdetails\","
  515. "\"top250\", \"votes\", \"fanart\", \"thumbnail\", \"file\", \"sorttitle\","
  516. "\"resume\", \"setid\", \"dateadded\", \"tag\", \"art\" ]"
  517. "}"
  518. "}",
  519. "\"Video.Fields.MovieSet\": {"
  520. "\"extends\": \"Item.Fields.Base\","
  521. "\"items\": { \"type\": \"string\","
  522. "\"enum\": [ \"title\", \"playcount\", \"fanart\", \"thumbnail\", \"art\" ]"
  523. "}"
  524. "}",
  525. "\"Video.Fields.TVShow\": {"
  526. "\"extends\": \"Item.Fields.Base\","
  527. "\"items\": { \"type\": \"string\","
  528. "\"description\": \"Requesting the cast field will result in increased response times\","
  529. "\"enum\": [ \"title\", \"genre\", \"year\", \"rating\", \"plot\","
  530. "\"studio\", \"mpaa\", \"cast\", \"playcount\", \"episode\","
  531. "\"imdbnumber\", \"premiered\", \"votes\", \"lastplayed\","
  532. "\"fanart\", \"thumbnail\", \"file\", \"originaltitle\","
  533. "\"sorttitle\", \"episodeguide\", \"season\", \"watchedepisodes\","
  534. "\"dateadded\", \"tag\", \"lastplayed\", \"art\" ]"
  535. "}"
  536. "}",
  537. "\"Video.Fields.Season\": {"
  538. "\"extends\": \"Item.Fields.Base\","
  539. "\"items\": { \"type\": \"string\","
  540. "\"enum\": [ \"season\", \"showtitle\", \"playcount\", \"episode\", \"fanart\", \"thumbnail\", \"tvshowid\","
  541. "\"watchedepisodes\", \"art\" ]"
  542. "}"
  543. "}",
  544. "\"Video.Fields.Episode\": {"
  545. "\"extends\": \"Item.Fields.Base\","
  546. "\"items\": { \"type\": \"string\","
  547. "\"description\": \"Requesting the cast field will result in increased response times\","
  548. "\"enum\": [ \"title\", \"plot\", \"votes\", \"rating\", \"writer\","
  549. "\"firstaired\", \"playcount\", \"runtime\", \"director\","
  550. "\"productioncode\", \"season\", \"episode\", \"originaltitle\","
  551. "\"showtitle\", \"cast\", \"streamdetails\", \"lastplayed\", \"fanart\","
  552. "\"thumbnail\", \"file\", \"resume\", \"tvshowid\", \"dateadded\","
  553. "\"uniqueid\", \"art\" ]"
  554. "}"
  555. "}",
  556. "\"Video.Fields.MusicVideo\": {"
  557. "\"extends\": \"Item.Fields.Base\","
  558. "\"items\": { \"type\": \"string\","
  559. "\"enum\": [ \"title\", \"playcount\", \"runtime\", \"director\","
  560. "\"studio\", \"year\", \"plot\", \"album\", \"artist\","
  561. "\"genre\", \"track\", \"streamdetails\", \"lastplayed\","
  562. "\"fanart\", \"thumbnail\", \"file\", \"resume\", \"dateadded\","
  563. "\"tag\", \"art\" ]"
  564. "}"
  565. "}",
  566. "\"Video.Cast\": {"
  567. "\"type\": \"array\","
  568. "\"items\": { \"type\": \"object\","
  569. "\"properties\": {"
  570. "\"name\": { \"type\": \"string\", \"required\": true },"
  571. "\"role\": { \"type\": \"string\", \"required\": true },"
  572. "\"thumbnail\": { \"type\": \"string\" }"
  573. "},"
  574. "\"additionalProperties\": false"
  575. "}"
  576. "}",
  577. "\"Video.Streams\": {"
  578. "\"type\": \"object\","
  579. "\"properties\": {"
  580. "\"audio\": { \"type\": \"array\", \"minItems\": 1,"
  581. "\"items\": { \"type\": \"object\","
  582. "\"properties\": {"
  583. "\"codec\": { \"type\": \"string\" },"
  584. "\"language\": { \"type\": \"string\" },"
  585. "\"channels\": { \"type\": \"integer\" }"
  586. "},"
  587. "\"additionalProperties\": false"
  588. "}"
  589. "},"
  590. "\"video\": { \"type\": \"array\", \"minItems\": 1,"
  591. "\"items\": { \"type\": \"object\","
  592. "\"properties\": {"
  593. "\"codec\": { \"type\": \"string\" },"
  594. "\"aspect\": { \"type\": \"number\" },"
  595. "\"width\": { \"type\": \"integer\" },"
  596. "\"height\": { \"type\": \"integer\" },"
  597. "\"duration\": { \"type\": \"integer\" }"
  598. "},"
  599. "\"additionalProperties\": false"
  600. "}"
  601. "},"
  602. "\"subtitle\": { \"type\": \"array\", \"minItems\": 1,"
  603. "\"items\": { \"type\": \"object\","
  604. "\"properties\": {"
  605. "\"language\": { \"type\": \"string\" }"
  606. "},"
  607. "\"additionalProperties\": false"
  608. "}"
  609. "}"
  610. "},"
  611. "\"additionalProperties\": false"
  612. "}",
  613. "\"Video.Resume\": {"
  614. "\"type\": \"object\","
  615. "\"properties\": {"
  616. "\"position\": { \"type\": \"number\", \"minimum\": 0 },"
  617. "\"total\": { \"type\": \"number\", \"minimum\": 0 }"
  618. "},"
  619. "\"additionalProperties\": false"
  620. "}",
  621. "\"Video.Details.Base\": {"
  622. "\"extends\": \"Media.Details.Base\","
  623. "\"properties\": {"
  624. "\"playcount\": { \"type\": \"integer\" },"
  625. "\"art\": { \"$ref\": \"Media.Artwork\" }"
  626. "}"
  627. "}",
  628. "\"Video.Details.Media\": {"
  629. "\"extends\": \"Video.Details.Base\","
  630. "\"properties\": {"
  631. "\"title\": { \"type\": \"string\" }"
  632. "}"
  633. "}",
  634. "\"Video.Details.Item\": {"
  635. "\"extends\": \"Video.Details.Media\","
  636. "\"properties\": {"
  637. "\"file\": { \"type\": \"string\" },"
  638. "\"plot\": { \"type\": \"string\" },"
  639. "\"lastplayed\": { \"type\": \"string\" },"
  640. "\"dateadded\": { \"type\": \"string\" }"
  641. "}"
  642. "}",
  643. "\"Video.Details.File\": {"
  644. "\"extends\": \"Video.Details.Item\","
  645. "\"properties\": {"
  646. "\"runtime\": { \"type\": \"integer\", \"description\": \"Runtime in seconds\" },"
  647. "\"director\": { \"$ref\": \"Array.String\" },"
  648. "\"streamdetails\": { \"$ref\": \"Video.Streams\" },"
  649. "\"resume\": { \"$ref\": \"Video.Resume\" }"
  650. "}"
  651. "}",
  652. "\"Video.Details.Movie\": {"
  653. "\"extends\": \"Video.Details.File\","
  654. "\"properties\": {"
  655. "\"movieid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  656. "\"genre\": { \"$ref\": \"Array.String\" },"
  657. "\"year\": { \"type\": \"integer\" },"
  658. "\"rating\": { \"type\": \"number\" },"
  659. "\"trailer\": { \"type\": \"string\" },"
  660. "\"tagline\": { \"type\": \"string\" },"
  661. "\"plotoutline\": { \"type\": \"string\" },"
  662. "\"originaltitle\": { \"type\": \"string\" },"
  663. "\"sorttitle\": { \"type\": \"string\" },"
  664. "\"writer\": { \"$ref\": \"Array.String\" },"
  665. "\"studio\": { \"$ref\": \"Array.String\" },"
  666. "\"mpaa\": { \"type\": \"string\" },"
  667. "\"cast\": { \"$ref\": \"Video.Cast\" },"
  668. "\"country\": { \"$ref\": \"Array.String\" },"
  669. "\"imdbnumber\": { \"type\": \"string\" },"
  670. "\"set\": { \"type\": \"string\" },"
  671. "\"showlink\": { \"$ref\": \"Array.String\" },"
  672. "\"top250\": { \"type\": \"integer\" },"
  673. "\"votes\": { \"type\": \"string\" },"
  674. "\"setid\": { \"$ref\": \"Library.Id\" },"
  675. "\"tag\": { \"$ref\": \"Array.String\" }"
  676. "}"
  677. "}",
  678. "\"Video.Details.MovieSet\": {"
  679. "\"extends\": \"Video.Details.Media\","
  680. "\"properties\": {"
  681. "\"setid\": { \"$ref\": \"Library.Id\", \"required\": true }"
  682. "}"
  683. "}",
  684. "\"Video.Details.MovieSet.Extended\": {"
  685. "\"extends\": \"Video.Details.MovieSet\","
  686. "\"properties\": {"
  687. "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
  688. "\"movies\": { \"type\": \"array\","
  689. "\"items\": { \"$ref\": \"Video.Details.Movie\" }"
  690. "}"
  691. "}"
  692. "}",
  693. "\"Video.Details.TVShow\": {"
  694. "\"extends\": \"Video.Details.Item\","
  695. "\"properties\": {"
  696. "\"tvshowid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  697. "\"genre\": { \"$ref\": \"Array.String\" },"
  698. "\"year\": { \"type\": \"integer\" },"
  699. "\"rating\": { \"type\": \"number\" },"
  700. "\"originaltitle\": { \"type\": \"string\" },"
  701. "\"sorttitle\": { \"type\": \"string\" },"
  702. "\"studio\": { \"$ref\": \"Array.String\" },"
  703. "\"mpaa\": { \"type\": \"string\" },"
  704. "\"cast\": { \"$ref\": \"Video.Cast\" },"
  705. "\"episode\": { \"type\": \"integer\" },"
  706. "\"watchedepisodes\": { \"type\": \"integer\" },"
  707. "\"imdbnumber\": { \"type\": \"string\" },"
  708. "\"premiered\": { \"type\": \"string\" },"
  709. "\"votes\": { \"type\": \"string\" },"
  710. "\"episodeguide\": { \"type\": \"string\" },"
  711. "\"season\": { \"type\": \"integer\" },"
  712. "\"tag\": { \"$ref\": \"Array.String\" }"
  713. "}"
  714. "}",
  715. "\"Video.Details.Season\": {"
  716. "\"extends\": \"Video.Details.Base\","
  717. "\"properties\": {"
  718. "\"season\": { \"type\": \"integer\", \"required\": true },"
  719. "\"showtitle\": { \"type\": \"string\" },"
  720. "\"episode\": { \"type\": \"integer\" },"
  721. "\"watchedepisodes\": { \"type\": \"integer\" },"
  722. "\"tvshowid\": { \"$ref\": \"Library.Id\" }"
  723. "}"
  724. "}",
  725. "\"Video.Details.Episode\": {"
  726. "\"extends\": \"Video.Details.File\","
  727. "\"properties\": {"
  728. "\"episodeid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  729. "\"votes\": { \"type\": \"string\" },"
  730. "\"rating\": { \"type\": \"number\" },"
  731. "\"writer\": { \"$ref\": \"Array.String\" },"
  732. "\"firstaired\": { \"type\": \"string\" },"
  733. "\"productioncode\": { \"type\": \"string\" },"
  734. "\"season\": { \"type\": \"integer\" },"
  735. "\"episode\": { \"type\": \"integer\" },"
  736. "\"uniqueid\": { \"type\": \"object\", \"additionalProperties\": { \"type\": \"string\", \"minLength\": 1 } },"
  737. "\"originaltitle\": { \"type\": \"string\" },"
  738. "\"showtitle\": { \"type\": \"string\" },"
  739. "\"cast\": { \"$ref\": \"Video.Cast\" },"
  740. "\"tvshowid\": { \"$ref\": \"Library.Id\" }"
  741. "}"
  742. "}",
  743. "\"Video.Details.MusicVideo\": {"
  744. "\"extends\": \"Video.Details.File\","
  745. "\"properties\": {"
  746. "\"musicvideoid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  747. "\"studio\": { \"$ref\": \"Array.String\" },"
  748. "\"year\": { \"type\": \"integer\" },"
  749. "\"album\": { \"type\": \"string\" },"
  750. "\"artist\": { \"$ref\": \"Array.String\" },"
  751. "\"genre\": { \"$ref\": \"Array.String\" },"
  752. "\"track\": { \"type\": \"integer\" },"
  753. "\"tag\": { \"$ref\": \"Array.String\" }"
  754. "}"
  755. "}",
  756. "\"PVR.Property.Name\": {"
  757. "\"type\": \"string\","
  758. "\"enum\": [ \"available\", \"recording\", \"scanning\" ]"
  759. "}",
  760. "\"PVR.Property.Value\": {"
  761. "\"type\": \"object\","
  762. "\"properties\": {"
  763. "\"available\": { \"type\": \"boolean\" },"
  764. "\"recording\": { \"type\": \"boolean\" },"
  765. "\"scanning\": { \"type\": \"boolean\" }"
  766. "}"
  767. "}",
  768. "\"PVR.ChannelGroup.Id\": {"
  769. "\"type\": ["
  770. "{ \"$ref\": \"Library.Id\", \"required\": true },"
  771. "{ \"type\": \"string\", \"enum\": [ \"alltv\", \"allradio\" ], \"required\": true }"
  772. "]"
  773. "}",
  774. "\"PVR.Fields.Channel\": {"
  775. "\"extends\": \"Item.Fields.Base\","
  776. "\"items\": { \"type\": \"string\","
  777. "\"enum\": [ \"thumbnail\", \"channeltype\", \"hidden\", \"locked\", \"channel\", \"lastplayed\" ]"
  778. "}"
  779. "}",
  780. "\"PVR.Details.Channel\": {"
  781. "\"extends\": \"Item.Details.Base\","
  782. "\"properties\": {"
  783. "\"channelid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  784. "\"channel\": { \"type\": \"string\" },"
  785. "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\" },"
  786. "\"hidden\": { \"type\": \"boolean\" },"
  787. "\"locked\": { \"type\": \"boolean\" },"
  788. "\"thumbnail\": { \"type\": \"string\" },"
  789. "\"lastplayed\": { \"type\": \"string\" }"
  790. "}"
  791. "}",
  792. "\"PVR.Details.ChannelGroup\": {"
  793. "\"extends\": \"Item.Details.Base\","
  794. "\"properties\": {"
  795. "\"channelgroupid\": { \"$ref\": \"Library.Id\", \"required\": true },"
  796. "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\", \"required\": true }"
  797. "}"
  798. "}",
  799. "\"PVR.Details.ChannelGroup.Extended\": {"
  800. "\"extends\": \"PVR.Details.ChannelGroup\","
  801. "\"properties\": {"
  802. "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
  803. "\"channels\": { \"type\": \"array\","
  804. "\"items\": { \"$ref\": \"PVR.Details.Channel\" }"
  805. "}"
  806. "}"
  807. "}",
  808. "\"Profiles.Password\": {"
  809. "\"type\": \"object\","
  810. "\"properties\": {"
  811. "\"value\": { \"type\": \"string\", \"required\": true, \"description\": \"Password\" },"
  812. "\"encryption\": { \"type\": \"string\", \"description\": \"Password Encryption\", \"default\": \"md5\", \"enum\": [ \"none\", \"md5\" ] }"
  813. "}"
  814. "}",
  815. "\"Profiles.Fields.Profile\": {"
  816. "\"extends\": \"Item.Fields.Base\","
  817. "\"items\": { \"type\": \"string\", \"enum\": [ \"thumbnail\", \"lockmode\" ] }"
  818. "}",
  819. "\"Profiles.Details.Profile\": {"
  820. "\"extends\": \"Item.Details.Base\","
  821. "\"properties\": {"
  822. "\"thumbnail\": { \"type\": \"string\" },"
  823. "\"lockmode\": { \"type\": \"integer\" }"
  824. "}"
  825. "}",
  826. "\"List.Filter.Rule\": {"
  827. "\"type\": \"object\","
  828. "\"properties\": {"
  829. "\"operator\": { \"$ref\": \"List.Filter.Operators\", \"required\": true },"
  830. "\"value\": {"
  831. "\"type\": ["
  832. "{ \"type\": \"string\", \"required\": true },"
  833. "{ \"type\": \"array\", \"items\": { \"type\": \"string\" }, \"required\": true }"
  834. "], \"required\": true"
  835. "}"
  836. "}"
  837. "}",
  838. "\"List.Filter.Rule.Movies\": {"
  839. "\"extends\": \"List.Filter.Rule\","
  840. "\"properties\": {"
  841. "\"field\": { \"$ref\": \"List.Filter.Fields.Movies\", \"required\": true }"
  842. "}"
  843. "}",
  844. "\"List.Filter.Rule.TVShows\": {"
  845. "\"extends\": \"List.Filter.Rule\","
  846. "\"properties\": {"
  847. "\"field\": { \"$ref\": \"List.Filter.Fields.TVShows\", \"required\": true }"
  848. "}"
  849. "}",
  850. "\"List.Filter.Rule.Episodes\": {"
  851. "\"extends\": \"List.Filter.Rule\","
  852. "\"properties\": {"
  853. "\"field\": { \"$ref\": \"List.Filter.Fields.Episodes\", \"required\": true }"
  854. "}"
  855. "}",
  856. "\"List.Filter.Rule.MusicVideos\": {"
  857. "\"extends\": \"List.Filter.Rule\","
  858. "\"properties\": {"
  859. "\"field\": { \"$ref\": \"List.Filter.Fields.MusicVideos\", \"required\": true }"
  860. "}"
  861. "}",
  862. "\"List.Filter.Rule.Artists\": {"
  863. "\"extends\": \"List.Filter.Rule\","
  864. "\"properties\": {"
  865. "\"field\": { \"$ref\": \"List.Filter.Fields.Artists\", \"required\": true }"
  866. "}"
  867. "}",
  868. "\"List.Filter.Rule.Albums\": {"
  869. "\"extends\": \"List.Filter.Rule\","
  870. "\"properties\": {"
  871. "\"field\": { \"$ref\": \"List.Filter.Fields.Albums\", \"required\": true }"
  872. "}"
  873. "}",
  874. "\"List.Filter.Rule.Songs\": {"
  875. "\"extends\": \"List.Filter.Rule\","
  876. "\"properties\": {"
  877. "\"field\": { \"$ref\": \"List.Filter.Fields.Songs\", \"required\": true }"
  878. "}"
  879. "}",
  880. "\"List.Filter.Movies\": {"
  881. "\"type\": ["
  882. "{ \"type\": \"object\","
  883. "\"properties\": {"
  884. "\"and\": { \"type\": \"array\","
  885. "\"items\": { \"$ref\": \"List.Filter.Movies\" },"
  886. "\"minItems\": 1, \"required\": true"
  887. "}"
  888. "}"
  889. "},"
  890. "{ \"type\": \"object\","
  891. "\"properties\": {"
  892. "\"or\": { \"type\": \"array\","
  893. "\"items\": { \"$ref\": \"List.Filter.Movies\" },"
  894. "\"minItems\": 1, \"required\": true"
  895. "}"
  896. "}"
  897. "},"
  898. "{ \"$ref\": \"List.Filter.Rule.Movies\" }"
  899. "]"
  900. "}",
  901. "\"List.Filter.TVShows\": {"
  902. "\"type\": ["
  903. "{ \"type\": \"object\","
  904. "\"properties\": {"
  905. "\"and\": { \"type\": \"array\","
  906. "\"items\": { \"$ref\": \"List.Filter.TVShows\" },"
  907. "\"minItems\": 1, \"required\": true"
  908. "}"
  909. "}"
  910. "},"
  911. "{ \"type\": \"object\","
  912. "\"properties\": {"
  913. "\"or\": { \"type\": \"array\","
  914. "\"items\": { \"$ref\": \"List.Filter.TVShows\" },"
  915. "\"minItems\": 1, \"required\": true"
  916. "}"
  917. "}"
  918. "},"
  919. "{ \"$ref\": \"List.Filter.Rule.TVShows\" }"
  920. "]"
  921. "}",
  922. "\"List.Filter.Episodes\": {"
  923. "\"type\": ["
  924. "{ \"type\": \"object\","
  925. "\"properties\": {"
  926. "\"and\": { \"type\": \"array\","
  927. "\"items\": { \"$ref\": \"List.Filter.Episodes\" },"
  928. "\"minItems\": 1, \"required\": true"
  929. "}"
  930. "}"
  931. "},"
  932. "{ \"type\": \"object\","
  933. "\"properties\": {"
  934. "\"or\": { \"type\": \"array\","
  935. "\"items\": { \"$ref\": \"List.Filter.Episodes\" },"
  936. "\"minItems\": 1, \"required\": true"
  937. "}"
  938. "}"
  939. "},"
  940. "{ \"$ref\": \"List.Filter.Rule.Episodes\" }"
  941. "]"
  942. "}",
  943. "\"List.Filter.MusicVideos\": {"
  944. "\"type\": ["
  945. "{ \"type\": \"object\","
  946. "\"properties\": {"
  947. "\"and\": { \"type\": \"array\","
  948. "\"items\": { \"$ref\": \"List.Filter.MusicVideos\" },"
  949. "\"minItems\": 1, \"required\": true"
  950. "}"
  951. "}"
  952. "},"
  953. "{ \"type\": \"object\","
  954. "\"properties\": {"
  955. "\"or\": { \"type\": \"array\","
  956. "\"items\": { \"$ref\": \"List.Filter.MusicVideos\" },"
  957. "\"minItems\": 1, \"required\": true"
  958. "}"
  959. "}"
  960. "},"
  961. "{ \"$ref\": \"List.Filter.Rule.MusicVideos\" }"
  962. "]"
  963. "}",
  964. "\"List.Filter.Artists\": {"
  965. "\"type\": ["
  966. "{ \"type\": \"object\","
  967. "\"properties\": {"
  968. "\"and\": { \"type\": \"array\","
  969. "\"items\": { \"$ref\": \"List.Filter.Artists\" },"
  970. "\"minItems\": 1, \"required\": true"
  971. "}"
  972. "}"
  973. "},"
  974. "{ \"type\": \"object\","
  975. "\"properties\": {"
  976. "\"or\": { \"type\": \"array\","
  977. "\"items\": { \"$ref\": \"List.Filter.Artists\" },"
  978. "\"minItems\": 1, \"required\": true"
  979. "}"
  980. "}"
  981. "},"
  982. "{ \"$ref\": \"List.Filter.Rule.Artists\" }"
  983. "]"
  984. "}",
  985. "\"List.Filter.Albums\": {"
  986. "\"type\": ["
  987. "{ \"type\": \"object\","
  988. "\"properties\": {"
  989. "\"and\": { \"type\": \"array\","
  990. "\"items\": { \"$ref\": \"List.Filter.Albums\" },"
  991. "\"minItems\": 1, \"required\": true"
  992. "}"
  993. "}"
  994. "},"
  995. "{ \"type\": \"object\","
  996. "\"properties\": {"
  997. "\"or\": { \"type\": \"array\","
  998. "\"items\": { \"$ref\": \"List.Filter.Albums\" },"
  999. "\"minItems\": 1, \"required\": true"
  1000. "}"
  1001. "}"
  1002. "},"
  1003. "{ \"$ref\": \"List.Filter.Rule.Albums\" }"
  1004. "]"
  1005. "}",
  1006. "\"List.Filter.Songs\": {"
  1007. "\"type\": ["
  1008. "{ \"type\": \"object\","
  1009. "\"properties\": {"
  1010. "\"and\": { \"type\": \"array\","
  1011. "\"items\": { \"$ref\": \"List.Filter.Songs\" },"
  1012. "\"minItems\": 1, \"required\": true"
  1013. "}"
  1014. "}"
  1015. "},"
  1016. "{ \"type\": \"object\","
  1017. "\"properties\": {"
  1018. "\"or\": { \"type\": \"array\","
  1019. "\"items\": { \"$ref\": \"List.Filter.Songs\" },"
  1020. "\"minItems\": 1, \"required\": true"
  1021. "}"
  1022. "}"
  1023. "},"
  1024. "{ \"$ref\": \"List.Filter.Rule.Songs\" }"
  1025. "]"
  1026. "}",
  1027. "\"List.Item.Base\": {"
  1028. "\"extends\": [ \"Video.Details.File\", \"Audio.Details.Media\" ],"
  1029. "\"properties\": {"
  1030. "\"id\": { \"$ref\": \"Library.Id\" },"
  1031. "\"type\": { \"type\": \"string\", \"enum\": [ \"unknown\", \"movie\", \"episode\", \"musicvideo\", \"song\", \"picture\", \"channel\" ] },"
  1032. "\"albumartist\": { \"$ref\": \"Array.String\" },"
  1033. "\"album\": { \"type\": \"string\" },"
  1034. "\"track\": { \"type\": \"integer\" },"
  1035. "\"duration\": { \"type\": \"integer\" },"
  1036. "\"comment\": { \"type\": \"string\" },"
  1037. "\"lyrics\": { \"type\": \"string\" },"
  1038. "\"musicbrainztrackid\": { \"type\": \"string\" },"
  1039. "\"musicbrainzartistid\": { \"type\": \"string\" },"
  1040. "\"trailer\": { \"type\": \"string\" },"
  1041. "\"tagline\": { \"type\": \"string\" },"
  1042. "\"plotoutline\": { \"type\": \"string\" },"
  1043. "\"originaltitle\": { \"type\": \"string\" },"
  1044. "\"writer\": { \"$ref\": \"Array.String\" },"
  1045. "\"studio\": { \"$ref\": \"Array.String\" },"
  1046. "\"mpaa\": { \"type\": \"string\" },"
  1047. "\"cast\": { \"$ref\": \"Video.Cast\" },"
  1048. "\"country\": { \"$ref\": \"Array.String\" },"
  1049. "\"imdbnumber\": { \"type\": \"string\" },"
  1050. "\"premiered\": { \"type\": \"string\" },"
  1051. "\"productioncode\": { \"type\": \"string\" },"
  1052. "\"set\": { \"type\": \"string\" },"
  1053. "\"showlink\": { \"$ref\": \"Array.String\" },"
  1054. "\"top250\": { \"type\": \"integer\" },"
  1055. "\"votes\": { \"type\": \"string\" },"
  1056. "\"firstaired\": { \"type\": \"string\" },"
  1057. "\"season\": { \"type\": \"integer\" },"
  1058. "\"episode\": { \"type\": \"integer\" },"
  1059. "\"showtitle\": { \"type\": \"string\" },"
  1060. "\"albumid\": { \"$ref\": \"Library.Id\" },"
  1061. "\"setid\": { \"$ref\": \"Library.Id\" },"
  1062. "\"tvshowid\": { \"$ref\": \"Library.Id\" },"
  1063. "\"watchedepisodes\": { \"type\": \"integer\" },"
  1064. "\"disc\": { \"type\": \"integer\" },"
  1065. "\"tag\": { \"$ref\": \"Array.String\" },"
  1066. "\"albumartistid\": { \"$ref\": \"Array.Integer\" },"
  1067. "\"uniqueid\": { \"type\": \"object\", \"additionalProperties\": { \"type\": \"string\", \"minLength\": 1 } },"
  1068. "\"episodeguide\": { \"type\": \"string\" },"
  1069. "\"sorttitle\": { \"type\": \"string\" },"
  1070. "\"description\": { \"type\": \"string\" },"
  1071. "\"theme\": { \"$ref\": \"Array.String\" },"
  1072. "\"mood\": { \"$ref\": \"Array.String\" },"
  1073. "\"style\": { \"$ref\": \"Array.String\" },"
  1074. "\"albumlabel\": { \"type\": \"string\" }"
  1075. "}"
  1076. "}",
  1077. "\"List.Fields.All\": {"
  1078. "\"extends\": \"Item.Fields.Base\","
  1079. "\"items\": { \"type\": \"string\","
  1080. "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\", \"rating\","
  1081. "\"album\", \"track\", \"duration\", \"comment\", \"lyrics\", \"musicbrainztrackid\","
  1082. "\"musicbrainzartistid\", \"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
  1083. "\"playcount\", \"fanart\", \"director\", \"trailer\", \"tagline\", \"plot\","
  1084. "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
  1085. "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
  1086. "\"runtime\", \"set\", \"showlink\", \"streamdetails\", \"top250\", \"votes\","
  1087. "\"firstaired\", \"season\", \"episode\", \"showtitle\", \"thumbnail\", \"file\","
  1088. "\"resume\", \"artistid\", \"albumid\", \"tvshowid\", \"setid\", \"watchedepisodes\","
  1089. "\"disc\", \"tag\", \"art\", \"genreid\", \"displayartist\", \"albumartistid\","
  1090. "\"description\", \"theme\", \"mood\", \"style\", \"albumlabel\", \"sorttitle\","
  1091. "\"episodeguide\", \"uniqueid\", \"dateadded\", \"channel\", \"channeltype\", \"hidden\","
  1092. "\"locked\", \"channelnumber\", \"starttime\", \"endtime\" ]"
  1093. "}"
  1094. "}",
  1095. "\"List.Item.All\": {"
  1096. "\"extends\": \"List.Item.Base\","
  1097. "\"properties\": {"
  1098. "\"channel\": { \"type\": \"string\" },"
  1099. "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\" },"
  1100. "\"hidden\": { \"type\": \"boolean\" },"
  1101. "\"locked\": { \"type\": \"boolean\" },"
  1102. "\"channelnumber\": { \"type\": \"integer\" },"
  1103. "\"starttime\": { \"type\": \"string\" },"
  1104. "\"endtime\": { \"type\": \"string\" }"
  1105. "}"
  1106. "}",
  1107. "\"List.Fields.Files\": {"
  1108. "\"extends\": \"Item.Fields.Base\","
  1109. "\"items\": { \"type\": \"string\","
  1110. "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\", \"rating\","
  1111. "\"album\", \"track\", \"duration\", \"comment\", \"lyrics\", \"musicbrainztrackid\","
  1112. "\"musicbrainzartistid\", \"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
  1113. "\"playcount\", \"fanart\", \"director\", \"trailer\", \"tagline\", \"plot\","
  1114. "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
  1115. "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
  1116. "\"runtime\", \"set\", \"showlink\", \"streamdetails\", \"top250\", \"votes\","
  1117. "\"firstaired\", \"season\", \"episode\", \"showtitle\", \"thumbnail\", \"file\","
  1118. "\"resume\", \"artistid\", \"albumid\", \"tvshowid\", \"setid\", \"watchedepisodes\","
  1119. "\"disc\", \"tag\", \"art\", \"genreid\", \"displayartist\", \"albumartistid\","
  1120. "\"description\", \"theme\", \"mood\", \"style\", \"albumlabel\", \"sorttitle\","
  1121. "\"episodeguide\", \"uniqueid\", \"dateadded\", \"size\", \"lastmodified\", \"mimetype\" ]"
  1122. "}"
  1123. "}",
  1124. "\"List.Item.File\": {"
  1125. "\"extends\": \"List.Item.Base\","
  1126. "\"properties\": {"
  1127. "\"file\": { \"type\": \"string\", \"required\": true },"
  1128. "\"filetype\": { \"type\": \"string\", \"enum\": [ \"file\", \"directory\" ], \"required\": true },"
  1129. "\"size\": { \"type\": \"integer\", \"description\": \"Size of the file in bytes\" },"
  1130. "\"lastmodified\": { \"type\": \"string\" },"
  1131. "\"mimetype\": { \"type\": \"string\" }"
  1132. "}"
  1133. "}",
  1134. "\"List.Items.Sources\": {"
  1135. "\"type\": \"array\","
  1136. "\"items\": {"
  1137. "\"extends\": \"Item.Details.Base\","
  1138. "\"properties\": {"
  1139. "\"fileā€¦

Large files files are truncated, but you can click here to view the full file