plex-api-client 0.8.1__tar.gz → 0.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/PKG-INFO +13 -8
  2. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/README.md +12 -7
  3. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/setup.py +1 -1
  4. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/library.py +2 -2
  5. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/__init__.py +3 -1
  6. plex-api-client-0.9.0/src/plex_api/models/errors/gethomedata.py +32 -0
  7. plex-api-client-0.9.0/src/plex_api/models/errors/getwatchlist.py +32 -0
  8. plex-api-client-0.9.0/src/plex_api/models/operations/__init__.py +66 -0
  9. plex-api-client-0.9.0/src/plex_api/models/operations/gethomedata.py +36 -0
  10. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getlibrary.py +2 -2
  11. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getlibraryitems.py +2 -2
  12. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getpin.py +3 -1
  13. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getrecentlyadded.py +2 -2
  14. plex-api-client-0.9.0/src/plex_api/models/operations/gettoken.py +94 -0
  15. plex-api-client-0.9.0/src/plex_api/models/operations/getwatchlist.py +154 -0
  16. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/plex.py +76 -3
  17. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/sdk.py +7 -3
  18. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/sdkconfiguration.py +3 -3
  19. plex-api-client-0.9.0/src/plex_api/watchlist.py +88 -0
  20. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api_client.egg-info/PKG-INFO +13 -8
  21. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api_client.egg-info/SOURCES.txt +5 -0
  22. plex-api-client-0.8.1/src/plex_api/models/operations/__init__.py +0 -64
  23. plex-api-client-0.8.1/src/plex_api/models/operations/gettoken.py +0 -46
  24. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/LICENSE.md +0 -0
  25. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/setup.cfg +0 -0
  26. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/__init__.py +0 -0
  27. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/_hooks/__init__.py +0 -0
  28. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/_hooks/registration.py +0 -0
  29. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/_hooks/sdkhooks.py +0 -0
  30. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/_hooks/types.py +0 -0
  31. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/activities.py +0 -0
  32. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/authentication.py +0 -0
  33. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/butler.py +0 -0
  34. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/hubs.py +0 -0
  35. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/log.py +0 -0
  36. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/media.py +0 -0
  37. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/__init__.py +0 -0
  38. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/components/__init__.py +0 -0
  39. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/components/security.py +0 -0
  40. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/addplaylistcontents.py +0 -0
  41. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/applyupdates.py +0 -0
  42. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/cancelserveractivities.py +0 -0
  43. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/checkforupdates.py +0 -0
  44. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/clearplaylistcontents.py +0 -0
  45. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/createplaylist.py +0 -0
  46. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/deletelibrary.py +0 -0
  47. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/deleteplaylist.py +0 -0
  48. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/enablepapertrail.py +0 -0
  49. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getavailableclients.py +0 -0
  50. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getbutlertasks.py +0 -0
  51. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getdevices.py +0 -0
  52. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getfilehash.py +0 -0
  53. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getglobalhubs.py +0 -0
  54. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getlibraries.py +0 -0
  55. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getlibrary.py +0 -0
  56. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getlibraryhubs.py +0 -0
  57. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getlibraryitems.py +0 -0
  58. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getmetadata.py +0 -0
  59. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getmetadatachildren.py +0 -0
  60. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getmyplexaccount.py +0 -0
  61. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getondeck.py +0 -0
  62. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getpin.py +0 -0
  63. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getplaylist.py +0 -0
  64. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getplaylistcontents.py +0 -0
  65. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getplaylists.py +0 -0
  66. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getrecentlyadded.py +0 -0
  67. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getresizedphoto.py +0 -0
  68. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getsearchresults.py +0 -0
  69. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getserveractivities.py +0 -0
  70. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getservercapabilities.py +0 -0
  71. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getserveridentity.py +0 -0
  72. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getserverlist.py +0 -0
  73. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getserverpreferences.py +0 -0
  74. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getsessionhistory.py +0 -0
  75. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getsessions.py +0 -0
  76. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getsourceconnectioninformation.py +0 -0
  77. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getstatistics.py +0 -0
  78. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/gettimeline.py +0 -0
  79. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/gettoken.py +0 -0
  80. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/gettranscodesessions.py +0 -0
  81. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/gettransienttoken.py +0 -0
  82. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/getupdatestatus.py +0 -0
  83. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/logline.py +0 -0
  84. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/logmultiline.py +0 -0
  85. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/markplayed.py +0 -0
  86. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/markunplayed.py +0 -0
  87. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/performsearch.py +0 -0
  88. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/performvoicesearch.py +0 -0
  89. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/refreshlibrary.py +0 -0
  90. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/sdkerror.py +0 -0
  91. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/searchlibrary.py +0 -0
  92. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/startalltasks.py +0 -0
  93. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/starttask.py +0 -0
  94. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/startuniversaltranscode.py +0 -0
  95. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/stopalltasks.py +0 -0
  96. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/stoptask.py +0 -0
  97. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/stoptranscodesession.py +0 -0
  98. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/updateplaylist.py +0 -0
  99. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/updateplayprogress.py +0 -0
  100. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/errors/uploadplaylist.py +0 -0
  101. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/internal/__init__.py +0 -0
  102. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/internal/globals.py +0 -0
  103. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/addplaylistcontents.py +0 -0
  104. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/applyupdates.py +0 -0
  105. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/cancelserveractivities.py +0 -0
  106. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/checkforupdates.py +0 -0
  107. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/clearplaylistcontents.py +0 -0
  108. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/createplaylist.py +0 -0
  109. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/deletelibrary.py +0 -0
  110. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/deleteplaylist.py +0 -0
  111. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/enablepapertrail.py +0 -0
  112. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getavailableclients.py +0 -0
  113. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getbutlertasks.py +0 -0
  114. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getdevices.py +0 -0
  115. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getfilehash.py +0 -0
  116. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getglobalhubs.py +0 -0
  117. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getlibraries.py +0 -0
  118. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getlibraryhubs.py +0 -0
  119. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getmetadata.py +0 -0
  120. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getmetadatachildren.py +0 -0
  121. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getmyplexaccount.py +0 -0
  122. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getondeck.py +0 -0
  123. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getplaylist.py +0 -0
  124. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getplaylistcontents.py +0 -0
  125. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getplaylists.py +0 -0
  126. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getresizedphoto.py +0 -0
  127. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getsearchresults.py +0 -0
  128. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getserveractivities.py +0 -0
  129. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getservercapabilities.py +0 -0
  130. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getserveridentity.py +0 -0
  131. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getserverlist.py +0 -0
  132. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getserverpreferences.py +0 -0
  133. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getsessionhistory.py +0 -0
  134. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getsessions.py +0 -0
  135. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getsourceconnectioninformation.py +0 -0
  136. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getstatistics.py +0 -0
  137. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/gettimeline.py +0 -0
  138. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/gettranscodesessions.py +0 -0
  139. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/gettransienttoken.py +0 -0
  140. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/getupdatestatus.py +0 -0
  141. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/logline.py +0 -0
  142. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/logmultiline.py +0 -0
  143. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/markplayed.py +0 -0
  144. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/markunplayed.py +0 -0
  145. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/performsearch.py +0 -0
  146. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/performvoicesearch.py +0 -0
  147. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/refreshlibrary.py +0 -0
  148. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/searchlibrary.py +0 -0
  149. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/startalltasks.py +0 -0
  150. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/starttask.py +0 -0
  151. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/startuniversaltranscode.py +0 -0
  152. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/stopalltasks.py +0 -0
  153. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/stoptask.py +0 -0
  154. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/stoptranscodesession.py +0 -0
  155. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/updateplaylist.py +0 -0
  156. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/updateplayprogress.py +0 -0
  157. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/models/operations/uploadplaylist.py +0 -0
  158. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/playlists.py +0 -0
  159. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/search.py +0 -0
  160. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/server.py +0 -0
  161. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/sessions.py +0 -0
  162. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/statistics.py +0 -0
  163. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/updater.py +0 -0
  164. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/utils/__init__.py +0 -0
  165. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/utils/retries.py +0 -0
  166. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/utils/utils.py +0 -0
  167. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api/video.py +0 -0
  168. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api_client.egg-info/dependency_links.txt +0 -0
  169. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api_client.egg-info/requires.txt +0 -0
  170. {plex-api-client-0.8.1 → plex-api-client-0.9.0}/src/plex_api_client.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: plex-api-client
3
- Version: 0.8.1
3
+ Version: 0.9.0
4
4
  Summary: Python Client SDK Generated by Speakeasy
5
5
  Home-page: https://github.com/LukeHagar/plexpy.git
6
6
  Author: LukeHagar
@@ -83,6 +83,12 @@ Description: # plexpy
83
83
  * [start_task](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/butler/README.md#start_task) - Start a single Butler task
84
84
  * [stop_task](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/butler/README.md#stop_task) - Stop a single Butler task
85
85
 
86
+ ### [plex](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/plex/README.md)
87
+
88
+ * [get_home_data](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/plex/README.md#get_home_data) - Get Plex Home Data
89
+ * [get_pin](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/plex/README.md#get_pin) - Get a Pin
90
+ * [get_token](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/plex/README.md#get_token) - Get Access Token
91
+
86
92
  ### [hubs](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/hubs/README.md)
87
93
 
88
94
  * [get_global_hubs](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/hubs/README.md#get_global_hubs) - Get Global Hubs
@@ -114,11 +120,6 @@ Description: # plexpy
114
120
  * [log_multi_line](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/log/README.md#log_multi_line) - Logging a multi-line message
115
121
  * [enable_paper_trail](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/log/README.md#enable_paper_trail) - Enabling Papertrail
116
122
 
117
- ### [plex](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/plex/README.md)
118
-
119
- * [get_pin](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/plex/README.md#get_pin) - Get a Pin
120
- * [get_token](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/plex/README.md#get_token) - Get Access Token
121
-
122
123
  ### [playlists](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/playlists/README.md)
123
124
 
124
125
  * [create_playlist](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/playlists/README.md#create_playlist) - Create a Playlist
@@ -152,6 +153,10 @@ Description: # plexpy
152
153
  * [get_update_status](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/updater/README.md#get_update_status) - Querying status of updates
153
154
  * [check_for_updates](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/updater/README.md#check_for_updates) - Checking for updates
154
155
  * [apply_updates](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/updater/README.md#apply_updates) - Apply Updates
156
+
157
+ ### [watchlist](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/watchlist/README.md)
158
+
159
+ * [get_watchlist](https://github.com/LukeHagar/plexpy/blob/master/docs/sdks/watchlist/README.md#get_watchlist) - Get User Watchlist
155
160
  <!-- End Available Resources and Operations [operations] -->
156
161
 
157
162
  <!-- Start Error Handling [errors] -->
@@ -263,7 +268,7 @@ Description: # plexpy
263
268
  )
264
269
 
265
270
 
266
- res = s.plex.get_pin(strong=False, x_plex_client_identifier='Postman', server_url="https://plex.tv/api/v2")
271
+ res = s.plex.get_pin(x_plex_product='Postman', strong=False, x_plex_client_identifier='Postman', server_url="https://plex.tv/api/v2")
267
272
 
268
273
  if res.object is not None:
269
274
  # handle response
@@ -348,7 +353,7 @@ Description: # plexpy
348
353
  )
349
354
 
350
355
 
351
- res = s.plex.get_pin(strong=False, x_plex_client_identifier='Postman')
356
+ res = s.plex.get_pin(x_plex_product='Postman', strong=False, x_plex_client_identifier='Postman')
352
357
 
353
358
  if res.object is not None:
354
359
  # handle response
@@ -76,6 +76,12 @@ if res.object is not None:
76
76
  * [start_task](docs/sdks/butler/README.md#start_task) - Start a single Butler task
77
77
  * [stop_task](docs/sdks/butler/README.md#stop_task) - Stop a single Butler task
78
78
 
79
+ ### [plex](docs/sdks/plex/README.md)
80
+
81
+ * [get_home_data](docs/sdks/plex/README.md#get_home_data) - Get Plex Home Data
82
+ * [get_pin](docs/sdks/plex/README.md#get_pin) - Get a Pin
83
+ * [get_token](docs/sdks/plex/README.md#get_token) - Get Access Token
84
+
79
85
  ### [hubs](docs/sdks/hubs/README.md)
80
86
 
81
87
  * [get_global_hubs](docs/sdks/hubs/README.md#get_global_hubs) - Get Global Hubs
@@ -107,11 +113,6 @@ if res.object is not None:
107
113
  * [log_multi_line](docs/sdks/log/README.md#log_multi_line) - Logging a multi-line message
108
114
  * [enable_paper_trail](docs/sdks/log/README.md#enable_paper_trail) - Enabling Papertrail
109
115
 
110
- ### [plex](docs/sdks/plex/README.md)
111
-
112
- * [get_pin](docs/sdks/plex/README.md#get_pin) - Get a Pin
113
- * [get_token](docs/sdks/plex/README.md#get_token) - Get Access Token
114
-
115
116
  ### [playlists](docs/sdks/playlists/README.md)
116
117
 
117
118
  * [create_playlist](docs/sdks/playlists/README.md#create_playlist) - Create a Playlist
@@ -145,6 +146,10 @@ if res.object is not None:
145
146
  * [get_update_status](docs/sdks/updater/README.md#get_update_status) - Querying status of updates
146
147
  * [check_for_updates](docs/sdks/updater/README.md#check_for_updates) - Checking for updates
147
148
  * [apply_updates](docs/sdks/updater/README.md#apply_updates) - Apply Updates
149
+
150
+ ### [watchlist](docs/sdks/watchlist/README.md)
151
+
152
+ * [get_watchlist](docs/sdks/watchlist/README.md#get_watchlist) - Get User Watchlist
148
153
  <!-- End Available Resources and Operations [operations] -->
149
154
 
150
155
  <!-- Start Error Handling [errors] -->
@@ -256,7 +261,7 @@ s = plex_api.PlexAPI(
256
261
  )
257
262
 
258
263
 
259
- res = s.plex.get_pin(strong=False, x_plex_client_identifier='Postman', server_url="https://plex.tv/api/v2")
264
+ res = s.plex.get_pin(x_plex_product='Postman', strong=False, x_plex_client_identifier='Postman', server_url="https://plex.tv/api/v2")
260
265
 
261
266
  if res.object is not None:
262
267
  # handle response
@@ -341,7 +346,7 @@ s = plex_api.PlexAPI(
341
346
  )
342
347
 
343
348
 
344
- res = s.plex.get_pin(strong=False, x_plex_client_identifier='Postman')
349
+ res = s.plex.get_pin(x_plex_product='Postman', strong=False, x_plex_client_identifier='Postman')
345
350
 
346
351
  if res.object is not None:
347
352
  # handle response
@@ -19,7 +19,7 @@ except FileNotFoundError:
19
19
 
20
20
  setuptools.setup(
21
21
  name='plex-api-client',
22
- version='0.8.1',
22
+ version='0.9.0',
23
23
  author='LukeHagar',
24
24
  description='Python Client SDK Generated by Speakeasy',
25
25
  url='https://github.com/LukeHagar/plexpy.git',
@@ -5,7 +5,7 @@ from .sdkconfiguration import SDKConfiguration
5
5
  from plex_api import utils
6
6
  from plex_api._hooks import AfterErrorContext, AfterSuccessContext, BeforeRequestContext, HookContext
7
7
  from plex_api.models import errors, operations
8
- from typing import Optional
8
+ from typing import Any, Optional
9
9
 
10
10
  class Library:
11
11
  r"""API Calls interacting with Plex Media Server Libraries"""
@@ -393,7 +393,7 @@ class Library:
393
393
 
394
394
 
395
395
 
396
- def get_library_items(self, section_id: int, tag: operations.Tag) -> operations.GetLibraryItemsResponse:
396
+ def get_library_items(self, section_id: Any, tag: operations.Tag) -> operations.GetLibraryItemsResponse:
397
397
  r"""Get Library Items
398
398
  Fetches details from a specific section of the library identified by a section key and a tag. The tag parameter accepts the following values:
399
399
  - `all`: All items in the section.
@@ -14,6 +14,7 @@ from .getbutlertasks import *
14
14
  from .getdevices import *
15
15
  from .getfilehash import *
16
16
  from .getglobalhubs import *
17
+ from .gethomedata import *
17
18
  from .getlibraries import *
18
19
  from .getlibrary import *
19
20
  from .getlibraryhubs import *
@@ -43,6 +44,7 @@ from .gettoken import *
43
44
  from .gettranscodesessions import *
44
45
  from .gettransienttoken import *
45
46
  from .getupdatestatus import *
47
+ from .getwatchlist import *
46
48
  from .logline import *
47
49
  from .logmultiline import *
48
50
  from .markplayed import *
@@ -62,4 +64,4 @@ from .updateplaylist import *
62
64
  from .updateplayprogress import *
63
65
  from .uploadplaylist import *
64
66
 
65
- __all__ = ["AddPlaylistContentsErrors","AddPlaylistContentsResponseBody","ApplyUpdatesErrors","ApplyUpdatesResponseBody","CancelServerActivitiesErrors","CancelServerActivitiesResponseBody","CheckForUpdatesErrors","CheckForUpdatesResponseBody","ClearPlaylistContentsErrors","ClearPlaylistContentsResponseBody","CreatePlaylistErrors","CreatePlaylistResponseBody","DeleteLibraryErrors","DeleteLibraryResponseBody","DeletePlaylistErrors","DeletePlaylistResponseBody","EnablePaperTrailErrors","EnablePaperTrailResponseBody","Errors","GetAvailableClientsErrors","GetAvailableClientsResponseBody","GetButlerTasksErrors","GetButlerTasksResponseBody","GetDevicesErrors","GetDevicesResponseBody","GetFileHashErrors","GetFileHashResponseBody","GetGlobalHubsErrors","GetGlobalHubsResponseBody","GetLibrariesErrors","GetLibrariesResponseBody","GetLibraryErrors","GetLibraryHubsErrors","GetLibraryHubsResponseBody","GetLibraryItemsErrors","GetLibraryItemsResponseBody","GetLibraryResponseBody","GetMetadataChildrenErrors","GetMetadataChildrenResponseBody","GetMetadataErrors","GetMetadataResponseBody","GetMyPlexAccountErrors","GetMyPlexAccountResponseBody","GetOnDeckErrors","GetOnDeckResponseBody","GetPinErrors","GetPinResponseBody","GetPlaylistContentsErrors","GetPlaylistContentsResponseBody","GetPlaylistErrors","GetPlaylistResponseBody","GetPlaylistsErrors","GetPlaylistsResponseBody","GetRecentlyAddedErrors","GetRecentlyAddedResponseBody","GetResizedPhotoErrors","GetResizedPhotoResponseBody","GetSearchResultsErrors","GetSearchResultsResponseBody","GetServerActivitiesErrors","GetServerActivitiesResponseBody","GetServerCapabilitiesResponseBody","GetServerIdentityErrors","GetServerIdentityResponseBody","GetServerListErrors","GetServerListResponseBody","GetServerPreferencesErrors","GetServerPreferencesResponseBody","GetSessionHistoryErrors","GetSessionHistoryResponseBody","GetSessionsErrors","GetSessionsResponseBody","GetSourceConnectionInformationErrors","GetSourceConnectionInformationResponseBody","GetStatisticsErrors","GetStatisticsResponseBody","GetTimelineErrors","GetTimelineResponseBody","GetTokenErrors","GetTokenResponseBody","GetTranscodeSessionsErrors","GetTranscodeSessionsResponseBody","GetTransientTokenErrors","GetTransientTokenResponseBody","GetUpdateStatusErrors","GetUpdateStatusResponseBody","LogLineErrors","LogLineResponseBody","LogMultiLineErrors","LogMultiLineResponseBody","MarkPlayedErrors","MarkPlayedResponseBody","MarkUnplayedErrors","MarkUnplayedResponseBody","PerformSearchErrors","PerformSearchResponseBody","PerformVoiceSearchErrors","PerformVoiceSearchResponseBody","RefreshLibraryErrors","RefreshLibraryResponseBody","SDKError","SearchLibraryErrors","SearchLibraryResponseBody","StartAllTasksErrors","StartAllTasksResponseBody","StartTaskErrors","StartTaskResponseBody","StartUniversalTranscodeErrors","StartUniversalTranscodeResponseBody","StopAllTasksErrors","StopAllTasksResponseBody","StopTaskErrors","StopTaskResponseBody","StopTranscodeSessionErrors","StopTranscodeSessionResponseBody","UpdatePlayProgressErrors","UpdatePlayProgressResponseBody","UpdatePlaylistErrors","UpdatePlaylistResponseBody","UploadPlaylistErrors","UploadPlaylistResponseBody"]
67
+ __all__ = ["AddPlaylistContentsErrors","AddPlaylistContentsResponseBody","ApplyUpdatesErrors","ApplyUpdatesResponseBody","CancelServerActivitiesErrors","CancelServerActivitiesResponseBody","CheckForUpdatesErrors","CheckForUpdatesResponseBody","ClearPlaylistContentsErrors","ClearPlaylistContentsResponseBody","CreatePlaylistErrors","CreatePlaylistResponseBody","DeleteLibraryErrors","DeleteLibraryResponseBody","DeletePlaylistErrors","DeletePlaylistResponseBody","EnablePaperTrailErrors","EnablePaperTrailResponseBody","Errors","GetAvailableClientsErrors","GetAvailableClientsResponseBody","GetButlerTasksErrors","GetButlerTasksResponseBody","GetDevicesErrors","GetDevicesResponseBody","GetFileHashErrors","GetFileHashResponseBody","GetGlobalHubsErrors","GetGlobalHubsResponseBody","GetHomeDataErrors","GetHomeDataResponseBody","GetLibrariesErrors","GetLibrariesResponseBody","GetLibraryErrors","GetLibraryHubsErrors","GetLibraryHubsResponseBody","GetLibraryItemsErrors","GetLibraryItemsResponseBody","GetLibraryResponseBody","GetMetadataChildrenErrors","GetMetadataChildrenResponseBody","GetMetadataErrors","GetMetadataResponseBody","GetMyPlexAccountErrors","GetMyPlexAccountResponseBody","GetOnDeckErrors","GetOnDeckResponseBody","GetPinErrors","GetPinResponseBody","GetPlaylistContentsErrors","GetPlaylistContentsResponseBody","GetPlaylistErrors","GetPlaylistResponseBody","GetPlaylistsErrors","GetPlaylistsResponseBody","GetRecentlyAddedErrors","GetRecentlyAddedResponseBody","GetResizedPhotoErrors","GetResizedPhotoResponseBody","GetSearchResultsErrors","GetSearchResultsResponseBody","GetServerActivitiesErrors","GetServerActivitiesResponseBody","GetServerCapabilitiesResponseBody","GetServerIdentityErrors","GetServerIdentityResponseBody","GetServerListErrors","GetServerListResponseBody","GetServerPreferencesErrors","GetServerPreferencesResponseBody","GetSessionHistoryErrors","GetSessionHistoryResponseBody","GetSessionsErrors","GetSessionsResponseBody","GetSourceConnectionInformationErrors","GetSourceConnectionInformationResponseBody","GetStatisticsErrors","GetStatisticsResponseBody","GetTimelineErrors","GetTimelineResponseBody","GetTokenErrors","GetTokenResponseBody","GetTranscodeSessionsErrors","GetTranscodeSessionsResponseBody","GetTransientTokenErrors","GetTransientTokenResponseBody","GetUpdateStatusErrors","GetUpdateStatusResponseBody","GetWatchlistErrors","GetWatchlistResponseBody","LogLineErrors","LogLineResponseBody","LogMultiLineErrors","LogMultiLineResponseBody","MarkPlayedErrors","MarkPlayedResponseBody","MarkUnplayedErrors","MarkUnplayedResponseBody","PerformSearchErrors","PerformSearchResponseBody","PerformVoiceSearchErrors","PerformVoiceSearchResponseBody","RefreshLibraryErrors","RefreshLibraryResponseBody","SDKError","SearchLibraryErrors","SearchLibraryResponseBody","StartAllTasksErrors","StartAllTasksResponseBody","StartTaskErrors","StartTaskResponseBody","StartUniversalTranscodeErrors","StartUniversalTranscodeResponseBody","StopAllTasksErrors","StopAllTasksResponseBody","StopTaskErrors","StopTaskResponseBody","StopTranscodeSessionErrors","StopTranscodeSessionResponseBody","UpdatePlayProgressErrors","UpdatePlayProgressResponseBody","UpdatePlaylistErrors","UpdatePlaylistResponseBody","UploadPlaylistErrors","UploadPlaylistResponseBody"]
@@ -0,0 +1,32 @@
1
+ """Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ import dataclasses
5
+ import requests as requests_http
6
+ from dataclasses_json import Undefined, dataclass_json
7
+ from plex_api import utils
8
+ from typing import List, Optional
9
+
10
+
11
+ @dataclass_json(undefined=Undefined.EXCLUDE)
12
+ @dataclasses.dataclass
13
+ class GetHomeDataErrors:
14
+ code: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('code'), 'exclude': lambda f: f is None }})
15
+ message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('message'), 'exclude': lambda f: f is None }})
16
+ status: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }})
17
+
18
+
19
+
20
+
21
+ @dataclass_json(undefined=Undefined.EXCLUDE)
22
+
23
+ @dataclasses.dataclass
24
+ class GetHomeDataResponseBody(Exception):
25
+ r"""Unauthorized - Returned if the X-Plex-Token is missing from the header or query."""
26
+ errors: Optional[List[GetHomeDataErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errors'), 'exclude': lambda f: f is None }})
27
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'exclude': lambda f: True }})
28
+ r"""Raw HTTP response; suitable for custom response parsing"""
29
+
30
+
31
+ def __str__(self) -> str:
32
+ return utils.marshal_json(self, type(self))
@@ -0,0 +1,32 @@
1
+ """Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ import dataclasses
5
+ import requests as requests_http
6
+ from dataclasses_json import Undefined, dataclass_json
7
+ from plex_api import utils
8
+ from typing import List, Optional
9
+
10
+
11
+ @dataclass_json(undefined=Undefined.EXCLUDE)
12
+ @dataclasses.dataclass
13
+ class GetWatchlistErrors:
14
+ code: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('code'), 'exclude': lambda f: f is None }})
15
+ message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('message'), 'exclude': lambda f: f is None }})
16
+ status: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }})
17
+
18
+
19
+
20
+
21
+ @dataclass_json(undefined=Undefined.EXCLUDE)
22
+
23
+ @dataclasses.dataclass
24
+ class GetWatchlistResponseBody(Exception):
25
+ r"""Unauthorized - Returned if the X-Plex-Token is missing from the header or query."""
26
+ errors: Optional[List[GetWatchlistErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errors'), 'exclude': lambda f: f is None }})
27
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'exclude': lambda f: True }})
28
+ r"""Raw HTTP response; suitable for custom response parsing"""
29
+
30
+
31
+ def __str__(self) -> str:
32
+ return utils.marshal_json(self, type(self))
@@ -0,0 +1,66 @@
1
+ """Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
2
+
3
+ from .addplaylistcontents import *
4
+ from .applyupdates import *
5
+ from .cancelserveractivities import *
6
+ from .checkforupdates import *
7
+ from .clearplaylistcontents import *
8
+ from .createplaylist import *
9
+ from .deletelibrary import *
10
+ from .deleteplaylist import *
11
+ from .enablepapertrail import *
12
+ from .getavailableclients import *
13
+ from .getbutlertasks import *
14
+ from .getdevices import *
15
+ from .getfilehash import *
16
+ from .getglobalhubs import *
17
+ from .gethomedata import *
18
+ from .getlibraries import *
19
+ from .getlibrary import *
20
+ from .getlibraryhubs import *
21
+ from .getlibraryitems import *
22
+ from .getmetadata import *
23
+ from .getmetadatachildren import *
24
+ from .getmyplexaccount import *
25
+ from .getondeck import *
26
+ from .getpin import *
27
+ from .getplaylist import *
28
+ from .getplaylistcontents import *
29
+ from .getplaylists import *
30
+ from .getrecentlyadded import *
31
+ from .getresizedphoto import *
32
+ from .getsearchresults import *
33
+ from .getserveractivities import *
34
+ from .getservercapabilities import *
35
+ from .getserveridentity import *
36
+ from .getserverlist import *
37
+ from .getserverpreferences import *
38
+ from .getsessionhistory import *
39
+ from .getsessions import *
40
+ from .getsourceconnectioninformation import *
41
+ from .getstatistics import *
42
+ from .gettimeline import *
43
+ from .gettoken import *
44
+ from .gettranscodesessions import *
45
+ from .gettransienttoken import *
46
+ from .getupdatestatus import *
47
+ from .getwatchlist import *
48
+ from .logline import *
49
+ from .logmultiline import *
50
+ from .markplayed import *
51
+ from .markunplayed import *
52
+ from .performsearch import *
53
+ from .performvoicesearch import *
54
+ from .refreshlibrary import *
55
+ from .searchlibrary import *
56
+ from .startalltasks import *
57
+ from .starttask import *
58
+ from .startuniversaltranscode import *
59
+ from .stopalltasks import *
60
+ from .stoptask import *
61
+ from .stoptranscodesession import *
62
+ from .updateplaylist import *
63
+ from .updateplayprogress import *
64
+ from .uploadplaylist import *
65
+
66
+ __all__ = ["Account","Activity","AddPlaylistContentsMediaContainer","AddPlaylistContentsMetadata","AddPlaylistContentsRequest","AddPlaylistContentsResponse","AddPlaylistContentsResponseBody","ApplyUpdatesRequest","ApplyUpdatesResponse","ButlerTask","ButlerTasks","CancelServerActivitiesRequest","CancelServerActivitiesResponse","CheckForUpdatesRequest","CheckForUpdatesResponse","ClearPlaylistContentsRequest","ClearPlaylistContentsResponse","Context","Country","CreatePlaylistMediaContainer","CreatePlaylistMetadata","CreatePlaylistRequest","CreatePlaylistResponse","CreatePlaylistResponseBody","DeleteLibraryRequest","DeleteLibraryResponse","DeletePlaylistRequest","DeletePlaylistResponse","Device","Director","Directory","Download","EnablePaperTrailResponse","Field","FieldType","Filter","Force","GET_PIN_SERVERS","GET_TOKEN_SERVERS","GET_WATCHLIST_SERVERS","Genre","GetAvailableClientsMediaContainer","GetAvailableClientsResponse","GetAvailableClientsResponseBody","GetButlerTasksResponse","GetButlerTasksResponseBody","GetDevicesMediaContainer","GetDevicesResponse","GetDevicesResponseBody","GetFileHashRequest","GetFileHashResponse","GetGlobalHubsMediaContainer","GetGlobalHubsMetadata","GetGlobalHubsRequest","GetGlobalHubsResponse","GetGlobalHubsResponseBody","GetHomeDataResponse","GetHomeDataResponseBody","GetLibrariesDirectory","GetLibrariesLocation","GetLibrariesMediaContainer","GetLibrariesResponse","GetLibrariesResponseBody","GetLibraryDirectory","GetLibraryFilter","GetLibraryHubsCountry","GetLibraryHubsDirector","GetLibraryHubsGenre","GetLibraryHubsHub","GetLibraryHubsMedia","GetLibraryHubsMediaContainer","GetLibraryHubsMetadata","GetLibraryHubsPart","GetLibraryHubsRequest","GetLibraryHubsResponse","GetLibraryHubsResponseBody","GetLibraryHubsRole","GetLibraryHubsWriter","GetLibraryItemsCountry","GetLibraryItemsDirector","GetLibraryItemsGenre","GetLibraryItemsMedia","GetLibraryItemsMediaContainer","GetLibraryItemsMetadata","GetLibraryItemsPart","GetLibraryItemsRequest","GetLibraryItemsResponse","GetLibraryItemsResponseBody","GetLibraryItemsRole","GetLibraryItemsWriter","GetLibraryMediaContainer","GetLibraryRequest","GetLibraryResponse","GetLibraryResponseBody","GetLibraryType","GetMetadataChildrenDirectory","GetMetadataChildrenMediaContainer","GetMetadataChildrenMetadata","GetMetadataChildrenRequest","GetMetadataChildrenResponse","GetMetadataChildrenResponseBody","GetMetadataCountry","GetMetadataDirector","GetMetadataGenre","GetMetadataMedia","GetMetadataMediaContainer","GetMetadataMetadata","GetMetadataPart","GetMetadataRequest","GetMetadataResponse","GetMetadataResponseBody","GetMetadataRole","GetMetadataWriter","GetMyPlexAccountResponse","GetMyPlexAccountResponseBody","GetOnDeckGuids","GetOnDeckMedia","GetOnDeckMediaContainer","GetOnDeckMetadata","GetOnDeckPart","GetOnDeckResponse","GetOnDeckResponseBody","GetOnDeckStream","GetPinGlobals","GetPinRequest","GetPinResponse","GetPinResponseBody","GetPlaylistContentsCountry","GetPlaylistContentsDirector","GetPlaylistContentsGenre","GetPlaylistContentsMedia","GetPlaylistContentsMediaContainer","GetPlaylistContentsMetadata","GetPlaylistContentsPart","GetPlaylistContentsRequest","GetPlaylistContentsResponse","GetPlaylistContentsResponseBody","GetPlaylistContentsRole","GetPlaylistContentsWriter","GetPlaylistMediaContainer","GetPlaylistMetadata","GetPlaylistRequest","GetPlaylistResponse","GetPlaylistResponseBody","GetPlaylistsMediaContainer","GetPlaylistsMetadata","GetPlaylistsRequest","GetPlaylistsResponse","GetPlaylistsResponseBody","GetRecentlyAddedMediaContainer","GetRecentlyAddedMetadata","GetRecentlyAddedResponse","GetRecentlyAddedResponseBody","GetResizedPhotoRequest","GetResizedPhotoResponse","GetSearchResultsCountry","GetSearchResultsDirector","GetSearchResultsGenre","GetSearchResultsMedia","GetSearchResultsMediaContainer","GetSearchResultsMetadata","GetSearchResultsPart","GetSearchResultsRequest","GetSearchResultsResponse","GetSearchResultsResponseBody","GetSearchResultsRole","GetSearchResultsWriter","GetServerActivitiesMediaContainer","GetServerActivitiesResponse","GetServerActivitiesResponseBody","GetServerCapabilitiesResponse","GetServerCapabilitiesResponseBody","GetServerIdentityMediaContainer","GetServerIdentityResponse","GetServerIdentityResponseBody","GetServerListMediaContainer","GetServerListResponse","GetServerListResponseBody","GetServerListServer","GetServerPreferencesMediaContainer","GetServerPreferencesResponse","GetServerPreferencesResponseBody","GetSessionHistoryMediaContainer","GetSessionHistoryMetadata","GetSessionHistoryResponse","GetSessionHistoryResponseBody","GetSessionsMedia","GetSessionsMediaContainer","GetSessionsMetadata","GetSessionsPart","GetSessionsResponse","GetSessionsResponseBody","GetSessionsStream","GetSourceConnectionInformationRequest","GetSourceConnectionInformationResponse","GetStatisticsDevice","GetStatisticsMediaContainer","GetStatisticsRequest","GetStatisticsResponse","GetStatisticsResponseBody","GetTimelineRequest","GetTimelineResponse","GetTokenGlobals","GetTokenLocation","GetTokenRequest","GetTokenResponse","GetTokenResponseBody","GetTranscodeSessionsMediaContainer","GetTranscodeSessionsResponse","GetTranscodeSessionsResponseBody","GetTransientTokenQueryParamType","GetTransientTokenRequest","GetTransientTokenResponse","GetUpdateStatusMediaContainer","GetUpdateStatusResponse","GetUpdateStatusResponseBody","GetWatchlistRequest","GetWatchlistResponse","GetWatchlistResponseBody","Guids","Hub","Image","IncludeCollections","IncludeDetails","IncludeExternalMedia","Level","Libtype","Location","LogLineRequest","LogLineResponse","LogMultiLineResponse","MarkPlayedRequest","MarkPlayedResponse","MarkUnplayedRequest","MarkUnplayedResponse","Media","MediaContainer","Metadata","MinSize","MyPlex","OnlyTransient","Operator","Part","PathParamTaskName","PerformSearchRequest","PerformSearchResponse","PerformVoiceSearchRequest","PerformVoiceSearchResponse","Player","PlaylistType","Producer","Provider","QueryParamOnlyTransient","QueryParamSmart","QueryParamType","Ratings","RefreshLibraryRequest","RefreshLibraryResponse","Release","Role","Scope","SearchLibraryMediaContainer","SearchLibraryMetadata","SearchLibraryRequest","SearchLibraryResponse","SearchLibraryResponseBody","Server","Session","Setting","Skip","Smart","Sort","StartAllTasksResponse","StartTaskRequest","StartTaskResponse","StartUniversalTranscodeRequest","StartUniversalTranscodeResponse","State","StatisticsMedia","StopAllTasksResponse","StopTaskRequest","StopTaskResponse","StopTranscodeSessionRequest","StopTranscodeSessionResponse","Stream","Tag","TaskName","Tonight","TranscodeSession","Type","UpdatePlayProgressRequest","UpdatePlayProgressResponse","UpdatePlaylistRequest","UpdatePlaylistResponse","UploadPlaylistRequest","UploadPlaylistResponse","Upscale","User","Writer"]
@@ -0,0 +1,36 @@
1
+ """Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ import dataclasses
5
+ import requests as requests_http
6
+ from dataclasses_json import Undefined, dataclass_json
7
+ from plex_api import utils
8
+ from typing import Optional
9
+
10
+
11
+ @dataclass_json(undefined=Undefined.EXCLUDE)
12
+ @dataclasses.dataclass
13
+ class GetHomeDataResponseBody:
14
+ r"""Home Data"""
15
+ id: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id'), 'exclude': lambda f: f is None }})
16
+ name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name'), 'exclude': lambda f: f is None }})
17
+ guest_user_id: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('guestUserID'), 'exclude': lambda f: f is None }})
18
+ guest_user_uuid: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('guestUserUUID'), 'exclude': lambda f: f is None }})
19
+ guest_enabled: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('guestEnabled'), 'exclude': lambda f: f is None }})
20
+ subscription: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('subscription'), 'exclude': lambda f: f is None }})
21
+
22
+
23
+
24
+
25
+ @dataclasses.dataclass
26
+ class GetHomeDataResponse:
27
+ content_type: str = dataclasses.field()
28
+ r"""HTTP response content type for this operation"""
29
+ status_code: int = dataclasses.field()
30
+ r"""HTTP response status code for this operation"""
31
+ raw_response: requests_http.Response = dataclasses.field()
32
+ r"""Raw HTTP response; suitable for custom response parsing"""
33
+ object: Optional[GetHomeDataResponseBody] = dataclasses.field(default=None)
34
+ r"""Home Data"""
35
+
36
+
@@ -43,7 +43,7 @@ class GetLibraryDirectory:
43
43
 
44
44
  @dataclass_json(undefined=Undefined.EXCLUDE)
45
45
  @dataclasses.dataclass
46
- class Filter:
46
+ class GetLibraryFilter:
47
47
  filter_: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('filter'), 'exclude': lambda f: f is None }})
48
48
  filter_type: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('filterType'), 'exclude': lambda f: f is None }})
49
49
  key: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('key'), 'exclude': lambda f: f is None }})
@@ -84,7 +84,7 @@ class GetLibraryType:
84
84
  type: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
85
85
  title: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('title'), 'exclude': lambda f: f is None }})
86
86
  active: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('active'), 'exclude': lambda f: f is None }})
87
- filter_: Optional[List[Filter]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('Filter'), 'exclude': lambda f: f is None }})
87
+ filter_: Optional[List[GetLibraryFilter]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('Filter'), 'exclude': lambda f: f is None }})
88
88
  sort: Optional[List[Sort]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('Sort'), 'exclude': lambda f: f is None }})
89
89
  field: Optional[List[Field]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('Field'), 'exclude': lambda f: f is None }})
90
90
 
@@ -7,7 +7,7 @@ from dataclasses_json import Undefined, dataclass_json
7
7
  from datetime import date
8
8
  from enum import Enum
9
9
  from plex_api import utils
10
- from typing import List, Optional
10
+ from typing import Any, List, Optional
11
11
 
12
12
 
13
13
  class Tag(str, Enum):
@@ -35,7 +35,7 @@ class Tag(str, Enum):
35
35
 
36
36
  @dataclasses.dataclass
37
37
  class GetLibraryItemsRequest:
38
- section_id: int = dataclasses.field(metadata={'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': False }})
38
+ section_id: Any = dataclasses.field(metadata={'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': False }})
39
39
  r"""the Id of the library to query"""
40
40
  tag: Tag = dataclasses.field(metadata={'path_param': { 'field_name': 'tag', 'style': 'simple', 'explode': False }})
41
41
  r"""A key representing a specific tag within the section."""
@@ -27,6 +27,8 @@ class GetPinGlobals:
27
27
 
28
28
  @dataclasses.dataclass
29
29
  class GetPinRequest:
30
+ x_plex_product: str = dataclasses.field(metadata={'header': { 'field_name': 'X-Plex-Product', 'style': 'simple', 'explode': False }})
31
+ r"""Product name of the application shown in the list of devices"""
30
32
  strong: Optional[bool] = dataclasses.field(default=False, metadata={'query_param': { 'field_name': 'strong', 'style': 'form', 'explode': True }})
31
33
  r"""Determines the kind of code returned by the API call
32
34
  Strong codes are used for Pin authentication flows
@@ -50,7 +52,7 @@ class Location:
50
52
  country: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country'), 'exclude': lambda f: f is None }})
51
53
  city: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('city'), 'exclude': lambda f: f is None }})
52
54
  time_zone: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('time_zone'), 'exclude': lambda f: f is None }})
53
- postal_code: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('postal_code'), 'exclude': lambda f: f is None }})
55
+ postal_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('postal_code'), 'exclude': lambda f: f is None }})
54
56
  in_privacy_restricted_country: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('in_privacy_restricted_country'), 'exclude': lambda f: f is None }})
55
57
  subdivisions: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('subdivisions'), 'exclude': lambda f: f is None }})
56
58
  coordinates: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('coordinates'), 'exclude': lambda f: f is None }})
@@ -92,7 +92,7 @@ class Role:
92
92
 
93
93
  @dataclass_json(undefined=Undefined.EXCLUDE)
94
94
  @dataclasses.dataclass
95
- class Metadata:
95
+ class GetRecentlyAddedMetadata:
96
96
  allow_sync: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('allowSync'), 'exclude': lambda f: f is None }})
97
97
  library_section_id: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('librarySectionID'), 'exclude': lambda f: f is None }})
98
98
  library_section_title: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('librarySectionTitle'), 'exclude': lambda f: f is None }})
@@ -138,7 +138,7 @@ class GetRecentlyAddedMediaContainer:
138
138
  media_tag_prefix: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('mediaTagPrefix'), 'exclude': lambda f: f is None }})
139
139
  media_tag_version: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('mediaTagVersion'), 'exclude': lambda f: f is None }})
140
140
  mixed_parents: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('mixedParents'), 'exclude': lambda f: f is None }})
141
- metadata: Optional[List[Metadata]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('Metadata'), 'exclude': lambda f: f is None }})
141
+ metadata: Optional[List[GetRecentlyAddedMetadata]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('Metadata'), 'exclude': lambda f: f is None }})
142
142
 
143
143
 
144
144
 
@@ -0,0 +1,94 @@
1
+ """Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ import dataclasses
5
+ import dateutil.parser
6
+ import requests as requests_http
7
+ from dataclasses_json import Undefined, dataclass_json
8
+ from datetime import datetime
9
+ from plex_api import utils
10
+ from typing import Optional
11
+
12
+ GET_TOKEN_SERVERS = [
13
+ "https://plex.tv/api/v2",
14
+ ]
15
+
16
+
17
+ @dataclasses.dataclass
18
+ class GetTokenGlobals:
19
+ x_plex_client_identifier: str = dataclasses.field(metadata={'header': { 'field_name': 'X-Plex-Client-Identifier', 'style': 'simple', 'explode': False }})
20
+ r"""The unique identifier for the client application
21
+ This is used to track the client application and its usage
22
+ (UUID, serial number, or other number unique per device)
23
+ """
24
+
25
+
26
+
27
+
28
+ @dataclasses.dataclass
29
+ class GetTokenRequest:
30
+ pin_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'pinID', 'style': 'simple', 'explode': False }})
31
+ r"""The PinID to retrieve an access token for"""
32
+ x_plex_client_identifier: Optional[str] = dataclasses.field(default=None, metadata={'header': { 'field_name': 'X-Plex-Client-Identifier', 'style': 'simple', 'explode': False }})
33
+ r"""The unique identifier for the client application
34
+ This is used to track the client application and its usage
35
+ (UUID, serial number, or other number unique per device)
36
+ """
37
+
38
+
39
+
40
+
41
+ @dataclass_json(undefined=Undefined.EXCLUDE)
42
+ @dataclasses.dataclass
43
+ class GetTokenLocation:
44
+ code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('code'), 'exclude': lambda f: f is None }})
45
+ european_union_member: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('european_union_member'), 'exclude': lambda f: f is None }})
46
+ continent_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('continent_code'), 'exclude': lambda f: f is None }})
47
+ country: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('country'), 'exclude': lambda f: f is None }})
48
+ city: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('city'), 'exclude': lambda f: f is None }})
49
+ time_zone: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('time_zone'), 'exclude': lambda f: f is None }})
50
+ postal_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('postal_code'), 'exclude': lambda f: f is None }})
51
+ in_privacy_restricted_country: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('in_privacy_restricted_country'), 'exclude': lambda f: f is None }})
52
+ subdivisions: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('subdivisions'), 'exclude': lambda f: f is None }})
53
+ coordinates: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('coordinates'), 'exclude': lambda f: f is None }})
54
+
55
+
56
+
57
+
58
+ @dataclass_json(undefined=Undefined.EXCLUDE)
59
+ @dataclasses.dataclass
60
+ class GetTokenResponseBody:
61
+ r"""Access Token"""
62
+ id: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id'), 'exclude': lambda f: f is None }})
63
+ r"""PinID for use with authentication"""
64
+ code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('code'), 'exclude': lambda f: f is None }})
65
+ product: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('product'), 'exclude': lambda f: f is None }})
66
+ trusted: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('trusted'), 'exclude': lambda f: f is None }})
67
+ qr: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('qr'), 'exclude': lambda f: f is None }})
68
+ r"""a link to a QR code hosted on plex.tv
69
+ The QR code redirects to the relevant `plex.tv/link` authentication page
70
+ Which then prompts the user for the 4 Digit Link Pin
71
+ """
72
+ client_identifier: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('clientIdentifier'), 'exclude': lambda f: f is None }})
73
+ location: Optional[GetTokenLocation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('location'), 'exclude': lambda f: f is None }})
74
+ expires_in: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('expiresIn'), 'exclude': lambda f: f is None }})
75
+ created_at: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('createdAt'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'exclude': lambda f: f is None }})
76
+ expires_at: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('expiresAt'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'exclude': lambda f: f is None }})
77
+ auth_token: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('authToken'), 'exclude': lambda f: f is None }})
78
+ new_registration: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('newRegistration'), 'exclude': lambda f: f is None }})
79
+
80
+
81
+
82
+
83
+ @dataclasses.dataclass
84
+ class GetTokenResponse:
85
+ content_type: str = dataclasses.field()
86
+ r"""HTTP response content type for this operation"""
87
+ status_code: int = dataclasses.field()
88
+ r"""HTTP response status code for this operation"""
89
+ raw_response: requests_http.Response = dataclasses.field()
90
+ r"""Raw HTTP response; suitable for custom response parsing"""
91
+ object: Optional[GetTokenResponseBody] = dataclasses.field(default=None)
92
+ r"""Access Token"""
93
+
94
+