plex-api-client 0.15.1__tar.gz → 0.16.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 (204) hide show
  1. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/PKG-INFO +6 -4
  2. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/README-PYPI.md +5 -3
  3. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/pyproject.toml +1 -1
  4. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/__init__.py +4 -0
  5. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_server_resources.py +39 -0
  6. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/gettokendetails.py +87 -4
  7. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/post_users_sign_in_data.py +99 -5
  8. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/plex.py +12 -0
  9. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/sdkconfiguration.py +2 -2
  10. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/LICENSE.md +0 -0
  11. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/py.typed +0 -0
  12. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/__init__.py +0 -0
  13. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/_hooks/__init__.py +0 -0
  14. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/_hooks/registration.py +0 -0
  15. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/_hooks/sdkhooks.py +0 -0
  16. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/_hooks/types.py +0 -0
  17. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/activities.py +0 -0
  18. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/authentication.py +0 -0
  19. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/basesdk.py +0 -0
  20. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/butler.py +0 -0
  21. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/httpclient.py +0 -0
  22. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/hubs.py +0 -0
  23. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/library.py +0 -0
  24. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/log.py +0 -0
  25. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/media.py +0 -0
  26. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/components/__init__.py +0 -0
  27. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/components/security.py +0 -0
  28. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/__init__.py +0 -0
  29. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/addplaylistcontents.py +0 -0
  30. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/applyupdates.py +0 -0
  31. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/cancelserveractivities.py +0 -0
  32. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/checkforupdates.py +0 -0
  33. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/clearplaylistcontents.py +0 -0
  34. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/createplaylist.py +0 -0
  35. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/deletelibrary.py +0 -0
  36. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/deleteplaylist.py +0 -0
  37. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/enablepapertrail.py +0 -0
  38. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_all_libraries.py +0 -0
  39. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_banner_image.py +0 -0
  40. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_library_details.py +0 -0
  41. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_library_items.py +0 -0
  42. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_media_providers.py +0 -0
  43. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_meta_data_by_rating_key.py +0 -0
  44. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_recently_added_library.py +0 -0
  45. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_refresh_library_metadata.py +0 -0
  46. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_search_library.py +0 -0
  47. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_server_identity.py +0 -0
  48. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_server_resources.py +0 -0
  49. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_thumb_image.py +0 -0
  50. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/get_watch_list.py +0 -0
  51. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getavailableclients.py +0 -0
  52. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getbandwidthstatistics.py +0 -0
  53. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getbutlertasks.py +0 -0
  54. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getcompanionsdata.py +0 -0
  55. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getdevices.py +0 -0
  56. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getfilehash.py +0 -0
  57. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getgeodata.py +0 -0
  58. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getglobalhubs.py +0 -0
  59. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/gethomedata.py +0 -0
  60. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getlibraryhubs.py +0 -0
  61. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getmetadatachildren.py +0 -0
  62. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getmyplexaccount.py +0 -0
  63. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getondeck.py +0 -0
  64. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getpin.py +0 -0
  65. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getplaylist.py +0 -0
  66. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getplaylistcontents.py +0 -0
  67. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getplaylists.py +0 -0
  68. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getresizedphoto.py +0 -0
  69. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getresourcesstatistics.py +0 -0
  70. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getsearchresults.py +0 -0
  71. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getserveractivities.py +0 -0
  72. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getservercapabilities.py +0 -0
  73. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getserverlist.py +0 -0
  74. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getserverpreferences.py +0 -0
  75. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getsessionhistory.py +0 -0
  76. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getsessions.py +0 -0
  77. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getsourceconnectioninformation.py +0 -0
  78. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getstatistics.py +0 -0
  79. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/gettimeline.py +0 -0
  80. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/gettokenbypinid.py +0 -0
  81. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/gettokendetails.py +0 -0
  82. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/gettopwatchedcontent.py +0 -0
  83. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/gettranscodesessions.py +0 -0
  84. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/gettransienttoken.py +0 -0
  85. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getupdatestatus.py +0 -0
  86. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/getuserfriends.py +0 -0
  87. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/logline.py +0 -0
  88. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/logmultiline.py +0 -0
  89. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/markplayed.py +0 -0
  90. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/markunplayed.py +0 -0
  91. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/performsearch.py +0 -0
  92. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/performvoicesearch.py +0 -0
  93. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/post_users_sign_in_data.py +0 -0
  94. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/sdkerror.py +0 -0
  95. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/startalltasks.py +0 -0
  96. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/starttask.py +0 -0
  97. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/startuniversaltranscode.py +0 -0
  98. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/stopalltasks.py +0 -0
  99. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/stoptask.py +0 -0
  100. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/stoptranscodesession.py +0 -0
  101. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/updateplaylist.py +0 -0
  102. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/updateplayprogress.py +0 -0
  103. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/errors/uploadplaylist.py +0 -0
  104. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/internal/__init__.py +0 -0
  105. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/internal/globals.py +0 -0
  106. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/addplaylistcontents.py +0 -0
  107. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/applyupdates.py +0 -0
  108. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/cancelserveractivities.py +0 -0
  109. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/checkforupdates.py +0 -0
  110. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/clearplaylistcontents.py +0 -0
  111. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/createplaylist.py +0 -0
  112. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/deletelibrary.py +0 -0
  113. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/deleteplaylist.py +0 -0
  114. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/enablepapertrail.py +0 -0
  115. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_all_libraries.py +0 -0
  116. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_banner_image.py +0 -0
  117. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_library_details.py +0 -0
  118. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_library_items.py +0 -0
  119. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_media_providers.py +0 -0
  120. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_meta_data_by_rating_key.py +0 -0
  121. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_recently_added.py +0 -0
  122. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_recently_added_library.py +0 -0
  123. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_refresh_library_metadata.py +0 -0
  124. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_search_library.py +0 -0
  125. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_server_identity.py +0 -0
  126. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_thumb_image.py +0 -0
  127. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/get_watch_list.py +0 -0
  128. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getavailableclients.py +0 -0
  129. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getbandwidthstatistics.py +0 -0
  130. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getbutlertasks.py +0 -0
  131. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getcompanionsdata.py +0 -0
  132. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getdevices.py +0 -0
  133. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getfilehash.py +0 -0
  134. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getgeodata.py +0 -0
  135. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getglobalhubs.py +0 -0
  136. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/gethomedata.py +0 -0
  137. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getlibraryhubs.py +0 -0
  138. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getmetadatachildren.py +0 -0
  139. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getmyplexaccount.py +0 -0
  140. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getondeck.py +0 -0
  141. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getpin.py +0 -0
  142. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getplaylist.py +0 -0
  143. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getplaylistcontents.py +0 -0
  144. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getplaylists.py +0 -0
  145. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getresizedphoto.py +0 -0
  146. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getresourcesstatistics.py +0 -0
  147. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getsearchresults.py +0 -0
  148. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getserveractivities.py +0 -0
  149. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getservercapabilities.py +0 -0
  150. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getserverlist.py +0 -0
  151. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getserverpreferences.py +0 -0
  152. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getsessionhistory.py +0 -0
  153. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getsessions.py +0 -0
  154. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getsourceconnectioninformation.py +0 -0
  155. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getstatistics.py +0 -0
  156. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/gettimeline.py +0 -0
  157. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/gettokenbypinid.py +0 -0
  158. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/gettopwatchedcontent.py +0 -0
  159. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/gettranscodesessions.py +0 -0
  160. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/gettransienttoken.py +0 -0
  161. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getupdatestatus.py +0 -0
  162. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/getuserfriends.py +0 -0
  163. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/logline.py +0 -0
  164. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/logmultiline.py +0 -0
  165. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/markplayed.py +0 -0
  166. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/markunplayed.py +0 -0
  167. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/performsearch.py +0 -0
  168. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/performvoicesearch.py +0 -0
  169. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/startalltasks.py +0 -0
  170. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/starttask.py +0 -0
  171. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/startuniversaltranscode.py +0 -0
  172. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/stopalltasks.py +0 -0
  173. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/stoptask.py +0 -0
  174. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/stoptranscodesession.py +0 -0
  175. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/updateplaylist.py +0 -0
  176. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/updateplayprogress.py +0 -0
  177. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/models/operations/uploadplaylist.py +0 -0
  178. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/playlists.py +0 -0
  179. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/py.typed +0 -0
  180. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/sdk.py +0 -0
  181. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/search.py +0 -0
  182. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/server.py +0 -0
  183. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/sessions.py +0 -0
  184. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/statistics.py +0 -0
  185. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/types/__init__.py +0 -0
  186. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/types/basemodel.py +0 -0
  187. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/updater.py +0 -0
  188. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/__init__.py +0 -0
  189. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/annotations.py +0 -0
  190. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/enums.py +0 -0
  191. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/eventstreaming.py +0 -0
  192. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/forms.py +0 -0
  193. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/headers.py +0 -0
  194. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/logger.py +0 -0
  195. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/metadata.py +0 -0
  196. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/queryparams.py +0 -0
  197. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/requestbodies.py +0 -0
  198. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/retries.py +0 -0
  199. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/security.py +0 -0
  200. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/serializers.py +0 -0
  201. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/url.py +0 -0
  202. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/utils/values.py +0 -0
  203. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/video.py +0 -0
  204. {plex_api_client-0.15.1 → plex_api_client-0.16.0}/src/plex_api_client/watchlist.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: plex-api-client
3
- Version: 0.15.1
3
+ Version: 0.16.0
4
4
  Summary: Python Client SDK Generated by Speakeasy
5
5
  Home-page: https://github.com/LukeHagar/plexpy.git
6
6
  Author: Speakeasy
@@ -598,7 +598,7 @@ if res.object is not None:
598
598
 
599
599
  Certain parameters are configured globally. These parameters may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, These global values will be used as defaults on the operations that use them. When such operations are called, there is a place in each to override the global value, if needed.
600
600
 
601
- For example, you can set `ClientID` to `"gcgzw5rz2xovp84b4vha3a40"` at SDK initialization and then you do not have to pass the same value on calls to operations like `get_pin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
601
+ For example, you can set `ClientID` to `"gcgzw5rz2xovp84b4vha3a40"` at SDK initialization and then you do not have to pass the same value on calls to operations like `get_server_resources`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
602
602
 
603
603
 
604
604
  ### Available Globals
@@ -621,8 +621,10 @@ This is used to track the client application and its usage
621
621
 
622
622
  ```python
623
623
  from plex_api_client import PlexAPI
624
+ from plex_api_client.models import operations
624
625
 
625
626
  s = PlexAPI(
627
+ access_token="<YOUR_API_KEY_HERE>",
626
628
  client_id="gcgzw5rz2xovp84b4vha3a40",
627
629
  client_name="Plex Web",
628
630
  client_version="4.133.0",
@@ -630,9 +632,9 @@ s = PlexAPI(
630
632
  device_name="Linux",
631
633
  )
632
634
 
633
- res = s.plex.get_pin(request={})
635
+ res = s.plex.get_server_resources(include_https=operations.IncludeHTTPS.ENABLE, include_relay=operations.IncludeRelay.ENABLE, include_i_pv6=operations.IncludeIPv6.ENABLE, client_id="gcgzw5rz2xovp84b4vha3a40")
634
636
 
635
- if res.auth_pin_container is not None:
637
+ if res.plex_devices is not None:
636
638
  # handle response
637
639
  pass
638
640
 
@@ -576,7 +576,7 @@ if res.object is not None:
576
576
 
577
577
  Certain parameters are configured globally. These parameters may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, These global values will be used as defaults on the operations that use them. When such operations are called, there is a place in each to override the global value, if needed.
578
578
 
579
- For example, you can set `ClientID` to `"gcgzw5rz2xovp84b4vha3a40"` at SDK initialization and then you do not have to pass the same value on calls to operations like `get_pin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
579
+ For example, you can set `ClientID` to `"gcgzw5rz2xovp84b4vha3a40"` at SDK initialization and then you do not have to pass the same value on calls to operations like `get_server_resources`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
580
580
 
581
581
 
582
582
  ### Available Globals
@@ -599,8 +599,10 @@ This is used to track the client application and its usage
599
599
 
600
600
  ```python
601
601
  from plex_api_client import PlexAPI
602
+ from plex_api_client.models import operations
602
603
 
603
604
  s = PlexAPI(
605
+ access_token="<YOUR_API_KEY_HERE>",
604
606
  client_id="gcgzw5rz2xovp84b4vha3a40",
605
607
  client_name="Plex Web",
606
608
  client_version="4.133.0",
@@ -608,9 +610,9 @@ s = PlexAPI(
608
610
  device_name="Linux",
609
611
  )
610
612
 
611
- res = s.plex.get_pin(request={})
613
+ res = s.plex.get_server_resources(include_https=operations.IncludeHTTPS.ENABLE, include_relay=operations.IncludeRelay.ENABLE, include_i_pv6=operations.IncludeIPv6.ENABLE, client_id="gcgzw5rz2xovp84b4vha3a40")
612
614
 
613
- if res.auth_pin_container is not None:
615
+ if res.plex_devices is not None:
614
616
  # handle response
615
617
  pass
616
618
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "plex-api-client"
3
- version = "0.15.1"
3
+ version = "0.16.0"
4
4
  description = "Python Client SDK Generated by Speakeasy"
5
5
  authors = ["Speakeasy",]
6
6
  readme = "README-PYPI.md"
@@ -380,6 +380,8 @@ from .get_server_resources import (
380
380
  Connections,
381
381
  ConnectionsTypedDict,
382
382
  GET_SERVER_RESOURCES_SERVERS,
383
+ GetServerResourcesGlobals,
384
+ GetServerResourcesGlobalsTypedDict,
383
385
  GetServerResourcesRequest,
384
386
  GetServerResourcesRequestTypedDict,
385
387
  GetServerResourcesResponse,
@@ -1562,6 +1564,8 @@ __all__ = [
1562
1564
  "GetServerPreferencesResponseBody",
1563
1565
  "GetServerPreferencesResponseBodyTypedDict",
1564
1566
  "GetServerPreferencesResponseTypedDict",
1567
+ "GetServerResourcesGlobals",
1568
+ "GetServerResourcesGlobalsTypedDict",
1565
1569
  "GetServerResourcesRequest",
1566
1570
  "GetServerResourcesRequestTypedDict",
1567
1571
  "GetServerResourcesResponse",
@@ -16,6 +16,28 @@ GET_SERVER_RESOURCES_SERVERS = [
16
16
  ]
17
17
 
18
18
 
19
+ class GetServerResourcesGlobalsTypedDict(TypedDict):
20
+ client_id: NotRequired[str]
21
+ r"""The unique identifier for the client application
22
+ This is used to track the client application and its usage
23
+ (UUID, serial number, or other number unique per device)
24
+
25
+ """
26
+
27
+
28
+ class GetServerResourcesGlobals(BaseModel):
29
+ client_id: Annotated[
30
+ Optional[str],
31
+ pydantic.Field(alias="X-Plex-Client-Identifier"),
32
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
33
+ ] = None
34
+ r"""The unique identifier for the client application
35
+ This is used to track the client application and its usage
36
+ (UUID, serial number, or other number unique per device)
37
+
38
+ """
39
+
40
+
19
41
  class IncludeHTTPS(int, Enum):
20
42
  r"""Include Https entries in the results"""
21
43
 
@@ -50,6 +72,12 @@ class GetServerResourcesRequestTypedDict(TypedDict):
50
72
  """
51
73
  include_i_pv6: NotRequired[IncludeIPv6]
52
74
  r"""Include IPv6 entries in the results"""
75
+ client_id: NotRequired[str]
76
+ r"""The unique identifier for the client application
77
+ This is used to track the client application and its usage
78
+ (UUID, serial number, or other number unique per device)
79
+
80
+ """
53
81
 
54
82
 
55
83
  class GetServerResourcesRequest(BaseModel):
@@ -77,6 +105,17 @@ class GetServerResourcesRequest(BaseModel):
77
105
  ] = IncludeIPv6.DISABLE
78
106
  r"""Include IPv6 entries in the results"""
79
107
 
108
+ client_id: Annotated[
109
+ Optional[str],
110
+ pydantic.Field(alias="X-Plex-Client-Identifier"),
111
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
112
+ ] = None
113
+ r"""The unique identifier for the client application
114
+ This is used to track the client application and its usage
115
+ (UUID, serial number, or other number unique per device)
116
+
117
+ """
118
+
80
119
 
81
120
  class Protocol(str, Enum):
82
121
  r"""The protocol used for the connection (http, https, etc)"""
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
  from datetime import datetime
5
5
  from enum import Enum
6
6
  import httpx
7
+ from plex_api_client import utils
7
8
  from plex_api_client.types import (
8
9
  BaseModel,
9
10
  Nullable,
@@ -11,8 +12,10 @@ from plex_api_client.types import (
11
12
  UNSET,
12
13
  UNSET_SENTINEL,
13
14
  )
15
+ from plex_api_client.utils import validate_open_enum
14
16
  import pydantic
15
17
  from pydantic import model_serializer
18
+ from pydantic.functional_validators import PlainValidator
16
19
  from typing import List, Optional, TypedDict
17
20
  from typing_extensions import Annotated, NotRequired
18
21
 
@@ -207,7 +210,7 @@ class Services(BaseModel):
207
210
  return m
208
211
 
209
212
 
210
- class Features(str, Enum):
213
+ class Features(str, Enum, metaclass=utils.OpenEnumMeta):
211
214
  ANDROID_DOLBY_VISION = "Android - Dolby Vision"
212
215
  ANDROID_PI_P = "Android - PiP"
213
216
  CU_SUNSET = "CU Sunset"
@@ -215,28 +218,43 @@ class Features(str, Enum):
215
218
  TREBLE_SHOW_FEATURES = "TREBLE-show-features"
216
219
  AD_COUNTDOWN_TIMER = "ad-countdown-timer"
217
220
  ADAPTIVE_BITRATE = "adaptive_bitrate"
221
+ ALBUM_TYPES = "album-types"
222
+ ALLOW_DVR = "allow_dvr"
218
223
  AMAZON_LOOP_DEBUG = "amazon-loop-debug"
219
224
  AVOD_AD_ANALYSIS = "avod-ad-analysis"
220
225
  AVOD_NEW_MEDIA = "avod-new-media"
221
226
  BLACKLIST_GET_SIGNIN = "blacklist_get_signin"
227
+ BOOST_VOICES = "boost-voices"
228
+ CAMERA_UPLOAD = "camera_upload"
222
229
  CLIENT_RADIO_STATIONS = "client-radio-stations"
223
230
  CLOUDFLARE_TURNSTILE_REQUIRED = "cloudflare-turnstile-required"
231
+ CLOUDSYNC = "cloudsync"
224
232
  COLLECTIONS = "collections"
225
233
  COMMENTS_AND_REPLIES_PUSH_NOTIFICATIONS = "comments_and_replies_push_notifications"
226
234
  COMMUNITY_ACCESS_PLEX_TV = "community_access_plex_tv"
227
235
  COMPANIONS_SONOS = "companions_sonos"
236
+ CONTENT_FILTER = "content_filter"
228
237
  CUSTOM_HOME_REMOVAL = "custom-home-removal"
229
238
  DISABLE_HOME_USER_FRIENDSHIPS = "disable_home_user_friendships"
230
239
  DISABLE_SHARING_FRIENDSHIPS = "disable_sharing_friendships"
240
+ DOWNLOADS_GATING = "downloads-gating"
231
241
  DRM_SUPPORT = "drm_support"
242
+ DVR = "dvr"
243
+ DVR_BLOCK_UNSUPPORTED_COUNTRIES = "dvr-block-unsupported-countries"
244
+ EPG_RECENT_CHANNELS = "epg-recent-channels"
232
245
  EXCLUDE_RESTRICTIONS = "exclude restrictions"
233
246
  FEDERATED_AUTH = "federated-auth"
234
247
  FRIEND_REQUEST_PUSH_NOTIFICATIONS = "friend_request_push_notifications"
248
+ GRANDFATHER_SYNC = "grandfather-sync"
235
249
  GUIDED_UPGRADE = "guided-upgrade"
250
+ HARDWARE_TRANSCODING = "hardware_transcoding"
236
251
  HOME = "home"
252
+ HWTRANSCODE = "hwtranscode"
253
+ IMAGGA_V2 = "imagga-v2"
237
254
  INCREASE_PASSWORD_COMPLEXITY = "increase-password-complexity"
238
255
  IOS14_PRIVACY_BANNER = "ios14-privacy-banner"
239
256
  ITERABLE_NOTIFICATION_TOKENS = "iterable-notification-tokens"
257
+ ITEM_CLUSTERS = "item_clusters"
240
258
  KEEP_PAYMENT_METHOD = "keep-payment-method"
241
259
  KEVIN_BACON = "kevin-bacon"
242
260
  KOREA_CONSENT = "korea-consent"
@@ -245,28 +263,49 @@ class Features(str, Enum):
245
263
  LIGHTNING_DVR_PIVOT = "lightning-dvr-pivot"
246
264
  LIVE_TV_SUPPORT_INCOMPLETE_SEGMENTS = "live-tv-support-incomplete-segments"
247
265
  LIVETV = "livetv"
266
+ LYRICS = "lyrics"
248
267
  METADATA_SEARCH = "metadata_search"
268
+ MUSIC_ANALYSIS = "music-analysis"
269
+ MUSIC_VIDEOS = "music_videos"
249
270
  NEW_PLEX_PASS_PRICES = "new_plex_pass_prices"
250
271
  NEWS_PROVIDER_SUNSET_MODAL = "news-provider-sunset-modal"
272
+ NOMINATIM = "nominatim"
273
+ PASS = "pass"
251
274
  PHOTOS_FAVORITES = "photos-favorites"
252
275
  PHOTOS_METADATA_EDITION = "photos-metadata-edition"
276
+ PHOTOS_V6_EDIT = "photosV6-edit"
277
+ PHOTOS_V6_TV_ALBUMS = "photosV6-tv-albums"
253
278
  PMS_HEALTH = "pms_health"
279
+ PREMIUM_DASHBOARD = "premium-dashboard"
280
+ PREMIUM_MUSIC_METADATA = "premium_music_metadata"
254
281
  RADIO = "radio"
255
282
  RATE_LIMIT_CLIENT_TOKEN = "rate-limit-client-token"
256
283
  SCROBBLING_SERVICE_PLEX_TV = "scrobbling-service-plex-tv"
284
+ SESSION_BANDWIDTH_RESTRICTIONS = "session_bandwidth_restrictions"
285
+ SESSION_KICK = "session_kick"
257
286
  SHARED_SERVER_NOTIFICATION = "shared_server_notification"
258
287
  SHARED_SOURCE_NOTIFICATION = "shared_source_notification"
288
+ SIGNIN_NOTIFICATION = "signin_notification"
259
289
  SIGNIN_WITH_APPLE = "signin_with_apple"
290
+ SILENCE_REMOVAL = "silence-removal"
291
+ SLEEP_TIMER = "sleep-timer"
260
292
  SPRING_SERVE_AD_PROVIDER = "spring_serve_ad_provider"
293
+ SYNC = "sync"
294
+ SWEET_FADES = "sweet-fades"
261
295
  TRANSCODER_CACHE = "transcoder_cache"
296
+ TRAILERS = "trailers"
262
297
  TUNER_SHARING = "tuner-sharing"
263
298
  TWO_FACTOR_AUTHENTICATION = "two-factor-authentication"
264
299
  UNSUPPORTEDTUNERS = "unsupportedtuners"
265
300
  UPGRADE_3DS2 = "upgrade-3ds2"
301
+ VISUALIZERS = "visualizers"
266
302
  VOD_SCHEMA = "vod-schema"
267
303
  VOD_CLOUDFLARE = "vod_cloudflare"
304
+ VOLUME_LEVELING = "volume-leveling"
268
305
  WATCH_TOGETHER_INVITE = "watch-together-invite"
306
+ WATCHLIST_RSS = "watchlist-rss"
269
307
  WEB_SERVER_DASHBOARD = "web_server_dashboard"
308
+ WEBHOOKS = "webhooks"
270
309
 
271
310
 
272
311
  class GetTokenDetailsAuthenticationStatus(str, Enum):
@@ -296,7 +335,9 @@ class SubscriptionTypedDict(TypedDict):
296
335
  class Subscription(BaseModel):
297
336
  r"""If the account’s Plex Pass subscription is active"""
298
337
 
299
- features: Optional[List[Features]] = None
338
+ features: Optional[
339
+ List[Annotated[Features, PlainValidator(validate_open_enum(False))]]
340
+ ] = None
300
341
  r"""List of features allowed on your Plex Pass subscription"""
301
342
 
302
343
  active: Optional[bool] = None
@@ -356,7 +397,7 @@ class Subscription(BaseModel):
356
397
  return m
357
398
 
358
399
 
359
- class GetTokenDetailsFeatures(str, Enum):
400
+ class GetTokenDetailsFeatures(str, Enum, metaclass=utils.OpenEnumMeta):
360
401
  ANDROID_DOLBY_VISION = "Android - Dolby Vision"
361
402
  ANDROID_PI_P = "Android - PiP"
362
403
  CU_SUNSET = "CU Sunset"
@@ -364,28 +405,43 @@ class GetTokenDetailsFeatures(str, Enum):
364
405
  TREBLE_SHOW_FEATURES = "TREBLE-show-features"
365
406
  AD_COUNTDOWN_TIMER = "ad-countdown-timer"
366
407
  ADAPTIVE_BITRATE = "adaptive_bitrate"
408
+ ALBUM_TYPES = "album-types"
409
+ ALLOW_DVR = "allow_dvr"
367
410
  AMAZON_LOOP_DEBUG = "amazon-loop-debug"
368
411
  AVOD_AD_ANALYSIS = "avod-ad-analysis"
369
412
  AVOD_NEW_MEDIA = "avod-new-media"
370
413
  BLACKLIST_GET_SIGNIN = "blacklist_get_signin"
414
+ BOOST_VOICES = "boost-voices"
415
+ CAMERA_UPLOAD = "camera_upload"
371
416
  CLIENT_RADIO_STATIONS = "client-radio-stations"
372
417
  CLOUDFLARE_TURNSTILE_REQUIRED = "cloudflare-turnstile-required"
418
+ CLOUDSYNC = "cloudsync"
373
419
  COLLECTIONS = "collections"
374
420
  COMMENTS_AND_REPLIES_PUSH_NOTIFICATIONS = "comments_and_replies_push_notifications"
375
421
  COMMUNITY_ACCESS_PLEX_TV = "community_access_plex_tv"
376
422
  COMPANIONS_SONOS = "companions_sonos"
423
+ CONTENT_FILTER = "content_filter"
377
424
  CUSTOM_HOME_REMOVAL = "custom-home-removal"
378
425
  DISABLE_HOME_USER_FRIENDSHIPS = "disable_home_user_friendships"
379
426
  DISABLE_SHARING_FRIENDSHIPS = "disable_sharing_friendships"
427
+ DOWNLOADS_GATING = "downloads-gating"
380
428
  DRM_SUPPORT = "drm_support"
429
+ DVR = "dvr"
430
+ DVR_BLOCK_UNSUPPORTED_COUNTRIES = "dvr-block-unsupported-countries"
431
+ EPG_RECENT_CHANNELS = "epg-recent-channels"
381
432
  EXCLUDE_RESTRICTIONS = "exclude restrictions"
382
433
  FEDERATED_AUTH = "federated-auth"
383
434
  FRIEND_REQUEST_PUSH_NOTIFICATIONS = "friend_request_push_notifications"
435
+ GRANDFATHER_SYNC = "grandfather-sync"
384
436
  GUIDED_UPGRADE = "guided-upgrade"
437
+ HARDWARE_TRANSCODING = "hardware_transcoding"
385
438
  HOME = "home"
439
+ HWTRANSCODE = "hwtranscode"
440
+ IMAGGA_V2 = "imagga-v2"
386
441
  INCREASE_PASSWORD_COMPLEXITY = "increase-password-complexity"
387
442
  IOS14_PRIVACY_BANNER = "ios14-privacy-banner"
388
443
  ITERABLE_NOTIFICATION_TOKENS = "iterable-notification-tokens"
444
+ ITEM_CLUSTERS = "item_clusters"
389
445
  KEEP_PAYMENT_METHOD = "keep-payment-method"
390
446
  KEVIN_BACON = "kevin-bacon"
391
447
  KOREA_CONSENT = "korea-consent"
@@ -394,28 +450,49 @@ class GetTokenDetailsFeatures(str, Enum):
394
450
  LIGHTNING_DVR_PIVOT = "lightning-dvr-pivot"
395
451
  LIVE_TV_SUPPORT_INCOMPLETE_SEGMENTS = "live-tv-support-incomplete-segments"
396
452
  LIVETV = "livetv"
453
+ LYRICS = "lyrics"
397
454
  METADATA_SEARCH = "metadata_search"
455
+ MUSIC_ANALYSIS = "music-analysis"
456
+ MUSIC_VIDEOS = "music_videos"
398
457
  NEW_PLEX_PASS_PRICES = "new_plex_pass_prices"
399
458
  NEWS_PROVIDER_SUNSET_MODAL = "news-provider-sunset-modal"
459
+ NOMINATIM = "nominatim"
460
+ PASS = "pass"
400
461
  PHOTOS_FAVORITES = "photos-favorites"
401
462
  PHOTOS_METADATA_EDITION = "photos-metadata-edition"
463
+ PHOTOS_V6_EDIT = "photosV6-edit"
464
+ PHOTOS_V6_TV_ALBUMS = "photosV6-tv-albums"
402
465
  PMS_HEALTH = "pms_health"
466
+ PREMIUM_DASHBOARD = "premium-dashboard"
467
+ PREMIUM_MUSIC_METADATA = "premium_music_metadata"
403
468
  RADIO = "radio"
404
469
  RATE_LIMIT_CLIENT_TOKEN = "rate-limit-client-token"
405
470
  SCROBBLING_SERVICE_PLEX_TV = "scrobbling-service-plex-tv"
471
+ SESSION_BANDWIDTH_RESTRICTIONS = "session_bandwidth_restrictions"
472
+ SESSION_KICK = "session_kick"
406
473
  SHARED_SERVER_NOTIFICATION = "shared_server_notification"
407
474
  SHARED_SOURCE_NOTIFICATION = "shared_source_notification"
475
+ SIGNIN_NOTIFICATION = "signin_notification"
408
476
  SIGNIN_WITH_APPLE = "signin_with_apple"
477
+ SILENCE_REMOVAL = "silence-removal"
478
+ SLEEP_TIMER = "sleep-timer"
409
479
  SPRING_SERVE_AD_PROVIDER = "spring_serve_ad_provider"
480
+ SYNC = "sync"
481
+ SWEET_FADES = "sweet-fades"
410
482
  TRANSCODER_CACHE = "transcoder_cache"
483
+ TRAILERS = "trailers"
411
484
  TUNER_SHARING = "tuner-sharing"
412
485
  TWO_FACTOR_AUTHENTICATION = "two-factor-authentication"
413
486
  UNSUPPORTEDTUNERS = "unsupportedtuners"
414
487
  UPGRADE_3DS2 = "upgrade-3ds2"
488
+ VISUALIZERS = "visualizers"
415
489
  VOD_SCHEMA = "vod-schema"
416
490
  VOD_CLOUDFLARE = "vod_cloudflare"
491
+ VOLUME_LEVELING = "volume-leveling"
417
492
  WATCH_TOGETHER_INVITE = "watch-together-invite"
493
+ WATCHLIST_RSS = "watchlist-rss"
418
494
  WEB_SERVER_DASHBOARD = "web_server_dashboard"
495
+ WEBHOOKS = "webhooks"
419
496
 
420
497
 
421
498
  class GetTokenDetailsAuthenticationResponseStatus(str, Enum):
@@ -441,7 +518,13 @@ class GetTokenDetailsSubscriptionTypedDict(TypedDict):
441
518
 
442
519
 
443
520
  class GetTokenDetailsSubscription(BaseModel):
444
- features: Optional[List[GetTokenDetailsFeatures]] = None
521
+ features: Optional[
522
+ List[
523
+ Annotated[
524
+ GetTokenDetailsFeatures, PlainValidator(validate_open_enum(False))
525
+ ]
526
+ ]
527
+ ] = None
445
528
  r"""List of features allowed on your Plex Pass subscription"""
446
529
 
447
530
  active: Optional[bool] = None
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
  from datetime import datetime
5
5
  from enum import Enum
6
6
  import httpx
7
+ from plex_api_client import utils
7
8
  from plex_api_client.types import (
8
9
  BaseModel,
9
10
  Nullable,
@@ -11,9 +12,15 @@ from plex_api_client.types import (
11
12
  UNSET,
12
13
  UNSET_SENTINEL,
13
14
  )
14
- from plex_api_client.utils import FieldMetadata, QueryParamMetadata, RequestMetadata
15
+ from plex_api_client.utils import (
16
+ FieldMetadata,
17
+ QueryParamMetadata,
18
+ RequestMetadata,
19
+ validate_open_enum,
20
+ )
15
21
  import pydantic
16
22
  from pydantic import model_serializer
23
+ from pydantic.functional_validators import PlainValidator
17
24
  from typing import List, Optional, TypedDict
18
25
  from typing_extensions import Annotated, NotRequired
19
26
 
@@ -351,7 +358,7 @@ class PostUsersSignInDataServices(BaseModel):
351
358
  return m
352
359
 
353
360
 
354
- class PostUsersSignInDataFeatures(str, Enum):
361
+ class PostUsersSignInDataFeatures(str, Enum, metaclass=utils.OpenEnumMeta):
355
362
  ANDROID_DOLBY_VISION = "Android - Dolby Vision"
356
363
  ANDROID_PI_P = "Android - PiP"
357
364
  CU_SUNSET = "CU Sunset"
@@ -359,28 +366,43 @@ class PostUsersSignInDataFeatures(str, Enum):
359
366
  TREBLE_SHOW_FEATURES = "TREBLE-show-features"
360
367
  AD_COUNTDOWN_TIMER = "ad-countdown-timer"
361
368
  ADAPTIVE_BITRATE = "adaptive_bitrate"
369
+ ALBUM_TYPES = "album-types"
370
+ ALLOW_DVR = "allow_dvr"
362
371
  AMAZON_LOOP_DEBUG = "amazon-loop-debug"
363
372
  AVOD_AD_ANALYSIS = "avod-ad-analysis"
364
373
  AVOD_NEW_MEDIA = "avod-new-media"
365
374
  BLACKLIST_GET_SIGNIN = "blacklist_get_signin"
375
+ BOOST_VOICES = "boost-voices"
376
+ CAMERA_UPLOAD = "camera_upload"
366
377
  CLIENT_RADIO_STATIONS = "client-radio-stations"
367
378
  CLOUDFLARE_TURNSTILE_REQUIRED = "cloudflare-turnstile-required"
379
+ CLOUDSYNC = "cloudsync"
368
380
  COLLECTIONS = "collections"
369
381
  COMMENTS_AND_REPLIES_PUSH_NOTIFICATIONS = "comments_and_replies_push_notifications"
370
382
  COMMUNITY_ACCESS_PLEX_TV = "community_access_plex_tv"
371
383
  COMPANIONS_SONOS = "companions_sonos"
384
+ CONTENT_FILTER = "content_filter"
372
385
  CUSTOM_HOME_REMOVAL = "custom-home-removal"
373
386
  DISABLE_HOME_USER_FRIENDSHIPS = "disable_home_user_friendships"
374
387
  DISABLE_SHARING_FRIENDSHIPS = "disable_sharing_friendships"
388
+ DOWNLOADS_GATING = "downloads-gating"
375
389
  DRM_SUPPORT = "drm_support"
390
+ DVR = "dvr"
391
+ DVR_BLOCK_UNSUPPORTED_COUNTRIES = "dvr-block-unsupported-countries"
392
+ EPG_RECENT_CHANNELS = "epg-recent-channels"
376
393
  EXCLUDE_RESTRICTIONS = "exclude restrictions"
377
394
  FEDERATED_AUTH = "federated-auth"
378
395
  FRIEND_REQUEST_PUSH_NOTIFICATIONS = "friend_request_push_notifications"
396
+ GRANDFATHER_SYNC = "grandfather-sync"
379
397
  GUIDED_UPGRADE = "guided-upgrade"
398
+ HARDWARE_TRANSCODING = "hardware_transcoding"
380
399
  HOME = "home"
400
+ HWTRANSCODE = "hwtranscode"
401
+ IMAGGA_V2 = "imagga-v2"
381
402
  INCREASE_PASSWORD_COMPLEXITY = "increase-password-complexity"
382
403
  IOS14_PRIVACY_BANNER = "ios14-privacy-banner"
383
404
  ITERABLE_NOTIFICATION_TOKENS = "iterable-notification-tokens"
405
+ ITEM_CLUSTERS = "item_clusters"
384
406
  KEEP_PAYMENT_METHOD = "keep-payment-method"
385
407
  KEVIN_BACON = "kevin-bacon"
386
408
  KOREA_CONSENT = "korea-consent"
@@ -389,28 +411,49 @@ class PostUsersSignInDataFeatures(str, Enum):
389
411
  LIGHTNING_DVR_PIVOT = "lightning-dvr-pivot"
390
412
  LIVE_TV_SUPPORT_INCOMPLETE_SEGMENTS = "live-tv-support-incomplete-segments"
391
413
  LIVETV = "livetv"
414
+ LYRICS = "lyrics"
392
415
  METADATA_SEARCH = "metadata_search"
416
+ MUSIC_ANALYSIS = "music-analysis"
417
+ MUSIC_VIDEOS = "music_videos"
393
418
  NEW_PLEX_PASS_PRICES = "new_plex_pass_prices"
394
419
  NEWS_PROVIDER_SUNSET_MODAL = "news-provider-sunset-modal"
420
+ NOMINATIM = "nominatim"
421
+ PASS = "pass"
395
422
  PHOTOS_FAVORITES = "photos-favorites"
396
423
  PHOTOS_METADATA_EDITION = "photos-metadata-edition"
424
+ PHOTOS_V6_EDIT = "photosV6-edit"
425
+ PHOTOS_V6_TV_ALBUMS = "photosV6-tv-albums"
397
426
  PMS_HEALTH = "pms_health"
427
+ PREMIUM_DASHBOARD = "premium-dashboard"
428
+ PREMIUM_MUSIC_METADATA = "premium_music_metadata"
398
429
  RADIO = "radio"
399
430
  RATE_LIMIT_CLIENT_TOKEN = "rate-limit-client-token"
400
431
  SCROBBLING_SERVICE_PLEX_TV = "scrobbling-service-plex-tv"
432
+ SESSION_BANDWIDTH_RESTRICTIONS = "session_bandwidth_restrictions"
433
+ SESSION_KICK = "session_kick"
401
434
  SHARED_SERVER_NOTIFICATION = "shared_server_notification"
402
435
  SHARED_SOURCE_NOTIFICATION = "shared_source_notification"
436
+ SIGNIN_NOTIFICATION = "signin_notification"
403
437
  SIGNIN_WITH_APPLE = "signin_with_apple"
438
+ SILENCE_REMOVAL = "silence-removal"
439
+ SLEEP_TIMER = "sleep-timer"
404
440
  SPRING_SERVE_AD_PROVIDER = "spring_serve_ad_provider"
441
+ SYNC = "sync"
442
+ SWEET_FADES = "sweet-fades"
405
443
  TRANSCODER_CACHE = "transcoder_cache"
444
+ TRAILERS = "trailers"
406
445
  TUNER_SHARING = "tuner-sharing"
407
446
  TWO_FACTOR_AUTHENTICATION = "two-factor-authentication"
408
447
  UNSUPPORTEDTUNERS = "unsupportedtuners"
409
448
  UPGRADE_3DS2 = "upgrade-3ds2"
449
+ VISUALIZERS = "visualizers"
410
450
  VOD_SCHEMA = "vod-schema"
411
451
  VOD_CLOUDFLARE = "vod_cloudflare"
452
+ VOLUME_LEVELING = "volume-leveling"
412
453
  WATCH_TOGETHER_INVITE = "watch-together-invite"
454
+ WATCHLIST_RSS = "watchlist-rss"
413
455
  WEB_SERVER_DASHBOARD = "web_server_dashboard"
456
+ WEBHOOKS = "webhooks"
414
457
 
415
458
 
416
459
  class PostUsersSignInDataAuthenticationStatus(str, Enum):
@@ -440,7 +483,13 @@ class PostUsersSignInDataSubscriptionTypedDict(TypedDict):
440
483
  class PostUsersSignInDataSubscription(BaseModel):
441
484
  r"""If the account’s Plex Pass subscription is active"""
442
485
 
443
- features: Optional[List[PostUsersSignInDataFeatures]] = None
486
+ features: Optional[
487
+ List[
488
+ Annotated[
489
+ PostUsersSignInDataFeatures, PlainValidator(validate_open_enum(False))
490
+ ]
491
+ ]
492
+ ] = None
444
493
  r"""List of features allowed on your Plex Pass subscription"""
445
494
 
446
495
  active: Optional[bool] = None
@@ -500,7 +549,9 @@ class PostUsersSignInDataSubscription(BaseModel):
500
549
  return m
501
550
 
502
551
 
503
- class PostUsersSignInDataAuthenticationFeatures(str, Enum):
552
+ class PostUsersSignInDataAuthenticationFeatures(
553
+ str, Enum, metaclass=utils.OpenEnumMeta
554
+ ):
504
555
  ANDROID_DOLBY_VISION = "Android - Dolby Vision"
505
556
  ANDROID_PI_P = "Android - PiP"
506
557
  CU_SUNSET = "CU Sunset"
@@ -508,28 +559,43 @@ class PostUsersSignInDataAuthenticationFeatures(str, Enum):
508
559
  TREBLE_SHOW_FEATURES = "TREBLE-show-features"
509
560
  AD_COUNTDOWN_TIMER = "ad-countdown-timer"
510
561
  ADAPTIVE_BITRATE = "adaptive_bitrate"
562
+ ALBUM_TYPES = "album-types"
563
+ ALLOW_DVR = "allow_dvr"
511
564
  AMAZON_LOOP_DEBUG = "amazon-loop-debug"
512
565
  AVOD_AD_ANALYSIS = "avod-ad-analysis"
513
566
  AVOD_NEW_MEDIA = "avod-new-media"
514
567
  BLACKLIST_GET_SIGNIN = "blacklist_get_signin"
568
+ BOOST_VOICES = "boost-voices"
569
+ CAMERA_UPLOAD = "camera_upload"
515
570
  CLIENT_RADIO_STATIONS = "client-radio-stations"
516
571
  CLOUDFLARE_TURNSTILE_REQUIRED = "cloudflare-turnstile-required"
572
+ CLOUDSYNC = "cloudsync"
517
573
  COLLECTIONS = "collections"
518
574
  COMMENTS_AND_REPLIES_PUSH_NOTIFICATIONS = "comments_and_replies_push_notifications"
519
575
  COMMUNITY_ACCESS_PLEX_TV = "community_access_plex_tv"
520
576
  COMPANIONS_SONOS = "companions_sonos"
577
+ CONTENT_FILTER = "content_filter"
521
578
  CUSTOM_HOME_REMOVAL = "custom-home-removal"
522
579
  DISABLE_HOME_USER_FRIENDSHIPS = "disable_home_user_friendships"
523
580
  DISABLE_SHARING_FRIENDSHIPS = "disable_sharing_friendships"
581
+ DOWNLOADS_GATING = "downloads-gating"
524
582
  DRM_SUPPORT = "drm_support"
583
+ DVR = "dvr"
584
+ DVR_BLOCK_UNSUPPORTED_COUNTRIES = "dvr-block-unsupported-countries"
585
+ EPG_RECENT_CHANNELS = "epg-recent-channels"
525
586
  EXCLUDE_RESTRICTIONS = "exclude restrictions"
526
587
  FEDERATED_AUTH = "federated-auth"
527
588
  FRIEND_REQUEST_PUSH_NOTIFICATIONS = "friend_request_push_notifications"
589
+ GRANDFATHER_SYNC = "grandfather-sync"
528
590
  GUIDED_UPGRADE = "guided-upgrade"
591
+ HARDWARE_TRANSCODING = "hardware_transcoding"
529
592
  HOME = "home"
593
+ HWTRANSCODE = "hwtranscode"
594
+ IMAGGA_V2 = "imagga-v2"
530
595
  INCREASE_PASSWORD_COMPLEXITY = "increase-password-complexity"
531
596
  IOS14_PRIVACY_BANNER = "ios14-privacy-banner"
532
597
  ITERABLE_NOTIFICATION_TOKENS = "iterable-notification-tokens"
598
+ ITEM_CLUSTERS = "item_clusters"
533
599
  KEEP_PAYMENT_METHOD = "keep-payment-method"
534
600
  KEVIN_BACON = "kevin-bacon"
535
601
  KOREA_CONSENT = "korea-consent"
@@ -538,28 +604,49 @@ class PostUsersSignInDataAuthenticationFeatures(str, Enum):
538
604
  LIGHTNING_DVR_PIVOT = "lightning-dvr-pivot"
539
605
  LIVE_TV_SUPPORT_INCOMPLETE_SEGMENTS = "live-tv-support-incomplete-segments"
540
606
  LIVETV = "livetv"
607
+ LYRICS = "lyrics"
541
608
  METADATA_SEARCH = "metadata_search"
609
+ MUSIC_ANALYSIS = "music-analysis"
610
+ MUSIC_VIDEOS = "music_videos"
542
611
  NEW_PLEX_PASS_PRICES = "new_plex_pass_prices"
543
612
  NEWS_PROVIDER_SUNSET_MODAL = "news-provider-sunset-modal"
613
+ NOMINATIM = "nominatim"
614
+ PASS = "pass"
544
615
  PHOTOS_FAVORITES = "photos-favorites"
545
616
  PHOTOS_METADATA_EDITION = "photos-metadata-edition"
617
+ PHOTOS_V6_EDIT = "photosV6-edit"
618
+ PHOTOS_V6_TV_ALBUMS = "photosV6-tv-albums"
546
619
  PMS_HEALTH = "pms_health"
620
+ PREMIUM_DASHBOARD = "premium-dashboard"
621
+ PREMIUM_MUSIC_METADATA = "premium_music_metadata"
547
622
  RADIO = "radio"
548
623
  RATE_LIMIT_CLIENT_TOKEN = "rate-limit-client-token"
549
624
  SCROBBLING_SERVICE_PLEX_TV = "scrobbling-service-plex-tv"
625
+ SESSION_BANDWIDTH_RESTRICTIONS = "session_bandwidth_restrictions"
626
+ SESSION_KICK = "session_kick"
550
627
  SHARED_SERVER_NOTIFICATION = "shared_server_notification"
551
628
  SHARED_SOURCE_NOTIFICATION = "shared_source_notification"
629
+ SIGNIN_NOTIFICATION = "signin_notification"
552
630
  SIGNIN_WITH_APPLE = "signin_with_apple"
631
+ SILENCE_REMOVAL = "silence-removal"
632
+ SLEEP_TIMER = "sleep-timer"
553
633
  SPRING_SERVE_AD_PROVIDER = "spring_serve_ad_provider"
634
+ SYNC = "sync"
635
+ SWEET_FADES = "sweet-fades"
554
636
  TRANSCODER_CACHE = "transcoder_cache"
637
+ TRAILERS = "trailers"
555
638
  TUNER_SHARING = "tuner-sharing"
556
639
  TWO_FACTOR_AUTHENTICATION = "two-factor-authentication"
557
640
  UNSUPPORTEDTUNERS = "unsupportedtuners"
558
641
  UPGRADE_3DS2 = "upgrade-3ds2"
642
+ VISUALIZERS = "visualizers"
559
643
  VOD_SCHEMA = "vod-schema"
560
644
  VOD_CLOUDFLARE = "vod_cloudflare"
645
+ VOLUME_LEVELING = "volume-leveling"
561
646
  WATCH_TOGETHER_INVITE = "watch-together-invite"
647
+ WATCHLIST_RSS = "watchlist-rss"
562
648
  WEB_SERVER_DASHBOARD = "web_server_dashboard"
649
+ WEBHOOKS = "webhooks"
563
650
 
564
651
 
565
652
  class PostUsersSignInDataAuthenticationResponseStatus(str, Enum):
@@ -585,7 +672,14 @@ class PostUsersSignInDataAuthenticationSubscriptionTypedDict(TypedDict):
585
672
 
586
673
 
587
674
  class PostUsersSignInDataAuthenticationSubscription(BaseModel):
588
- features: Optional[List[PostUsersSignInDataAuthenticationFeatures]] = None
675
+ features: Optional[
676
+ List[
677
+ Annotated[
678
+ PostUsersSignInDataAuthenticationFeatures,
679
+ PlainValidator(validate_open_enum(False)),
680
+ ]
681
+ ]
682
+ ] = None
589
683
  r"""List of features allowed on your Plex Pass subscription"""
590
684
 
591
685
  active: Optional[bool] = None