plex-api-client 0.25.2__tar.gz → 0.27.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 (220) hide show
  1. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/PKG-INFO +2 -5
  2. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/pyproject.toml +3 -7
  3. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/_version.py +3 -3
  4. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/library.py +2 -2
  5. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/log.py +2 -2
  6. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/__init__.py +26 -0
  7. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/createplaylist.py +7 -3
  8. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_actors_library.py +12 -3
  9. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_all_libraries.py +5 -2
  10. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_all_media_library.py +67 -16
  11. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_countries_library.py +12 -3
  12. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_genres_library.py +12 -3
  13. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_library_items.py +37 -17
  14. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_media_meta_data.py +550 -373
  15. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_recently_added.py +57 -16
  16. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_recently_added_library.py +5 -3
  17. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_search_all_libraries.py +43 -15
  18. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_search_library.py +12 -3
  19. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_watch_list.py +7 -4
  20. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getplaylistcontents.py +12 -3
  21. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getplaylists.py +7 -5
  22. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/gettimeline.py +6 -3
  23. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/gettokendetails.py +20 -8
  24. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/gettopwatchedcontent.py +7 -3
  25. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getuserfriends.py +5 -2
  26. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/logline.py +6 -3
  27. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/post_users_sign_in_data.py +34 -11
  28. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/starttask.py +5 -3
  29. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/stoptask.py +5 -3
  30. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/playlists.py +4 -4
  31. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/__init__.py +1 -0
  32. plex_api_client-0.27.0/src/plex_api_client/utils/datetimes.py +23 -0
  33. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/serializers.py +32 -3
  34. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/LICENSE.md +0 -0
  35. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/README-PYPI.md +0 -0
  36. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/py.typed +0 -0
  37. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/__init__.py +0 -0
  38. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/_hooks/__init__.py +0 -0
  39. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/_hooks/registration.py +0 -0
  40. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/_hooks/sdkhooks.py +0 -0
  41. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/_hooks/types.py +0 -0
  42. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/activities.py +0 -0
  43. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/authentication.py +0 -0
  44. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/basesdk.py +0 -0
  45. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/butler.py +0 -0
  46. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/httpclient.py +0 -0
  47. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/hubs.py +0 -0
  48. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/media.py +0 -0
  49. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/__init__.py +0 -0
  50. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/components/__init__.py +0 -0
  51. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/components/security.py +0 -0
  52. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/__init__.py +0 -0
  53. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/addplaylistcontents.py +0 -0
  54. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/applyupdates.py +0 -0
  55. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/cancelserveractivities.py +0 -0
  56. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/checkforupdates.py +0 -0
  57. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/clearplaylistcontents.py +0 -0
  58. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/createplaylist.py +0 -0
  59. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/deletelibrary.py +0 -0
  60. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/deleteplaylist.py +0 -0
  61. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/enablepapertrail.py +0 -0
  62. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_actors_library.py +0 -0
  63. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_all_libraries.py +0 -0
  64. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_all_media_library.py +0 -0
  65. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_banner_image.py +0 -0
  66. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_countries_library.py +0 -0
  67. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_genres_library.py +0 -0
  68. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_library_details.py +0 -0
  69. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_library_items.py +0 -0
  70. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_media_meta_data.py +0 -0
  71. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_media_providers.py +0 -0
  72. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_recently_added_library.py +0 -0
  73. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_refresh_library_metadata.py +0 -0
  74. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_search_all_libraries.py +0 -0
  75. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_search_library.py +0 -0
  76. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_server_identity.py +0 -0
  77. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_server_resources.py +0 -0
  78. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_thumb_image.py +0 -0
  79. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_users.py +0 -0
  80. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/get_watch_list.py +0 -0
  81. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getavailableclients.py +0 -0
  82. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getbandwidthstatistics.py +0 -0
  83. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getbutlertasks.py +0 -0
  84. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getcompanionsdata.py +0 -0
  85. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getdevices.py +0 -0
  86. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getfilehash.py +0 -0
  87. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getgeodata.py +0 -0
  88. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getglobalhubs.py +0 -0
  89. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/gethomedata.py +0 -0
  90. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getlibraryhubs.py +0 -0
  91. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getmetadatachildren.py +0 -0
  92. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getmyplexaccount.py +0 -0
  93. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getpin.py +0 -0
  94. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getplaylist.py +0 -0
  95. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getplaylistcontents.py +0 -0
  96. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getplaylists.py +0 -0
  97. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getresizedphoto.py +0 -0
  98. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getresourcesstatistics.py +0 -0
  99. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getsearchresults.py +0 -0
  100. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getserveractivities.py +0 -0
  101. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getservercapabilities.py +0 -0
  102. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getserverlist.py +0 -0
  103. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getserverpreferences.py +0 -0
  104. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getsessionhistory.py +0 -0
  105. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getsessions.py +0 -0
  106. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getsourceconnectioninformation.py +0 -0
  107. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getstatistics.py +0 -0
  108. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/gettimeline.py +0 -0
  109. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/gettokenbypinid.py +0 -0
  110. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/gettokendetails.py +0 -0
  111. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/gettopwatchedcontent.py +0 -0
  112. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/gettranscodesessions.py +0 -0
  113. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/gettransienttoken.py +0 -0
  114. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getupdatestatus.py +0 -0
  115. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/getuserfriends.py +0 -0
  116. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/logline.py +0 -0
  117. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/logmultiline.py +0 -0
  118. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/markplayed.py +0 -0
  119. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/markunplayed.py +0 -0
  120. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/performsearch.py +0 -0
  121. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/performvoicesearch.py +0 -0
  122. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/post_users_sign_in_data.py +0 -0
  123. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/sdkerror.py +0 -0
  124. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/startalltasks.py +0 -0
  125. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/starttask.py +0 -0
  126. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/startuniversaltranscode.py +0 -0
  127. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/stopalltasks.py +0 -0
  128. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/stoptask.py +0 -0
  129. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/stoptranscodesession.py +0 -0
  130. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/updateplaylist.py +0 -0
  131. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/updateplayprogress.py +0 -0
  132. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/errors/uploadplaylist.py +0 -0
  133. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/addplaylistcontents.py +0 -0
  134. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/applyupdates.py +0 -0
  135. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/cancelserveractivities.py +0 -0
  136. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/checkforupdates.py +0 -0
  137. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/clearplaylistcontents.py +0 -0
  138. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/deletelibrary.py +0 -0
  139. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/deleteplaylist.py +0 -0
  140. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/enablepapertrail.py +0 -0
  141. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_banner_image.py +0 -0
  142. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_library_details.py +0 -0
  143. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_media_arts.py +0 -0
  144. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_media_posters.py +0 -0
  145. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_media_providers.py +0 -0
  146. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_refresh_library_metadata.py +0 -0
  147. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_server_identity.py +0 -0
  148. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_server_resources.py +0 -0
  149. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_thumb_image.py +0 -0
  150. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/get_users.py +0 -0
  151. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getavailableclients.py +0 -0
  152. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getbandwidthstatistics.py +0 -0
  153. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getbutlertasks.py +0 -0
  154. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getcompanionsdata.py +0 -0
  155. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getdevices.py +0 -0
  156. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getfilehash.py +0 -0
  157. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getgeodata.py +0 -0
  158. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getglobalhubs.py +0 -0
  159. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/gethomedata.py +0 -0
  160. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getlibraryhubs.py +0 -0
  161. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getmetadatachildren.py +0 -0
  162. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getmyplexaccount.py +0 -0
  163. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getpin.py +0 -0
  164. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getplaylist.py +0 -0
  165. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getresizedphoto.py +0 -0
  166. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getresourcesstatistics.py +0 -0
  167. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getsearchresults.py +0 -0
  168. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getserveractivities.py +0 -0
  169. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getservercapabilities.py +0 -0
  170. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getserverlist.py +0 -0
  171. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getserverpreferences.py +0 -0
  172. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getsessionhistory.py +0 -0
  173. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getsessions.py +0 -0
  174. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getsourceconnectioninformation.py +0 -0
  175. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getstatistics.py +0 -0
  176. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/gettokenbypinid.py +0 -0
  177. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/gettranscodesessions.py +0 -0
  178. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/gettransienttoken.py +0 -0
  179. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/getupdatestatus.py +0 -0
  180. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/logmultiline.py +0 -0
  181. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/markplayed.py +0 -0
  182. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/markunplayed.py +0 -0
  183. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/performsearch.py +0 -0
  184. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/performvoicesearch.py +0 -0
  185. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/post_media_arts.py +0 -0
  186. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/post_media_poster.py +0 -0
  187. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/startalltasks.py +0 -0
  188. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/startuniversaltranscode.py +0 -0
  189. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/stopalltasks.py +0 -0
  190. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/stoptranscodesession.py +0 -0
  191. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/updateplaylist.py +0 -0
  192. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/updateplayprogress.py +0 -0
  193. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/models/operations/uploadplaylist.py +0 -0
  194. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/plex.py +0 -0
  195. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/py.typed +0 -0
  196. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/sdk.py +0 -0
  197. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/sdkconfiguration.py +0 -0
  198. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/search.py +0 -0
  199. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/server.py +0 -0
  200. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/sessions.py +0 -0
  201. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/statistics.py +0 -0
  202. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/types/__init__.py +0 -0
  203. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/types/basemodel.py +0 -0
  204. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/updater.py +0 -0
  205. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/users.py +0 -0
  206. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/annotations.py +0 -0
  207. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/enums.py +0 -0
  208. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/eventstreaming.py +0 -0
  209. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/forms.py +0 -0
  210. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/headers.py +0 -0
  211. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/logger.py +0 -0
  212. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/metadata.py +0 -0
  213. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/queryparams.py +0 -0
  214. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/requestbodies.py +0 -0
  215. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/retries.py +0 -0
  216. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/security.py +0 -0
  217. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/url.py +0 -0
  218. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/utils/values.py +0 -0
  219. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/video.py +0 -0
  220. {plex_api_client-0.25.2 → plex_api_client-0.27.0}/src/plex_api_client/watchlist.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: plex-api-client
3
- Version: 0.25.2
3
+ Version: 0.27.0
4
4
  Summary: Python Client SDK Generated by Speakeasy
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9
@@ -10,11 +10,8 @@ Classifier: Programming Language :: Python :: 3.10
10
10
  Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
- Requires-Dist: eval-type-backport (>=0.2.0)
14
13
  Requires-Dist: httpx (>=0.28.1)
15
- Requires-Dist: pydantic (>=2.10.3)
16
- Requires-Dist: python-dateutil (>=2.8.2)
17
- Requires-Dist: typing-inspection (>=0.4.0)
14
+ Requires-Dist: pydantic (>=2.11.2)
18
15
  Project-URL: Repository, https://github.com/LukeHagar/plexpy.git
19
16
  Description-Content-Type: text/markdown
20
17
 
@@ -1,16 +1,13 @@
1
1
  [project]
2
2
  name = "plex-api-client"
3
- version = "0.25.2"
3
+ version = "0.27.0"
4
4
  description = "Python Client SDK Generated by Speakeasy"
5
5
  authors = [{ name = "Speakeasy" },]
6
6
  readme = "README-PYPI.md"
7
7
  requires-python = ">=3.9"
8
8
  dependencies = [
9
- "eval-type-backport >=0.2.0",
10
9
  "httpx >=0.28.1",
11
- "pydantic >=2.10.3",
12
- "python-dateutil >=2.8.2",
13
- "typing-inspection >=0.4.0",
10
+ "pydantic >=2.11.2",
14
11
  ]
15
12
 
16
13
  [tool.poetry]
@@ -27,9 +24,8 @@ include = ["py.typed", "src/plex_api_client/py.typed"]
27
24
  in-project = true
28
25
 
29
26
  [tool.poetry.group.dev.dependencies]
30
- mypy = "==1.14.1"
27
+ mypy = "==1.15.0"
31
28
  pylint = "==3.2.3"
32
- types-python-dateutil = "^2.9.0.20240316"
33
29
 
34
30
  [build-system]
35
31
  requires = ["poetry-core"]
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "plex-api-client"
6
- __version__: str = "0.25.2"
6
+ __version__: str = "0.27.0"
7
7
  __openapi_doc_version__: str = "0.0.3"
8
- __gen_version__: str = "2.570.4"
9
- __user_agent__: str = "speakeasy-sdk/python 0.25.2 2.570.4 0.0.3 plex-api-client"
8
+ __gen_version__: str = "2.596.2"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.27.0 2.596.2 0.0.3 plex-api-client"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -746,7 +746,7 @@ class Library(BaseSDK):
746
746
 
747
747
 
748
748
  :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server.
749
- :param include_details: Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always.
749
+ :param include_details: Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always.
750
750
  :param retries: Override the default retry configuration for this method
751
751
  :param server_url: Override the default server URL for this method
752
752
  :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -901,7 +901,7 @@ class Library(BaseSDK):
901
901
 
902
902
 
903
903
  :param section_key: The unique key of the Plex library. Note: This is unique in the context of the Plex server.
904
- :param include_details: Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always.
904
+ :param include_details: Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always.
905
905
  :param retries: Override the default retry configuration for this method
906
906
  :param server_url: Override the default server URL for this method
907
907
  :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -27,7 +27,7 @@ class Log(BaseSDK):
27
27
  This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
28
28
 
29
29
 
30
- :param level: An integer log level to write to the PMS log with. 0: Error 1: Warning 2: Info 3: Debug 4: Verbose
30
+ :param level: An integer log level to write to the PMS log with. 0: Error 1: Warning 2: Info 3: Debug 4: Verbose
31
31
  :param message: The text of the message to write to the log.
32
32
  :param source: a string indicating the source of the message.
33
33
  :param retries: Override the default retry configuration for this method
@@ -142,7 +142,7 @@ class Log(BaseSDK):
142
142
  This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
143
143
 
144
144
 
145
- :param level: An integer log level to write to the PMS log with. 0: Error 1: Warning 2: Info 3: Debug 4: Verbose
145
+ :param level: An integer log level to write to the PMS log with. 0: Error 1: Warning 2: Info 3: Debug 4: Verbose
146
146
  :param message: The text of the message to write to the log.
147
147
  :param source: a string indicating the source of the message.
148
148
  :param retries: Override the default retry configuration for this method
@@ -150,6 +150,7 @@ from .get_all_media_library import (
150
150
  GetAllMediaLibrarySort,
151
151
  GetAllMediaLibrarySortTypedDict,
152
152
  GetAllMediaLibraryStream,
153
+ GetAllMediaLibraryStreamType,
153
154
  GetAllMediaLibraryStreamTypedDict,
154
155
  GetAllMediaLibraryType,
155
156
  GetAllMediaLibraryTypeTypedDict,
@@ -315,6 +316,12 @@ from .get_media_arts import (
315
316
  GetMediaArtsResponseTypedDict,
316
317
  )
317
318
  from .get_media_meta_data import (
319
+ Attributes,
320
+ AttributesTypedDict,
321
+ Chapter,
322
+ ChapterTypedDict,
323
+ Extras,
324
+ ExtrasTypedDict,
318
325
  GetMediaMetaDataCountry,
319
326
  GetMediaMetaDataCountryTypedDict,
320
327
  GetMediaMetaDataDirector,
@@ -328,6 +335,7 @@ from .get_media_meta_data import (
328
335
  GetMediaMetaDataImageTypedDict,
329
336
  GetMediaMetaDataLibraryOptimizedForStreaming,
330
337
  GetMediaMetaDataLibraryOptimizedForStreamingTypedDict,
338
+ GetMediaMetaDataLibraryType,
331
339
  GetMediaMetaDataLocation,
332
340
  GetMediaMetaDataLocationTypedDict,
333
341
  GetMediaMetaDataMedia,
@@ -355,11 +363,15 @@ from .get_media_meta_data import (
355
363
  GetMediaMetaDataSimilar,
356
364
  GetMediaMetaDataSimilarTypedDict,
357
365
  GetMediaMetaDataStream,
366
+ GetMediaMetaDataStreamType,
358
367
  GetMediaMetaDataStreamTypedDict,
368
+ GetMediaMetaDataType,
359
369
  GetMediaMetaDataUltraBlurColors,
360
370
  GetMediaMetaDataUltraBlurColorsTypedDict,
361
371
  GetMediaMetaDataWriter,
362
372
  GetMediaMetaDataWriterTypedDict,
373
+ Marker,
374
+ MarkerTypedDict,
363
375
  Ratings,
364
376
  RatingsTypedDict,
365
377
  )
@@ -459,6 +471,7 @@ from .get_recently_added import (
459
471
  Similar,
460
472
  SimilarTypedDict,
461
473
  Stream,
474
+ StreamType,
462
475
  StreamTypedDict,
463
476
  Type,
464
477
  UltraBlurColors,
@@ -1266,6 +1279,8 @@ __all__ = [
1266
1279
  "ApplyUpdatesRequestTypedDict",
1267
1280
  "ApplyUpdatesResponse",
1268
1281
  "ApplyUpdatesResponseTypedDict",
1282
+ "Attributes",
1283
+ "AttributesTypedDict",
1269
1284
  "AutoSelectSubtitle",
1270
1285
  "Billing",
1271
1286
  "BillingTypedDict",
@@ -1277,6 +1292,8 @@ __all__ = [
1277
1292
  "CancelServerActivitiesRequestTypedDict",
1278
1293
  "CancelServerActivitiesResponse",
1279
1294
  "CancelServerActivitiesResponseTypedDict",
1295
+ "Chapter",
1296
+ "ChapterTypedDict",
1280
1297
  "CheckForUpdatesRequest",
1281
1298
  "CheckForUpdatesRequestTypedDict",
1282
1299
  "CheckForUpdatesResponse",
@@ -1326,6 +1343,8 @@ __all__ = [
1326
1343
  "EnablePaperTrailResponse",
1327
1344
  "EnablePaperTrailResponseTypedDict",
1328
1345
  "EpisodeSort",
1346
+ "Extras",
1347
+ "ExtrasTypedDict",
1329
1348
  "Feature",
1330
1349
  "FeatureTypedDict",
1331
1350
  "FieldT",
@@ -1425,6 +1444,7 @@ __all__ = [
1425
1444
  "GetAllMediaLibrarySort",
1426
1445
  "GetAllMediaLibrarySortTypedDict",
1427
1446
  "GetAllMediaLibraryStream",
1447
+ "GetAllMediaLibraryStreamType",
1428
1448
  "GetAllMediaLibraryStreamTypedDict",
1429
1449
  "GetAllMediaLibraryType",
1430
1450
  "GetAllMediaLibraryTypeTypedDict",
@@ -1651,6 +1671,7 @@ __all__ = [
1651
1671
  "GetMediaMetaDataImageTypedDict",
1652
1672
  "GetMediaMetaDataLibraryOptimizedForStreaming",
1653
1673
  "GetMediaMetaDataLibraryOptimizedForStreamingTypedDict",
1674
+ "GetMediaMetaDataLibraryType",
1654
1675
  "GetMediaMetaDataLocation",
1655
1676
  "GetMediaMetaDataLocationTypedDict",
1656
1677
  "GetMediaMetaDataMedia",
@@ -1678,7 +1699,9 @@ __all__ = [
1678
1699
  "GetMediaMetaDataSimilar",
1679
1700
  "GetMediaMetaDataSimilarTypedDict",
1680
1701
  "GetMediaMetaDataStream",
1702
+ "GetMediaMetaDataStreamType",
1681
1703
  "GetMediaMetaDataStreamTypedDict",
1704
+ "GetMediaMetaDataType",
1682
1705
  "GetMediaMetaDataUltraBlurColors",
1683
1706
  "GetMediaMetaDataUltraBlurColorsTypedDict",
1684
1707
  "GetMediaMetaDataWriter",
@@ -2122,6 +2145,8 @@ __all__ = [
2122
2145
  "MarkUnplayedRequestTypedDict",
2123
2146
  "MarkUnplayedResponse",
2124
2147
  "MarkUnplayedResponseTypedDict",
2148
+ "Marker",
2149
+ "MarkerTypedDict",
2125
2150
  "Media",
2126
2151
  "MediaContainer",
2127
2152
  "MediaContainerTypedDict",
@@ -2283,6 +2308,7 @@ __all__ = [
2283
2308
  "StopTranscodeSessionResponse",
2284
2309
  "StopTranscodeSessionResponseTypedDict",
2285
2310
  "Stream",
2311
+ "StreamType",
2286
2312
  "StreamTypedDict",
2287
2313
  "Subscription",
2288
2314
  "SubscriptionTypedDict",
@@ -3,14 +3,16 @@
3
3
  from __future__ import annotations
4
4
  from enum import Enum
5
5
  import httpx
6
+ from plex_api_client import utils
6
7
  from plex_api_client.types import BaseModel
7
- from plex_api_client.utils import FieldMetadata, QueryParamMetadata
8
+ from plex_api_client.utils import FieldMetadata, QueryParamMetadata, validate_open_enum
8
9
  import pydantic
10
+ from pydantic.functional_validators import PlainValidator
9
11
  from typing import List, Optional
10
12
  from typing_extensions import Annotated, NotRequired, TypedDict
11
13
 
12
14
 
13
- class CreatePlaylistQueryParamType(str, Enum):
15
+ class CreatePlaylistQueryParamType(str, Enum, metaclass=utils.OpenEnumMeta):
14
16
  r"""type of playlist to create"""
15
17
 
16
18
  AUDIO = "audio"
@@ -45,7 +47,9 @@ class CreatePlaylistRequest(BaseModel):
45
47
  r"""name of the playlist"""
46
48
 
47
49
  type: Annotated[
48
- CreatePlaylistQueryParamType,
50
+ Annotated[
51
+ CreatePlaylistQueryParamType, PlainValidator(validate_open_enum(False))
52
+ ],
49
53
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
50
54
  ]
51
55
  r"""type of playlist to create"""
@@ -3,14 +3,21 @@
3
3
  from __future__ import annotations
4
4
  from enum import Enum
5
5
  import httpx
6
+ from plex_api_client import utils
6
7
  from plex_api_client.types import BaseModel
7
- from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
8
+ from plex_api_client.utils import (
9
+ FieldMetadata,
10
+ PathParamMetadata,
11
+ QueryParamMetadata,
12
+ validate_open_enum,
13
+ )
8
14
  import pydantic
15
+ from pydantic.functional_validators import PlainValidator
9
16
  from typing import List, Optional
10
17
  from typing_extensions import Annotated, NotRequired, TypedDict
11
18
 
12
19
 
13
- class GetActorsLibraryQueryParamType(int, Enum):
20
+ class GetActorsLibraryQueryParamType(int, Enum, metaclass=utils.OpenEnumMeta):
14
21
  r"""The type of media to retrieve or filter by.
15
22
  1 = movie
16
23
  2 = show
@@ -58,7 +65,9 @@ class GetActorsLibraryRequest(BaseModel):
58
65
  """
59
66
 
60
67
  type: Annotated[
61
- GetActorsLibraryQueryParamType,
68
+ Annotated[
69
+ GetActorsLibraryQueryParamType, PlainValidator(validate_open_enum(True))
70
+ ],
62
71
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
72
  ]
64
73
  r"""The type of media to retrieve or filter by.
@@ -3,13 +3,16 @@
3
3
  from __future__ import annotations
4
4
  from enum import Enum
5
5
  import httpx
6
+ from plex_api_client import utils
6
7
  from plex_api_client.types import BaseModel
8
+ from plex_api_client.utils import validate_open_enum
7
9
  import pydantic
10
+ from pydantic.functional_validators import PlainValidator
8
11
  from typing import List, Optional
9
12
  from typing_extensions import Annotated, NotRequired, TypedDict
10
13
 
11
14
 
12
- class GetAllLibrariesType(str, Enum):
15
+ class GetAllLibrariesType(str, Enum, metaclass=utils.OpenEnumMeta):
13
16
  r"""The library type"""
14
17
 
15
18
  MOVIE = "movie"
@@ -108,7 +111,7 @@ class GetAllLibrariesDirectory(BaseModel):
108
111
  key: str
109
112
  r"""The library key representing the unique identifier"""
110
113
 
111
- type: GetAllLibrariesType
114
+ type: Annotated[GetAllLibrariesType, PlainValidator(validate_open_enum(False))]
112
115
 
113
116
  title: str
114
117
  r"""The title of the library"""
@@ -4,14 +4,21 @@ from __future__ import annotations
4
4
  from datetime import date
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 BaseModel
8
- from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
9
+ from plex_api_client.utils import (
10
+ FieldMetadata,
11
+ PathParamMetadata,
12
+ QueryParamMetadata,
13
+ validate_open_enum,
14
+ )
9
15
  import pydantic
16
+ from pydantic.functional_validators import PlainValidator
10
17
  from typing import List, Optional, Union
11
18
  from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
12
19
 
13
20
 
14
- class GetAllMediaLibraryQueryParamType(int, Enum):
21
+ class GetAllMediaLibraryQueryParamType(int, Enum, metaclass=utils.OpenEnumMeta):
15
22
  r"""The type of media to retrieve or filter by.
16
23
  1 = movie
17
24
  2 = show
@@ -111,7 +118,9 @@ class GetAllMediaLibraryRequest(BaseModel):
111
118
  """
112
119
 
113
120
  type: Annotated[
114
- GetAllMediaLibraryQueryParamType,
121
+ Annotated[
122
+ GetAllMediaLibraryQueryParamType, PlainValidator(validate_open_enum(True))
123
+ ],
115
124
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
116
125
  ]
117
126
  r"""The type of media to retrieve or filter by.
@@ -363,7 +372,7 @@ class GetAllMediaLibraryMeta(BaseModel):
363
372
  ] = None
364
373
 
365
374
 
366
- class GetAllMediaLibraryLibraryType(str, Enum):
375
+ class GetAllMediaLibraryLibraryType(str, Enum, metaclass=utils.OpenEnumMeta):
367
376
  r"""The type of media content"""
368
377
 
369
378
  MOVIE = "movie"
@@ -374,7 +383,7 @@ class GetAllMediaLibraryLibraryType(str, Enum):
374
383
  ALBUM = "album"
375
384
 
376
385
 
377
- class GetAllMediaLibraryLibraryResponseType(str, Enum):
386
+ class GetAllMediaLibraryLibraryResponseType(str, Enum, metaclass=utils.OpenEnumMeta):
378
387
  COVER_POSTER = "coverPoster"
379
388
  BACKGROUND = "background"
380
389
  SNAPSHOT = "snapshot"
@@ -390,7 +399,9 @@ class GetAllMediaLibraryImageTypedDict(TypedDict):
390
399
  class GetAllMediaLibraryImage(BaseModel):
391
400
  alt: str
392
401
 
393
- type: GetAllMediaLibraryLibraryResponseType
402
+ type: Annotated[
403
+ GetAllMediaLibraryLibraryResponseType, PlainValidator(validate_open_enum(False))
404
+ ]
394
405
 
395
406
  url: str
396
407
 
@@ -456,21 +467,41 @@ class GetAllMediaLibraryHasThumbnail(str, Enum):
456
467
  TRUE = "1"
457
468
 
458
469
 
470
+ class GetAllMediaLibraryStreamType(int, Enum, metaclass=utils.OpenEnumMeta):
471
+ r"""Stream type:
472
+ - 1 = video
473
+ - 2 = audio
474
+ - 3 = subtitle
475
+
476
+ """
477
+
478
+ VIDEO = 1
479
+ AUDIO = 2
480
+ SUBTITLE = 3
481
+
482
+
459
483
  class GetAllMediaLibraryStreamTypedDict(TypedDict):
460
484
  id: int
461
485
  r"""Unique stream identifier."""
462
- stream_type: int
463
- r"""Stream type (1=video, 2=audio, 3=subtitle)."""
486
+ stream_type: GetAllMediaLibraryStreamType
487
+ r"""Stream type:
488
+ - 1 = video
489
+ - 2 = audio
490
+ - 3 = subtitle
491
+
492
+ """
464
493
  codec: str
465
494
  r"""Codec used by the stream."""
466
- index: int
467
- r"""Index of the stream."""
468
495
  display_title: str
469
496
  r"""Display title for the stream."""
470
497
  extended_display_title: str
471
498
  r"""Extended display title for the stream."""
499
+ format_: NotRequired[str]
500
+ r"""Format of the stream (e.g., srt)."""
472
501
  default: NotRequired[bool]
473
502
  r"""Indicates if this stream is default."""
503
+ index: NotRequired[int]
504
+ r"""Index of the stream."""
474
505
  bitrate: NotRequired[int]
475
506
  r"""Bitrate of the stream."""
476
507
  language: NotRequired[str]
@@ -518,6 +549,8 @@ class GetAllMediaLibraryStreamTypedDict(TypedDict):
518
549
  r"""Color transfer characteristics."""
519
550
  frame_rate: NotRequired[float]
520
551
  r"""Frame rate of the stream."""
552
+ key: NotRequired[str]
553
+ r"""Key to access this stream part."""
521
554
  height: NotRequired[int]
522
555
  r"""Height of the video stream."""
523
556
  level: NotRequired[int]
@@ -556,24 +589,37 @@ class GetAllMediaLibraryStream(BaseModel):
556
589
  id: int
557
590
  r"""Unique stream identifier."""
558
591
 
559
- stream_type: Annotated[int, pydantic.Field(alias="streamType")]
560
- r"""Stream type (1=video, 2=audio, 3=subtitle)."""
592
+ stream_type: Annotated[
593
+ Annotated[
594
+ GetAllMediaLibraryStreamType, PlainValidator(validate_open_enum(True))
595
+ ],
596
+ pydantic.Field(alias="streamType"),
597
+ ]
598
+ r"""Stream type:
599
+ - 1 = video
600
+ - 2 = audio
601
+ - 3 = subtitle
602
+
603
+ """
561
604
 
562
605
  codec: str
563
606
  r"""Codec used by the stream."""
564
607
 
565
- index: int
566
- r"""Index of the stream."""
567
-
568
608
  display_title: Annotated[str, pydantic.Field(alias="displayTitle")]
569
609
  r"""Display title for the stream."""
570
610
 
571
611
  extended_display_title: Annotated[str, pydantic.Field(alias="extendedDisplayTitle")]
572
612
  r"""Extended display title for the stream."""
573
613
 
614
+ format_: Annotated[Optional[str], pydantic.Field(alias="format")] = None
615
+ r"""Format of the stream (e.g., srt)."""
616
+
574
617
  default: Optional[bool] = None
575
618
  r"""Indicates if this stream is default."""
576
619
 
620
+ index: Optional[int] = None
621
+ r"""Index of the stream."""
622
+
577
623
  bitrate: Optional[int] = None
578
624
  r"""Bitrate of the stream."""
579
625
 
@@ -663,6 +709,9 @@ class GetAllMediaLibraryStream(BaseModel):
663
709
  frame_rate: Annotated[Optional[float], pydantic.Field(alias="frameRate")] = None
664
710
  r"""Frame rate of the stream."""
665
711
 
712
+ key: Optional[str] = None
713
+ r"""Key to access this stream part."""
714
+
666
715
  height: Optional[int] = None
667
716
  r"""Height of the video stream."""
668
717
 
@@ -1143,7 +1192,9 @@ class GetAllMediaLibraryMetadata(BaseModel):
1143
1192
  slug: str
1144
1193
  r"""A URL‐friendly version of the media title."""
1145
1194
 
1146
- type: GetAllMediaLibraryLibraryType
1195
+ type: Annotated[
1196
+ GetAllMediaLibraryLibraryType, PlainValidator(validate_open_enum(False))
1197
+ ]
1147
1198
 
1148
1199
  title: str
1149
1200
  r"""The title of the media item."""
@@ -3,14 +3,21 @@
3
3
  from __future__ import annotations
4
4
  from enum import Enum
5
5
  import httpx
6
+ from plex_api_client import utils
6
7
  from plex_api_client.types import BaseModel
7
- from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
8
+ from plex_api_client.utils import (
9
+ FieldMetadata,
10
+ PathParamMetadata,
11
+ QueryParamMetadata,
12
+ validate_open_enum,
13
+ )
8
14
  import pydantic
15
+ from pydantic.functional_validators import PlainValidator
9
16
  from typing import List, Optional
10
17
  from typing_extensions import Annotated, NotRequired, TypedDict
11
18
 
12
19
 
13
- class GetCountriesLibraryQueryParamType(int, Enum):
20
+ class GetCountriesLibraryQueryParamType(int, Enum, metaclass=utils.OpenEnumMeta):
14
21
  r"""The type of media to retrieve or filter by.
15
22
  1 = movie
16
23
  2 = show
@@ -58,7 +65,9 @@ class GetCountriesLibraryRequest(BaseModel):
58
65
  """
59
66
 
60
67
  type: Annotated[
61
- GetCountriesLibraryQueryParamType,
68
+ Annotated[
69
+ GetCountriesLibraryQueryParamType, PlainValidator(validate_open_enum(True))
70
+ ],
62
71
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
72
  ]
64
73
  r"""The type of media to retrieve or filter by.
@@ -3,14 +3,21 @@
3
3
  from __future__ import annotations
4
4
  from enum import Enum
5
5
  import httpx
6
+ from plex_api_client import utils
6
7
  from plex_api_client.types import BaseModel
7
- from plex_api_client.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
8
+ from plex_api_client.utils import (
9
+ FieldMetadata,
10
+ PathParamMetadata,
11
+ QueryParamMetadata,
12
+ validate_open_enum,
13
+ )
8
14
  import pydantic
15
+ from pydantic.functional_validators import PlainValidator
9
16
  from typing import List, Optional
10
17
  from typing_extensions import Annotated, NotRequired, TypedDict
11
18
 
12
19
 
13
- class GetGenresLibraryQueryParamType(int, Enum):
20
+ class GetGenresLibraryQueryParamType(int, Enum, metaclass=utils.OpenEnumMeta):
14
21
  r"""The type of media to retrieve or filter by.
15
22
  1 = movie
16
23
  2 = show
@@ -58,7 +65,9 @@ class GetGenresLibraryRequest(BaseModel):
58
65
  """
59
66
 
60
67
  type: Annotated[
61
- GetGenresLibraryQueryParamType,
68
+ Annotated[
69
+ GetGenresLibraryQueryParamType, PlainValidator(validate_open_enum(True))
70
+ ],
62
71
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
72
  ]
64
73
  r"""The type of media to retrieve or filter by.