From 4197184f92b627987cd3e9f9fb503ee63898074a Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Mon, 9 Jun 2025 00:28:07 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.557.0 --- .speakeasy/gen.lock | 90 ++-- .speakeasy/gen.yaml | 3 +- .speakeasy/workflow.lock | 14 +- LukeHagar/PlexAPI/SDK/Activities.cs | 4 +- LukeHagar/PlexAPI/SDK/Authentication.cs | 4 +- LukeHagar/PlexAPI/SDK/Butler.cs | 4 +- LukeHagar/PlexAPI/SDK/Hubs.cs | 4 +- LukeHagar/PlexAPI/SDK/Library.cs | 4 +- LukeHagar/PlexAPI/SDK/Log.cs | 4 +- .../PlexAPI/SDK/LukeHagar.PlexAPI.SDK.csproj | 2 +- LukeHagar/PlexAPI/SDK/Media.cs | 4 +- .../Requests/EnableCreditsMarkerGeneration.cs | 60 --- .../SDK/Models/Requests/EpisodeSort.cs | 62 --- .../SDK/Models/Requests/FlattenSeasons.cs | 6 +- .../GetActorsLibraryMediaContainer.cs | 2 +- .../Requests/GetLibraryItemsCollection.cs | 5 +- .../Models/Requests/GetLibraryItemsCountry.cs | 16 +- .../Requests/GetLibraryItemsDirector.cs | 17 +- .../Models/Requests/GetLibraryItemsFilter.cs | 3 - .../Models/Requests/GetLibraryItemsGenre.cs | 20 +- .../{MediaGuid.cs => GetLibraryItemsGuids.cs} | 5 +- .../Requests/GetLibraryItemsHasThumbnail.cs | 7 + .../Models/Requests/GetLibraryItemsImage.cs | 2 +- .../GetLibraryItemsLibraryActiveDirection.cs | 64 --- .../GetLibraryItemsLibraryDefaultDirection.cs | 64 --- .../Requests/GetLibraryItemsLibraryField.cs | 30 -- .../GetLibraryItemsLibraryFieldType.cs | 26 - ...ibraryItemsLibraryOptimizedForStreaming.cs | 203 +++++++ .../GetLibraryItemsLibraryResponse200Type.cs | 61 --- .../GetLibraryItemsLibraryResponseType.cs | 68 ++- .../Requests/GetLibraryItemsLibrarySort.cs | 57 -- .../Requests/GetLibraryItemsLibraryType.cs | 87 +-- .../Requests/GetLibraryItemsLocation.cs | 5 +- .../Models/Requests/GetLibraryItemsMedia.cs | 82 ++- .../Requests/GetLibraryItemsMediaContainer.cs | 89 +++- .../Models/Requests/GetLibraryItemsMeta.cs | 4 +- .../Requests/GetLibraryItemsMetadata.cs | 497 +++++++++++------- .../GetLibraryItemsOptimizedForStreaming.cs | 185 ++++++- ... GetLibraryItemsOptimizedForStreaming1.cs} | 9 +- .../Models/Requests/GetLibraryItemsPart.cs | 82 ++- .../Requests/GetLibraryItemsProducer.cs | 54 ++ .../Models/Requests/GetLibraryItemsRole.cs | 39 +- ...ataRating.cs => GetLibraryItemsSimilar.cs} | 20 +- .../Models/Requests/GetLibraryItemsStream.cs | 234 --------- .../Models/Requests/GetLibraryItemsType.cs | 90 +++- .../Models/Requests/GetLibraryItemsWriter.cs | 17 +- ...SectionsAllLibraryOptimizedForStreaming.cs | 22 +- .../GetLibrarySectionsAllMediaContainer.cs | 4 +- .../Requests/GetLibrarySectionsAllMetadata.cs | 2 +- ...LibrarySectionsAllOptimizedForStreaming.cs | 22 +- ...ctionsAllOptimizedForStreamingLibrary1.cs} | 17 +- .../Requests/GetLibrarySectionsAllStream.cs | 9 +- .../GetLibrarySectionsAllStreamType.cs | 31 -- .../Requests/GetMediaMetaDataAttributes.cs | 33 ++ ...ryFilter.cs => GetMediaMetaDataChapter.cs} | 24 +- ...yOperator.cs => GetMediaMetaDataExtras.cs} | 12 +- .../Requests/GetMediaMetaDataHasThumbnail.cs | 6 +- ...diaMetaDataLibraryOptimizedForStreaming.cs | 6 +- .../Models/Requests/GetMediaMetaDataMarker.cs | 43 ++ .../Models/Requests/GetMediaMetaDataMedia.cs | 13 +- .../GetMediaMetaDataMediaContainer.cs | 4 +- .../Requests/GetMediaMetaDataMetadata.cs | 16 +- .../Models/Requests/GetMediaMetaDataPart.cs | 15 +- ...taRating.cs => GetMediaMetaDataRatings.cs} | 6 +- .../Models/Requests/GetMediaMetaDataStream.cs | 15 +- .../Requests/GetRecentlyAddedMetadata.cs | 8 +- .../Requests/GetSearchAllLibrariesCountry.cs | 16 +- .../Requests/GetSearchAllLibrariesDirector.cs | 17 +- .../GetSearchAllLibrariesDirectory.cs | 87 +++ ...lLibrariesEnableCreditsMarkerGeneration.cs | 60 --- .../GetSearchAllLibrariesEpisodeSort.cs | 62 --- .../GetSearchAllLibrariesFlattenSeasons.cs | 6 +- .../Requests/GetSearchAllLibrariesGenre.cs | 20 +- ...aGuid.cs => GetSearchAllLibrariesGuids.cs} | 5 +- .../GetSearchAllLibrariesHasThumbnail.cs | 7 + ...llLibrariesLibraryOptimizedForStreaming.cs | 203 +++++++ .../Requests/GetSearchAllLibrariesLocation.cs | 5 +- .../Requests/GetSearchAllLibrariesMedia.cs | 82 ++- .../GetSearchAllLibrariesMediaContainer.cs | 47 +- .../Requests/GetSearchAllLibrariesMetadata.cs | 494 ++++++++++------- ...SearchAllLibrariesOptimizedForStreaming.cs | 185 ++++++- ...archAllLibrariesOptimizedForStreaming1.cs} | 17 +- ...lLibrariesOptimizedForStreamingLibrary1.cs | 20 + .../Requests/GetSearchAllLibrariesPart.cs | 82 ++- .../Requests/GetSearchAllLibrariesRole.cs | 39 +- .../GetSearchAllLibrariesShowOrdering.cs | 11 +- .../Requests/GetSearchAllLibrariesStream.cs | 234 --------- .../Requests/GetSearchAllLibrariesWriter.cs | 17 +- .../SDK/Models/Requests/SearchResult.cs | 8 +- .../SDK/Models/Requests/ShowOrdering.cs | 11 +- .../PlexAPI/SDK/Models/Requests/Stream.cs | 9 +- LukeHagar/PlexAPI/SDK/Playlists.cs | 4 +- LukeHagar/PlexAPI/SDK/Plex.cs | 4 +- LukeHagar/PlexAPI/SDK/PlexAPI.cs | 4 +- LukeHagar/PlexAPI/SDK/SDKConfig.cs | 2 +- LukeHagar/PlexAPI/SDK/Search.cs | 4 +- LukeHagar/PlexAPI/SDK/Server.cs | 4 +- LukeHagar/PlexAPI/SDK/Sessions.cs | 4 +- LukeHagar/PlexAPI/SDK/Statistics.cs | 4 +- LukeHagar/PlexAPI/SDK/Updater.cs | 4 +- LukeHagar/PlexAPI/SDK/Users.cs | 4 +- LukeHagar/PlexAPI/SDK/Video.cs | 4 +- LukeHagar/PlexAPI/SDK/Watchlist.cs | 4 +- RELEASES.md | 12 +- .../Requests/EnableCreditsMarkerGeneration.md | 11 - docs/Models/Requests/EpisodeSort.md | 12 - docs/Models/Requests/FlattenSeasons.md | 1 + .../GetActorsLibraryMediaContainer.md | 2 +- .../Requests/GetLibraryItemsCollection.md | 6 +- .../Models/Requests/GetLibraryItemsCountry.md | 7 +- .../Requests/GetLibraryItemsDirector.md | 8 +- docs/Models/Requests/GetLibraryItemsFilter.md | 3 +- docs/Models/Requests/GetLibraryItemsGenre.md | 7 +- docs/Models/Requests/GetLibraryItemsGuids.md | 8 + .../Requests/GetLibraryItemsHasThumbnail.md | 3 + docs/Models/Requests/GetLibraryItemsImage.md | 10 +- .../GetLibraryItemsLibraryActiveDirection.md | 12 - .../GetLibraryItemsLibraryDefaultDirection.md | 12 - .../Requests/GetLibraryItemsLibraryField.md | 11 - .../GetLibraryItemsLibraryFieldType.md | 9 - .../Requests/GetLibraryItemsLibraryFilter.md | 12 - .../GetLibraryItemsLibraryOperator.md | 9 - ...ibraryItemsLibraryOptimizedForStreaming.md | 19 + .../GetLibraryItemsLibraryResponse200Type.md | 11 - .../GetLibraryItemsLibraryResponseType.md | 17 +- .../Requests/GetLibraryItemsLibrarySort.md | 15 - .../Requests/GetLibraryItemsLibraryType.md | 26 +- .../Requests/GetLibraryItemsLocation.md | 8 +- docs/Models/Requests/GetLibraryItemsMedia.md | 41 +- .../Requests/GetLibraryItemsMediaContainer.md | 45 +- docs/Models/Requests/GetLibraryItemsMeta.md | 8 +- .../Requests/GetLibraryItemsMetadata.md | 161 +++--- .../GetLibraryItemsOptimizedForStreaming.md | 19 +- .../GetLibraryItemsOptimizedForStreaming1.md | 9 + docs/Models/Requests/GetLibraryItemsPart.md | 32 +- .../Requests/GetLibraryItemsProducer.md | 13 + docs/Models/Requests/GetLibraryItemsRole.md | 14 +- .../Models/Requests/GetLibraryItemsSimilar.md | 10 + docs/Models/Requests/GetLibraryItemsStream.md | 45 -- docs/Models/Requests/GetLibraryItemsType.md | 27 +- docs/Models/Requests/GetLibraryItemsWriter.md | 8 +- ...SectionsAllLibraryOptimizedForStreaming.md | 4 +- .../GetLibrarySectionsAllMediaContainer.md | 4 +- .../Requests/GetLibrarySectionsAllMetadata.md | 2 +- ...LibrarySectionsAllOptimizedForStreaming.md | 4 +- ...ectionsAllOptimizedForStreamingLibrary1.md | 9 + .../Requests/GetLibrarySectionsAllStream.md | 106 ++-- .../GetLibrarySectionsAllStreamType.md | 16 - .../Requests/GetMediaMetaDataAttributes.md | 11 + .../Requests/GetMediaMetaDataChapter.md | 15 + .../Models/Requests/GetMediaMetaDataExtras.md | 8 + .../Requests/GetMediaMetaDataHasThumbnail.md | 1 + ...diaMetaDataLibraryOptimizedForStreaming.md | 1 + .../Models/Requests/GetMediaMetaDataMarker.md | 15 + docs/Models/Requests/GetMediaMetaDataMedia.md | 42 +- .../GetMediaMetaDataMediaContainer.md | 4 +- .../Requests/GetMediaMetaDataMetadata.md | 16 +- docs/Models/Requests/GetMediaMetaDataPart.md | 10 +- ...taRating.md => GetMediaMetaDataRatings.md} | 6 +- .../Models/Requests/GetMediaMetaDataStream.md | 106 ++-- .../Requests/GetMediaMetaDataStreamType.md | 16 - .../Requests/GetRecentlyAddedMetadata.md | 8 +- .../GetSearchAllLibrariesCollection.md | 8 - .../Requests/GetSearchAllLibrariesCountry.md | 7 +- .../Requests/GetSearchAllLibrariesDirector.md | 8 +- .../GetSearchAllLibrariesDirectory.md | 20 + ...lLibrariesEnableCreditsMarkerGeneration.md | 11 - .../GetSearchAllLibrariesEpisodeSort.md | 12 - .../GetSearchAllLibrariesFlattenSeasons.md | 1 + .../Requests/GetSearchAllLibrariesGenre.md | 7 +- .../Requests/GetSearchAllLibrariesGuids.md | 8 + .../GetSearchAllLibrariesHasThumbnail.md | 3 + ...llLibrariesLibraryOptimizedForStreaming.md | 19 + .../Requests/GetSearchAllLibrariesLocation.md | 8 +- .../Requests/GetSearchAllLibrariesMedia.md | 41 +- .../GetSearchAllLibrariesMediaContainer.md | 15 +- .../GetSearchAllLibrariesMediaGuid.md | 8 - .../GetSearchAllLibrariesMetaDataRating.md | 10 - .../Requests/GetSearchAllLibrariesMetadata.md | 155 +++--- ...SearchAllLibrariesOptimizedForStreaming.md | 19 +- ...earchAllLibrariesOptimizedForStreaming1.md | 9 + ...lLibrariesOptimizedForStreamingLibrary1.md | 9 + .../Requests/GetSearchAllLibrariesPart.md | 32 +- .../Requests/GetSearchAllLibrariesRole.md | 14 +- .../GetSearchAllLibrariesShowOrdering.md | 11 +- .../Requests/GetSearchAllLibrariesStream.md | 45 -- .../Requests/GetSearchAllLibrariesWriter.md | 8 +- docs/Models/Requests/MediaGuid.md | 8 - docs/Models/Requests/SearchResult.md | 9 +- docs/Models/Requests/ShowOrdering.md | 11 +- docs/Models/Requests/Stream.md | 2 +- docs/Models/Requests/StreamType.md | 16 - 192 files changed, 3360 insertions(+), 2768 deletions(-) delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/EnableCreditsMarkerGeneration.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/EpisodeSort.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{MediaGuid.cs => GetLibraryItemsGuids.cs} (83%) delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryActiveDirection.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryDefaultDirection.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryField.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFieldType.cs create mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponse200Type.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibrarySort.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{GetSearchAllLibrariesCollection.cs => GetLibraryItemsOptimizedForStreaming1.cs} (77%) create mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsProducer.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{GetSearchAllLibrariesMetaDataRating.cs => GetLibraryItemsSimilar.cs} (60%) delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsStream.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{StreamType.cs => GetLibrarySectionsAllOptimizedForStreamingLibrary1.cs} (63%) delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStreamType.cs create mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataAttributes.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{GetLibraryItemsLibraryFilter.cs => GetMediaMetaDataChapter.cs} (52%) rename LukeHagar/PlexAPI/SDK/Models/Requests/{GetLibraryItemsLibraryOperator.cs => GetMediaMetaDataExtras.cs} (71%) create mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMarker.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{MetaDataRating.cs => GetMediaMetaDataRatings.cs} (89%) create mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirectory.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEpisodeSort.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{GetSearchAllLibrariesMediaGuid.cs => GetSearchAllLibrariesGuids.cs} (81%) create mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.cs rename LukeHagar/PlexAPI/SDK/Models/Requests/{GetMediaMetaDataStreamType.cs => GetSearchAllLibrariesOptimizedForStreaming1.cs} (62%) create mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.cs delete mode 100644 LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesStream.cs delete mode 100644 docs/Models/Requests/EnableCreditsMarkerGeneration.md delete mode 100644 docs/Models/Requests/EpisodeSort.md create mode 100644 docs/Models/Requests/GetLibraryItemsGuids.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibraryActiveDirection.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibraryDefaultDirection.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibraryField.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibraryFieldType.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibraryFilter.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibraryOperator.md create mode 100644 docs/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibraryResponse200Type.md delete mode 100644 docs/Models/Requests/GetLibraryItemsLibrarySort.md create mode 100644 docs/Models/Requests/GetLibraryItemsOptimizedForStreaming1.md create mode 100644 docs/Models/Requests/GetLibraryItemsProducer.md create mode 100644 docs/Models/Requests/GetLibraryItemsSimilar.md delete mode 100644 docs/Models/Requests/GetLibraryItemsStream.md create mode 100644 docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.md delete mode 100644 docs/Models/Requests/GetLibrarySectionsAllStreamType.md create mode 100644 docs/Models/Requests/GetMediaMetaDataAttributes.md create mode 100644 docs/Models/Requests/GetMediaMetaDataChapter.md create mode 100644 docs/Models/Requests/GetMediaMetaDataExtras.md create mode 100644 docs/Models/Requests/GetMediaMetaDataMarker.md rename docs/Models/Requests/{MetaDataRating.md => GetMediaMetaDataRatings.md} (83%) delete mode 100644 docs/Models/Requests/GetMediaMetaDataStreamType.md delete mode 100644 docs/Models/Requests/GetSearchAllLibrariesCollection.md create mode 100644 docs/Models/Requests/GetSearchAllLibrariesDirectory.md delete mode 100644 docs/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.md delete mode 100644 docs/Models/Requests/GetSearchAllLibrariesEpisodeSort.md create mode 100644 docs/Models/Requests/GetSearchAllLibrariesGuids.md create mode 100644 docs/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.md delete mode 100644 docs/Models/Requests/GetSearchAllLibrariesMediaGuid.md delete mode 100644 docs/Models/Requests/GetSearchAllLibrariesMetaDataRating.md create mode 100644 docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.md create mode 100644 docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.md delete mode 100644 docs/Models/Requests/GetSearchAllLibrariesStream.md delete mode 100644 docs/Models/Requests/MediaGuid.md delete mode 100644 docs/Models/Requests/StreamType.md diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index f5557d8..5a9c60f 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 5a8dbcbc-e0ee-41f0-9d84-b8b50567d1e9 management: - docChecksum: b2624bb972abebc11eff6d460c59de68 + docChecksum: 77bdddd188d0778dc73b7f7906e1677c docVersion: 0.0.3 - speakeasyVersion: 1.555.2 - generationVersion: 2.620.2 - releaseVersion: 0.15.0 - configChecksum: 71515a94a0f2e543a0c76480036249a6 + speakeasyVersion: 1.557.0 + generationVersion: 2.623.0 + releaseVersion: 0.15.1 + configChecksum: 0d77f3a7a510b4818fc2819df5d3ceae repoURL: https://github.com/LukeHagar/plexcsharp.git repoSubDirectory: . published: true @@ -407,9 +407,7 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/Director.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Directory.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Download.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/EnableCreditsMarkerGeneration.cs - LukeHagar/PlexAPI/SDK/Models/Requests/EnablePaperTrailResponse.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/EpisodeSort.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Extras.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Feature.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Field.cs @@ -505,17 +503,11 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsFieldType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsFilter.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGenre.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGuids.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsHasThumbnail.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsImage.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryActiveDirection.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryDefaultDirection.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryField.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFieldType.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFilter.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOperator.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponse200Type.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponseType.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibrarySort.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLocation.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMedia.cs @@ -524,15 +516,17 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMetadata.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOperator.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming1.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsPart.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsProducer.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsQueryParamIncludeMeta.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsQueryParamType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsRequest.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsResponse.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsResponseBody.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsRole.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsSimilar.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsSort.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsStream.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsUltraBlurColors.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsWriter.cs @@ -558,6 +552,7 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOperator.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming1.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllPart.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllQueryParamIncludeMeta.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllQueryParamType.cs @@ -567,7 +562,6 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllRole.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllSort.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStream.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStreamType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllUltraBlurColors.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllWriter.cs @@ -576,8 +570,11 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaArtsRequest.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaArtsResponse.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaArtsResponseBody.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataAttributes.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataChapter.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataCountry.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataDirector.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataExtras.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataGenre.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataGuids.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataHasThumbnail.cs @@ -585,6 +582,7 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataLibraryType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataLocation.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMarker.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMedia.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMediaContainer.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMetadata.cs @@ -593,13 +591,13 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataOptimizedForStreamingLibrary1.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataPart.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataProducer.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataRatings.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataRequest.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataResponse.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataResponseBody.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataRole.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataSimilar.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStream.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStreamType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataUltraBlurColors.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataWriter.cs @@ -687,23 +685,23 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetResourcesStatisticsRequest.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetResourcesStatisticsResponse.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetResourcesStatisticsResponseBody.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCollection.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCountry.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirector.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEpisodeSort.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirectory.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesFlattenSeasons.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGenre.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGuids.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesHasThumbnail.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesImage.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLibraryType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLocation.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMedia.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaContainer.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaGuid.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetaDataRating.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetadata.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.cs + - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesPart.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesQueryParamIncludeCollections.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesQueryParamIncludeExternalMedia.cs @@ -712,7 +710,6 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesResponseBody.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesRole.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesShowOrdering.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesStream.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesUltraBlurColors.cs - LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesWriter.cs @@ -845,11 +842,9 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/Marker.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Media.cs - LukeHagar/PlexAPI/SDK/Models/Requests/MediaContainer.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/MediaGuid.cs - LukeHagar/PlexAPI/SDK/Models/Requests/MediaProvider.cs - LukeHagar/PlexAPI/SDK/Models/Requests/MediaReviewsVisibility.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Meta.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/MetaDataRating.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Metadata.cs - LukeHagar/PlexAPI/SDK/Models/Requests/MinSize.cs - LukeHagar/PlexAPI/SDK/Models/Requests/MyPlex.cs @@ -942,7 +937,6 @@ generatedFiles: - LukeHagar/PlexAPI/SDK/Models/Requests/StopTranscodeSessionRequest.cs - LukeHagar/PlexAPI/SDK/Models/Requests/StopTranscodeSessionResponse.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Stream.cs - - LukeHagar/PlexAPI/SDK/Models/Requests/StreamType.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Subscription.cs - LukeHagar/PlexAPI/SDK/Models/Requests/Tag.cs - LukeHagar/PlexAPI/SDK/Models/Requests/TaskName.cs @@ -1355,9 +1349,7 @@ generatedFiles: - docs/Models/Requests/Director.md - docs/Models/Requests/Directory.md - docs/Models/Requests/Download.md - - docs/Models/Requests/EnableCreditsMarkerGeneration.md - docs/Models/Requests/EnablePaperTrailResponse.md - - docs/Models/Requests/EpisodeSort.md - docs/Models/Requests/Extras.md - docs/Models/Requests/Feature.md - docs/Models/Requests/Field.md @@ -1453,17 +1445,11 @@ generatedFiles: - docs/Models/Requests/GetLibraryItemsFieldType.md - docs/Models/Requests/GetLibraryItemsFilter.md - docs/Models/Requests/GetLibraryItemsGenre.md + - docs/Models/Requests/GetLibraryItemsGuids.md - docs/Models/Requests/GetLibraryItemsHasThumbnail.md - docs/Models/Requests/GetLibraryItemsImage.md - - docs/Models/Requests/GetLibraryItemsLibraryActiveDirection.md - - docs/Models/Requests/GetLibraryItemsLibraryDefaultDirection.md - - docs/Models/Requests/GetLibraryItemsLibraryField.md - - docs/Models/Requests/GetLibraryItemsLibraryFieldType.md - - docs/Models/Requests/GetLibraryItemsLibraryFilter.md - - docs/Models/Requests/GetLibraryItemsLibraryOperator.md - - docs/Models/Requests/GetLibraryItemsLibraryResponse200Type.md + - docs/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.md - docs/Models/Requests/GetLibraryItemsLibraryResponseType.md - - docs/Models/Requests/GetLibraryItemsLibrarySort.md - docs/Models/Requests/GetLibraryItemsLibraryType.md - docs/Models/Requests/GetLibraryItemsLocation.md - docs/Models/Requests/GetLibraryItemsMedia.md @@ -1472,15 +1458,17 @@ generatedFiles: - docs/Models/Requests/GetLibraryItemsMetadata.md - docs/Models/Requests/GetLibraryItemsOperator.md - docs/Models/Requests/GetLibraryItemsOptimizedForStreaming.md + - docs/Models/Requests/GetLibraryItemsOptimizedForStreaming1.md - docs/Models/Requests/GetLibraryItemsPart.md + - docs/Models/Requests/GetLibraryItemsProducer.md - docs/Models/Requests/GetLibraryItemsQueryParamIncludeMeta.md - docs/Models/Requests/GetLibraryItemsQueryParamType.md - docs/Models/Requests/GetLibraryItemsRequest.md - docs/Models/Requests/GetLibraryItemsResponse.md - docs/Models/Requests/GetLibraryItemsResponseBody.md - docs/Models/Requests/GetLibraryItemsRole.md + - docs/Models/Requests/GetLibraryItemsSimilar.md - docs/Models/Requests/GetLibraryItemsSort.md - - docs/Models/Requests/GetLibraryItemsStream.md - docs/Models/Requests/GetLibraryItemsType.md - docs/Models/Requests/GetLibraryItemsUltraBlurColors.md - docs/Models/Requests/GetLibraryItemsWriter.md @@ -1506,6 +1494,7 @@ generatedFiles: - docs/Models/Requests/GetLibrarySectionsAllOperator.md - docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.md - docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming1.md + - docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.md - docs/Models/Requests/GetLibrarySectionsAllPart.md - docs/Models/Requests/GetLibrarySectionsAllQueryParamIncludeMeta.md - docs/Models/Requests/GetLibrarySectionsAllQueryParamType.md @@ -1515,7 +1504,6 @@ generatedFiles: - docs/Models/Requests/GetLibrarySectionsAllRole.md - docs/Models/Requests/GetLibrarySectionsAllSort.md - docs/Models/Requests/GetLibrarySectionsAllStream.md - - docs/Models/Requests/GetLibrarySectionsAllStreamType.md - docs/Models/Requests/GetLibrarySectionsAllType.md - docs/Models/Requests/GetLibrarySectionsAllUltraBlurColors.md - docs/Models/Requests/GetLibrarySectionsAllWriter.md @@ -1524,8 +1512,11 @@ generatedFiles: - docs/Models/Requests/GetMediaArtsRequest.md - docs/Models/Requests/GetMediaArtsResponse.md - docs/Models/Requests/GetMediaArtsResponseBody.md + - docs/Models/Requests/GetMediaMetaDataAttributes.md + - docs/Models/Requests/GetMediaMetaDataChapter.md - docs/Models/Requests/GetMediaMetaDataCountry.md - docs/Models/Requests/GetMediaMetaDataDirector.md + - docs/Models/Requests/GetMediaMetaDataExtras.md - docs/Models/Requests/GetMediaMetaDataGenre.md - docs/Models/Requests/GetMediaMetaDataGuids.md - docs/Models/Requests/GetMediaMetaDataHasThumbnail.md @@ -1533,6 +1524,7 @@ generatedFiles: - docs/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.md - docs/Models/Requests/GetMediaMetaDataLibraryType.md - docs/Models/Requests/GetMediaMetaDataLocation.md + - docs/Models/Requests/GetMediaMetaDataMarker.md - docs/Models/Requests/GetMediaMetaDataMedia.md - docs/Models/Requests/GetMediaMetaDataMediaContainer.md - docs/Models/Requests/GetMediaMetaDataMetadata.md @@ -1541,13 +1533,13 @@ generatedFiles: - docs/Models/Requests/GetMediaMetaDataOptimizedForStreamingLibrary1.md - docs/Models/Requests/GetMediaMetaDataPart.md - docs/Models/Requests/GetMediaMetaDataProducer.md + - docs/Models/Requests/GetMediaMetaDataRatings.md - docs/Models/Requests/GetMediaMetaDataRequest.md - docs/Models/Requests/GetMediaMetaDataResponse.md - docs/Models/Requests/GetMediaMetaDataResponseBody.md - docs/Models/Requests/GetMediaMetaDataRole.md - docs/Models/Requests/GetMediaMetaDataSimilar.md - docs/Models/Requests/GetMediaMetaDataStream.md - - docs/Models/Requests/GetMediaMetaDataStreamType.md - docs/Models/Requests/GetMediaMetaDataType.md - docs/Models/Requests/GetMediaMetaDataUltraBlurColors.md - docs/Models/Requests/GetMediaMetaDataWriter.md @@ -1635,23 +1627,23 @@ generatedFiles: - docs/Models/Requests/GetResourcesStatisticsRequest.md - docs/Models/Requests/GetResourcesStatisticsResponse.md - docs/Models/Requests/GetResourcesStatisticsResponseBody.md - - docs/Models/Requests/GetSearchAllLibrariesCollection.md - docs/Models/Requests/GetSearchAllLibrariesCountry.md - docs/Models/Requests/GetSearchAllLibrariesDirector.md - - docs/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.md - - docs/Models/Requests/GetSearchAllLibrariesEpisodeSort.md + - docs/Models/Requests/GetSearchAllLibrariesDirectory.md - docs/Models/Requests/GetSearchAllLibrariesFlattenSeasons.md - docs/Models/Requests/GetSearchAllLibrariesGenre.md + - docs/Models/Requests/GetSearchAllLibrariesGuids.md - docs/Models/Requests/GetSearchAllLibrariesHasThumbnail.md - docs/Models/Requests/GetSearchAllLibrariesImage.md + - docs/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.md - docs/Models/Requests/GetSearchAllLibrariesLibraryType.md - docs/Models/Requests/GetSearchAllLibrariesLocation.md - docs/Models/Requests/GetSearchAllLibrariesMedia.md - docs/Models/Requests/GetSearchAllLibrariesMediaContainer.md - - docs/Models/Requests/GetSearchAllLibrariesMediaGuid.md - - docs/Models/Requests/GetSearchAllLibrariesMetaDataRating.md - docs/Models/Requests/GetSearchAllLibrariesMetadata.md - docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.md + - docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.md + - docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.md - docs/Models/Requests/GetSearchAllLibrariesPart.md - docs/Models/Requests/GetSearchAllLibrariesQueryParamIncludeCollections.md - docs/Models/Requests/GetSearchAllLibrariesQueryParamIncludeExternalMedia.md @@ -1660,7 +1652,6 @@ generatedFiles: - docs/Models/Requests/GetSearchAllLibrariesResponseBody.md - docs/Models/Requests/GetSearchAllLibrariesRole.md - docs/Models/Requests/GetSearchAllLibrariesShowOrdering.md - - docs/Models/Requests/GetSearchAllLibrariesStream.md - docs/Models/Requests/GetSearchAllLibrariesType.md - docs/Models/Requests/GetSearchAllLibrariesUltraBlurColors.md - docs/Models/Requests/GetSearchAllLibrariesWriter.md @@ -1793,11 +1784,9 @@ generatedFiles: - docs/Models/Requests/Marker.md - docs/Models/Requests/Media.md - docs/Models/Requests/MediaContainer.md - - docs/Models/Requests/MediaGuid.md - docs/Models/Requests/MediaProvider.md - docs/Models/Requests/MediaReviewsVisibility.md - docs/Models/Requests/Meta.md - - docs/Models/Requests/MetaDataRating.md - docs/Models/Requests/Metadata.md - docs/Models/Requests/MinSize.md - docs/Models/Requests/MyPlex.md @@ -1890,7 +1879,6 @@ generatedFiles: - docs/Models/Requests/StopTranscodeSessionRequest.md - docs/Models/Requests/StopTranscodeSessionResponse.md - docs/Models/Requests/Stream.md - - docs/Models/Requests/StreamType.md - docs/Models/Requests/Subscription.md - docs/Models/Requests/Tag.md - docs/Models/Requests/TaskName.md @@ -2420,7 +2408,7 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}], "size": 70, "totalSize": 170, "offset": 0, "content": "secondary", "allowSync": true, "nocache": true, "art": "/:/resources/movie-fanart.jpg", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "title2": "Recently Released", "viewGroup": "movie", "viewMode": 65592, "mixedParents": true, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}], "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}}} + application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "content": "secondary", "allowSync": false, "nocache": true, "art": "/:/resources/show-fanart.jpg", "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "viewMode": "131131", "mixedParents": true, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "banner": "/library/metadata/58683/banner/1703239236", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "lastViewedAt": 1682752242, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Guid": [{"id": "imdb://tt13015952"}], "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "showOrdering": "absolute", "flattenSeasons": "1", "skipChildren": false, "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "indexes": "sd", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "hasThumbnail": "1"}]}], "Genre": [{"id": 259, "tag": "Adventure"}], "Country": [{"id": 259, "tag": "United States of America"}], "Director": [{"id": 126522, "tag": "James Cameron"}], "Writer": [{"id": 126522, "tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "tag": "Mike Smith", "role": "Self", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg"}], "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Location": [{"path": "/TV Shows/House"}]}], "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": @@ -2526,7 +2514,7 @@ examples: X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58" responses: "200": - application/json: {"MediaContainer": {"size": 5709.89, "SearchResult": []}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "SearchResult": []}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index f7f85bc..ae5dcf6 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -17,9 +17,10 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false csharp: - version: 0.15.0 + version: 0.15.1 additionalDependencies: [] author: LukeHagar + baseErrorName: PlexAPIError clientServerStatusCodesAsErrors: true defaultErrorName: SDKException disableNamespacePascalCasingApr2024: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 7b07f57..ed60694 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.555.2 +speakeasyVersion: 1.557.0 sources: my-source: sourceNamespace: my-source @@ -16,19 +16,19 @@ sources: - main plexapi: sourceNamespace: plexapi - sourceRevisionDigest: sha256:78d07ad78ff60d0e9918696208d8c68a562e170d4e9c431797c02995fb8816d0 - sourceBlobDigest: sha256:d38dd2a36c1b2fd73409267f7b30c2d5d45d709616141803ea01db424ec68ae4 + sourceRevisionDigest: sha256:dafcc1192236829b85bc924e0462432c0eb7318a17c542f46e3dd05a9a6265df + sourceBlobDigest: sha256:bc072115d585e1695cb8393db901a3d36be1dcd57a69bad2b91a1ba7ac3c9c4b tags: - latest - - speakeasy-sdk-regen-1748996711 + - speakeasy-sdk-regen-1749428820 targets: plexcsharp: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:78d07ad78ff60d0e9918696208d8c68a562e170d4e9c431797c02995fb8816d0 - sourceBlobDigest: sha256:d38dd2a36c1b2fd73409267f7b30c2d5d45d709616141803ea01db424ec68ae4 + sourceRevisionDigest: sha256:dafcc1192236829b85bc924e0462432c0eb7318a17c542f46e3dd05a9a6265df + sourceBlobDigest: sha256:bc072115d585e1695cb8393db901a3d36be1dcd57a69bad2b91a1ba7ac3c9c4b codeSamplesNamespace: code-samples-csharp-plexcsharp - codeSamplesRevisionDigest: sha256:5609267a659a1b1fdebdd8516758904fc983fb919b5b5a8bbd0044567e8bfa0f + codeSamplesRevisionDigest: sha256:3e40165c9db5020b3885878073275cf7a8e9cfc5dc3f4a81b48c209581c6a041 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/LukeHagar/PlexAPI/SDK/Activities.cs b/LukeHagar/PlexAPI/SDK/Activities.cs index e35fa39..d333d2a 100644 --- a/LukeHagar/PlexAPI/SDK/Activities.cs +++ b/LukeHagar/PlexAPI/SDK/Activities.cs @@ -74,8 +74,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Activities(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Authentication.cs b/LukeHagar/PlexAPI/SDK/Authentication.cs index e9c3f7f..ddf83cd 100644 --- a/LukeHagar/PlexAPI/SDK/Authentication.cs +++ b/LukeHagar/PlexAPI/SDK/Authentication.cs @@ -95,8 +95,8 @@ namespace LukeHagar.PlexAPI.SDK }; public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Authentication(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Butler.cs b/LukeHagar/PlexAPI/SDK/Butler.cs index 7a4d27e..b04bb6b 100644 --- a/LukeHagar/PlexAPI/SDK/Butler.cs +++ b/LukeHagar/PlexAPI/SDK/Butler.cs @@ -101,8 +101,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Butler(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Hubs.cs b/LukeHagar/PlexAPI/SDK/Hubs.cs index 316d6ce..0b6af85 100644 --- a/LukeHagar/PlexAPI/SDK/Hubs.cs +++ b/LukeHagar/PlexAPI/SDK/Hubs.cs @@ -73,8 +73,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Hubs(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Library.cs b/LukeHagar/PlexAPI/SDK/Library.cs index 9e12963..cc645ed 100644 --- a/LukeHagar/PlexAPI/SDK/Library.cs +++ b/LukeHagar/PlexAPI/SDK/Library.cs @@ -319,8 +319,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Library(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Log.cs b/LukeHagar/PlexAPI/SDK/Log.cs index d26ce58..ae4dae6 100644 --- a/LukeHagar/PlexAPI/SDK/Log.cs +++ b/LukeHagar/PlexAPI/SDK/Log.cs @@ -94,8 +94,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Log(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/LukeHagar.PlexAPI.SDK.csproj b/LukeHagar/PlexAPI/SDK/LukeHagar.PlexAPI.SDK.csproj index f94da5a..eedcd70 100644 --- a/LukeHagar/PlexAPI/SDK/LukeHagar.PlexAPI.SDK.csproj +++ b/LukeHagar/PlexAPI/SDK/LukeHagar.PlexAPI.SDK.csproj @@ -3,7 +3,7 @@ true LukeHagar.PlexAPI.SDK - 0.15.0 + 0.15.1 net8.0 LukeHagar Copyright (c) LukeHagar 2025 diff --git a/LukeHagar/PlexAPI/SDK/Media.cs b/LukeHagar/PlexAPI/SDK/Media.cs index ab3f531..24e63d4 100644 --- a/LukeHagar/PlexAPI/SDK/Media.cs +++ b/LukeHagar/PlexAPI/SDK/Media.cs @@ -90,8 +90,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Media(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/EnableCreditsMarkerGeneration.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/EnableCreditsMarkerGeneration.cs deleted file mode 100644 index 791269c..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/EnableCreditsMarkerGeneration.cs +++ /dev/null @@ -1,60 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System; - - /// - /// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - /// - public enum EnableCreditsMarkerGeneration - { - [JsonProperty("-1")] - LibraryDefault, - [JsonProperty("0")] - Disabled, - } - - public static class EnableCreditsMarkerGenerationExtension - { - public static string Value(this EnableCreditsMarkerGeneration value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static EnableCreditsMarkerGeneration ToEnum(this string value) - { - foreach(var field in typeof(EnableCreditsMarkerGeneration).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is EnableCreditsMarkerGeneration) - { - return (EnableCreditsMarkerGeneration)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum EnableCreditsMarkerGeneration"); - } - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/EpisodeSort.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/EpisodeSort.cs deleted file mode 100644 index 3315574..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/EpisodeSort.cs +++ /dev/null @@ -1,62 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System; - - /// - /// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - /// - public enum EpisodeSort - { - [JsonProperty("-1")] - LibraryDefault, - [JsonProperty("0")] - OldestFirst, - [JsonProperty("1")] - NewestFirst, - } - - public static class EpisodeSortExtension - { - public static string Value(this EpisodeSort value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static EpisodeSort ToEnum(this string value) - { - foreach(var field in typeof(EpisodeSort).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is EpisodeSort) - { - return (EpisodeSort)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum EpisodeSort"); - } - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/FlattenSeasons.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/FlattenSeasons.cs index e757701..228d541 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/FlattenSeasons.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/FlattenSeasons.cs @@ -14,7 +14,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using System; /// - /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). + /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
+ /// + /// + /// + /// ///
public enum FlattenSeasons { diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetActorsLibraryMediaContainer.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetActorsLibraryMediaContainer.cs index 55b3721..049ce78 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetActorsLibraryMediaContainer.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetActorsLibraryMediaContainer.cs @@ -87,7 +87,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Identifier for the view mode. /// [JsonProperty("viewMode")] - public string ViewMode { get; set; } = default!; + public string? ViewMode { get; set; } /// /// An array of actor entries for media items. diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCollection.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCollection.cs index 06a92ea..d205718 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCollection.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCollection.cs @@ -15,7 +15,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetLibraryItemsCollection { + /// + /// The user-made collection this media item belongs to + /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCountry.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCountry.cs index 481bdda..f15d1d9 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCountry.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsCountry.cs @@ -15,7 +15,21 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetLibraryItemsCountry { + /// + /// The unique identifier for the country.
+ /// + /// + /// NOTE: This is different for each Plex server and is not globally unique.
+ /// + ///
+ ///
+ [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The country of origin of this media item + /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsDirector.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsDirector.cs index 1dd836b..f0393c2 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsDirector.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsDirector.cs @@ -15,7 +15,22 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetLibraryItemsDirector { + /// + /// Unique identifier for the director. + /// + [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The role of Director + /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; + + /// + /// The absolute URL of the thumbnail image for the director. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsFilter.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsFilter.cs index e19cf17..47244ed 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsFilter.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsFilter.cs @@ -29,8 +29,5 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests [JsonProperty("type")] public string Type { get; set; } = default!; - - [JsonProperty("advanced")] - public bool? Advanced { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGenre.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGenre.cs index 913d2a0..173ab8b 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGenre.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGenre.cs @@ -15,7 +15,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetLibraryItemsGenre { + /// + /// The unique identifier for the genre.
+ /// + /// + /// NOTE: This is different for each Plex server and is not globally unique.
+ /// + ///
+ ///
+ [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The genre name of this media-item
+ /// + /// + /// + /// + ///
[JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/MediaGuid.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGuids.cs similarity index 83% rename from LukeHagar/PlexAPI/SDK/Models/Requests/MediaGuid.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGuids.cs index 54ae9b5..e4e0d27 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/MediaGuid.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsGuids.cs @@ -12,14 +12,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - public class MediaGuid + public class GetLibraryItemsGuids { /// - /// Can be one of the following formats:
+ /// The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
/// /// - /// imdb://tt13015952, tmdb://2434012, tvdb://7945991
/// ///
///
diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsHasThumbnail.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsHasThumbnail.cs index 6b1422d..33fe640 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsHasThumbnail.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsHasThumbnail.cs @@ -13,6 +13,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using Newtonsoft.Json; using System; + /// + /// Indicates if the part has a thumbnail.
+ /// + /// + /// + /// + ///
public enum GetLibraryItemsHasThumbnail { [JsonProperty("0")] diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsImage.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsImage.cs index 90749b9..3cb2f9c 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsImage.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsImage.cs @@ -20,7 +20,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public string Alt { get; set; } = default!; [JsonProperty("type")] - public GetLibraryItemsLibraryResponse200Type Type { get; set; } = default!; + public GetLibraryItemsLibraryResponseType Type { get; set; } = default!; [JsonProperty("url")] public string Url { get; set; } = default!; diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryActiveDirection.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryActiveDirection.cs deleted file mode 100644 index d20ef0b..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryActiveDirection.cs +++ /dev/null @@ -1,64 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System; - - /// - /// The direction of the sort. Can be either `asc` or `desc`.
- /// - /// - /// - /// - ///
- public enum GetLibraryItemsLibraryActiveDirection - { - [JsonProperty("asc")] - Ascending, - [JsonProperty("desc")] - Descending, - } - - public static class GetLibraryItemsLibraryActiveDirectionExtension - { - public static string Value(this GetLibraryItemsLibraryActiveDirection value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static GetLibraryItemsLibraryActiveDirection ToEnum(this string value) - { - foreach(var field in typeof(GetLibraryItemsLibraryActiveDirection).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is GetLibraryItemsLibraryActiveDirection) - { - return (GetLibraryItemsLibraryActiveDirection)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryActiveDirection"); - } - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryDefaultDirection.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryDefaultDirection.cs deleted file mode 100644 index 158f192..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryDefaultDirection.cs +++ /dev/null @@ -1,64 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System; - - /// - /// The direction of the sort. Can be either `asc` or `desc`.
- /// - /// - /// - /// - ///
- public enum GetLibraryItemsLibraryDefaultDirection - { - [JsonProperty("asc")] - Ascending, - [JsonProperty("desc")] - Descending, - } - - public static class GetLibraryItemsLibraryDefaultDirectionExtension - { - public static string Value(this GetLibraryItemsLibraryDefaultDirection value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static GetLibraryItemsLibraryDefaultDirection ToEnum(this string value) - { - foreach(var field in typeof(GetLibraryItemsLibraryDefaultDirection).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is GetLibraryItemsLibraryDefaultDirection) - { - return (GetLibraryItemsLibraryDefaultDirection)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryDefaultDirection"); - } - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryField.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryField.cs deleted file mode 100644 index 22b529a..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryField.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - - public class GetLibraryItemsLibraryField - { - - [JsonProperty("key")] - public string Key { get; set; } = default!; - - [JsonProperty("title")] - public string Title { get; set; } = default!; - - [JsonProperty("type")] - public string Type { get; set; } = default!; - - [JsonProperty("subType")] - public string? SubType { get; set; } - } -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFieldType.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFieldType.cs deleted file mode 100644 index da0c3e1..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFieldType.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Models.Requests; - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System.Collections.Generic; - - public class GetLibraryItemsLibraryFieldType - { - - [JsonProperty("type")] - public string Type { get; set; } = default!; - - [JsonProperty("Operator")] - public List Operator { get; set; } = default!; - } -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.cs new file mode 100644 index 0000000..c0e6ba1 --- /dev/null +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.cs @@ -0,0 +1,203 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace LukeHagar.PlexAPI.SDK.Models.Requests +{ + using LukeHagar.PlexAPI.SDK.Models.Requests; + using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + using Newtonsoft.Json.Linq; + using System; + using System.Collections.Generic; + using System.Numerics; + using System.Reflection; + + + public class GetLibraryItemsLibraryOptimizedForStreamingType + { + private GetLibraryItemsLibraryOptimizedForStreamingType(string value) { Value = value; } + + public string Value { get; private set; } + public static GetLibraryItemsLibraryOptimizedForStreamingType GetLibraryItemsOptimizedForStreaming1 { get { return new GetLibraryItemsLibraryOptimizedForStreamingType("get-library-items_optimizedForStreaming_1"); } } + + public static GetLibraryItemsLibraryOptimizedForStreamingType Boolean { get { return new GetLibraryItemsLibraryOptimizedForStreamingType("boolean"); } } + + public static GetLibraryItemsLibraryOptimizedForStreamingType Null { get { return new GetLibraryItemsLibraryOptimizedForStreamingType("null"); } } + + public override string ToString() { return Value; } + public static implicit operator String(GetLibraryItemsLibraryOptimizedForStreamingType v) { return v.Value; } + public static GetLibraryItemsLibraryOptimizedForStreamingType FromString(string v) { + switch(v) { + case "get-library-items_optimizedForStreaming_1": return GetLibraryItemsOptimizedForStreaming1; + case "boolean": return Boolean; + case "null": return Null; + default: throw new ArgumentException("Invalid value for GetLibraryItemsLibraryOptimizedForStreamingType"); + } + } + public override bool Equals(object? obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + return Value.Equals(((GetLibraryItemsLibraryOptimizedForStreamingType)obj).Value); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } + } + + + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
+ /// + /// + /// + /// + ///
+ [JsonConverter(typeof(GetLibraryItemsLibraryOptimizedForStreaming.GetLibraryItemsLibraryOptimizedForStreamingConverter))] + public class GetLibraryItemsLibraryOptimizedForStreaming { + public GetLibraryItemsLibraryOptimizedForStreaming(GetLibraryItemsLibraryOptimizedForStreamingType type) { + Type = type; + } + + [SpeakeasyMetadata("form:explode=true")] + public GetLibraryItemsOptimizedForStreaming1? GetLibraryItemsOptimizedForStreaming1 { get; set; } + + [SpeakeasyMetadata("form:explode=true")] + public bool? Boolean { get; set; } + + public GetLibraryItemsLibraryOptimizedForStreamingType Type { get; set; } + + + public static GetLibraryItemsLibraryOptimizedForStreaming CreateGetLibraryItemsOptimizedForStreaming1(GetLibraryItemsOptimizedForStreaming1 getLibraryItemsOptimizedForStreaming1) { + GetLibraryItemsLibraryOptimizedForStreamingType typ = GetLibraryItemsLibraryOptimizedForStreamingType.GetLibraryItemsOptimizedForStreaming1; + + GetLibraryItemsLibraryOptimizedForStreaming res = new GetLibraryItemsLibraryOptimizedForStreaming(typ); + res.GetLibraryItemsOptimizedForStreaming1 = getLibraryItemsOptimizedForStreaming1; + return res; + } + + public static GetLibraryItemsLibraryOptimizedForStreaming CreateBoolean(bool boolean) { + GetLibraryItemsLibraryOptimizedForStreamingType typ = GetLibraryItemsLibraryOptimizedForStreamingType.Boolean; + + GetLibraryItemsLibraryOptimizedForStreaming res = new GetLibraryItemsLibraryOptimizedForStreaming(typ); + res.Boolean = boolean; + return res; + } + + public static GetLibraryItemsLibraryOptimizedForStreaming CreateNull() { + GetLibraryItemsLibraryOptimizedForStreamingType typ = GetLibraryItemsLibraryOptimizedForStreamingType.Null; + return new GetLibraryItemsLibraryOptimizedForStreaming(typ); + } + + public class GetLibraryItemsLibraryOptimizedForStreamingConverter : JsonConverter + { + + public override bool CanConvert(System.Type objectType) => objectType == typeof(GetLibraryItemsLibraryOptimizedForStreaming); + + public override bool CanRead => true; + + public override object? ReadJson(JsonReader reader, System.Type objectType, object? existingValue, JsonSerializer serializer) + { + var json = JRaw.Create(reader).ToString(); + if (json == "null") + { + return null; + } + + var fallbackCandidates = new List<(System.Type, object, string)>(); + + try + { + return new GetLibraryItemsLibraryOptimizedForStreaming(GetLibraryItemsLibraryOptimizedForStreamingType.GetLibraryItemsOptimizedForStreaming1) + { + GetLibraryItemsOptimizedForStreaming1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) + }; + } + catch (ResponseBodyDeserializer.MissingMemberException) + { + fallbackCandidates.Add((typeof(GetLibraryItemsOptimizedForStreaming1), new GetLibraryItemsLibraryOptimizedForStreaming(GetLibraryItemsLibraryOptimizedForStreamingType.GetLibraryItemsOptimizedForStreaming1), "GetLibraryItemsOptimizedForStreaming1")); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next option + } + catch (Exception) + { + throw; + } + + try + { + var converted = Convert.ToBoolean(json); + return new GetLibraryItemsLibraryOptimizedForStreaming(GetLibraryItemsLibraryOptimizedForStreamingType.Boolean) + { + Boolean = converted + }; + } + catch (System.FormatException) + { + // try next option + } + + if (fallbackCandidates.Count > 0) + { + fallbackCandidates.Sort((a, b) => ResponseBodyDeserializer.CompareFallbackCandidates(a.Item1, b.Item1, json)); + foreach(var (deserializationType, returnObject, propertyName) in fallbackCandidates) + { + try + { + return ResponseBodyDeserializer.DeserializeUndiscriminatedUnionFallback(deserializationType, returnObject, propertyName, json); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next fallback option + } + catch (Exception) + { + throw; + } + } + } + + throw new InvalidOperationException("Could not deserialize into any supported types."); + } + + public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) + { + if (value == null) { + writer.WriteRawValue("null"); + return; + } + GetLibraryItemsLibraryOptimizedForStreaming res = (GetLibraryItemsLibraryOptimizedForStreaming)value; + if (GetLibraryItemsLibraryOptimizedForStreamingType.FromString(res.Type).Equals(GetLibraryItemsLibraryOptimizedForStreamingType.Null)) + { + writer.WriteRawValue("null"); + return; + } + if (res.GetLibraryItemsOptimizedForStreaming1 != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.GetLibraryItemsOptimizedForStreaming1)); + return; + } + if (res.Boolean != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.Boolean)); + return; + } + + } + + } + + } +} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponse200Type.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponse200Type.cs deleted file mode 100644 index 9681606..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponse200Type.cs +++ /dev/null @@ -1,61 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System; - - public enum GetLibraryItemsLibraryResponse200Type - { - [JsonProperty("coverPoster")] - CoverPoster, - [JsonProperty("background")] - Background, - [JsonProperty("snapshot")] - Snapshot, - [JsonProperty("clearLogo")] - ClearLogo, - } - - public static class GetLibraryItemsLibraryResponse200TypeExtension - { - public static string Value(this GetLibraryItemsLibraryResponse200Type value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static GetLibraryItemsLibraryResponse200Type ToEnum(this string value) - { - foreach(var field in typeof(GetLibraryItemsLibraryResponse200Type).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is GetLibraryItemsLibraryResponse200Type) - { - return (GetLibraryItemsLibraryResponse200Type)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryResponse200Type"); - } - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponseType.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponseType.cs index 8e30383..6aad169 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponseType.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryResponseType.cs @@ -9,33 +9,53 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { - using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - using System.Collections.Generic; + using System; - public class GetLibraryItemsLibraryResponseType + public enum GetLibraryItemsLibraryResponseType { - - [JsonProperty("key")] - public string Key { get; set; } = default!; - - [JsonProperty("type")] - public string Type { get; set; } = default!; - - [JsonProperty("title")] - public string Title { get; set; } = default!; - - [JsonProperty("active")] - public bool Active { get; set; } = default!; - - [JsonProperty("Filter")] - public List? Filter { get; set; } - - [JsonProperty("Sort")] - public List? Sort { get; set; } - - [JsonProperty("Field")] - public List? Field { get; set; } + [JsonProperty("coverPoster")] + CoverPoster, + [JsonProperty("background")] + Background, + [JsonProperty("snapshot")] + Snapshot, + [JsonProperty("clearLogo")] + ClearLogo, } + + public static class GetLibraryItemsLibraryResponseTypeExtension + { + public static string Value(this GetLibraryItemsLibraryResponseType value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static GetLibraryItemsLibraryResponseType ToEnum(this string value) + { + foreach(var field in typeof(GetLibraryItemsLibraryResponseType).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is GetLibraryItemsLibraryResponseType) + { + return (GetLibraryItemsLibraryResponseType)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryResponseType"); + } + } + } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibrarySort.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibrarySort.cs deleted file mode 100644 index d1d7028..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibrarySort.cs +++ /dev/null @@ -1,57 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Models.Requests; - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - - public class GetLibraryItemsLibrarySort - { - - [JsonProperty("default")] - public string? Default { get; set; } - - [JsonProperty("active")] - public bool? Active { get; set; } - - /// - /// The direction of the sort. Can be either `asc` or `desc`.
- /// - /// - /// - /// - ///
- [JsonProperty("activeDirection")] - public GetLibraryItemsLibraryActiveDirection? ActiveDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsLibraryActiveDirection.Ascending; - - /// - /// The direction of the sort. Can be either `asc` or `desc`.
- /// - /// - /// - /// - ///
- [JsonProperty("defaultDirection")] - public GetLibraryItemsLibraryDefaultDirection? DefaultDirection { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsLibraryDefaultDirection.Ascending; - - [JsonProperty("descKey")] - public string? DescKey { get; set; } - - [JsonProperty("firstCharacterKey")] - public string? FirstCharacterKey { get; set; } - - [JsonProperty("key")] - public string Key { get; set; } = default!; - - [JsonProperty("title")] - public string Title { get; set; } = default!; - } -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryType.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryType.cs index 92f8ca9..47c2ae9 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryType.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryType.cs @@ -9,72 +9,33 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { + using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - using System; + using System.Collections.Generic; - /// - /// The type of media content in the Plex library. This can represent videos, music, or photos.
- /// - /// - /// - /// - ///
- public enum GetLibraryItemsLibraryType + public class GetLibraryItemsLibraryType { - [JsonProperty("movie")] - Movie, - [JsonProperty("show")] - TvShow, - [JsonProperty("season")] - Season, - [JsonProperty("episode")] - Episode, - [JsonProperty("artist")] - Artist, - [JsonProperty("album")] - Album, - [JsonProperty("track")] - Track, - [JsonProperty("photoalbum")] - PhotoAlbum, - [JsonProperty("photo")] - Photo, - [JsonProperty("collection")] - Collection, + + [JsonProperty("key")] + public string Key { get; set; } = default!; + + [JsonProperty("type")] + public string Type { get; set; } = default!; + + [JsonProperty("title")] + public string Title { get; set; } = default!; + + [JsonProperty("active")] + public bool Active { get; set; } = default!; + + [JsonProperty("Filter")] + public List? Filter { get; set; } + + [JsonProperty("Sort")] + public List? Sort { get; set; } + + [JsonProperty("Field")] + public List? Field { get; set; } } - - public static class GetLibraryItemsLibraryTypeExtension - { - public static string Value(this GetLibraryItemsLibraryType value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static GetLibraryItemsLibraryType ToEnum(this string value) - { - foreach(var field in typeof(GetLibraryItemsLibraryType).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is GetLibraryItemsLibraryType) - { - return (GetLibraryItemsLibraryType)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum GetLibraryItemsLibraryType"); - } - } - } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLocation.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLocation.cs index b343f17..45ae7d0 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLocation.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLocation.cs @@ -12,10 +12,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; + /// + /// The folder path for the media item. + /// public class GetLibraryItemsLocation { [JsonProperty("path")] - public string? Path { get; set; } + public string Path { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMedia.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMedia.cs index 2c110e9..844fa92 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMedia.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMedia.cs @@ -9,6 +9,7 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { + using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; @@ -17,58 +18,121 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetLibraryItemsMedia { + /// + /// Unique media identifier. + /// [JsonProperty("id")] - public int Id { get; set; } = default!; + public long Id { get; set; } = default!; + /// + /// Duration of the media in milliseconds. + /// [JsonProperty("duration")] public int? Duration { get; set; } + /// + /// Bitrate in bits per second. + /// [JsonProperty("bitrate")] public int? Bitrate { get; set; } + /// + /// Video width in pixels. + /// [JsonProperty("width")] public int? Width { get; set; } + /// + /// Video height in pixels. + /// [JsonProperty("height")] public int? Height { get; set; } + /// + /// Aspect ratio of the video. + /// [JsonProperty("aspectRatio")] - public double? AspectRatio { get; set; } - - [JsonProperty("audioProfile")] - public string? AudioProfile { get; set; } + public float? AspectRatio { get; set; } + /// + /// Number of audio channels. + /// [JsonProperty("audioChannels")] public int? AudioChannels { get; set; } + [JsonProperty("displayOffset")] + public int? DisplayOffset { get; set; } + + /// + /// Audio codec used. + /// [JsonProperty("audioCodec")] public string? AudioCodec { get; set; } + /// + /// Video codec used. + /// [JsonProperty("videoCodec")] public string? VideoCodec { get; set; } + /// + /// Video resolution (e.g., 4k). + /// [JsonProperty("videoResolution")] public string? VideoResolution { get; set; } + /// + /// Container format of the media. + /// [JsonProperty("container")] - public string Container { get; set; } = default!; + public string? Container { get; set; } + /// + /// Frame rate of the video. Values found include NTSC, PAL, 24p
+ /// + /// + /// + /// + ///
[JsonProperty("videoFrameRate")] public string? VideoFrameRate { get; set; } + /// + /// Video profile (e.g., main 10). + /// [JsonProperty("videoProfile")] public string? VideoProfile { get; set; } + /// + /// Indicates whether voice activity is detected. + /// [JsonProperty("hasVoiceActivity")] public bool? HasVoiceActivity { get; set; } - [JsonProperty("optimizedForStreaming")] - public GetLibraryItemsOptimizedForStreaming? OptimizedForStreaming { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsOptimizedForStreaming.Disable; + /// + /// The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). + /// + [JsonProperty("audioProfile")] + public string? AudioProfile { get; set; } + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + /// + [JsonProperty("optimizedForStreaming")] + public GetLibraryItemsOptimizedForStreaming? OptimizedForStreaming { get; set; } + + /// + /// Indicates whether the media has 64-bit offsets.
+ /// + /// + /// This is relevant for media files that may require larger offsets than what 32-bit integers can provide.
+ /// + ///
+ ///
[JsonProperty("has64bitOffsets")] public bool? Has64bitOffsets { get; set; } [JsonProperty("Part")] - public List Part { get; set; } = default!; + public List? Part { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMediaContainer.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMediaContainer.cs index c391d84..d2b519a 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMediaContainer.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMediaContainer.cs @@ -14,81 +14,128 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using Newtonsoft.Json; using System.Collections.Generic; - /// - /// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
- /// - /// - /// - /// - ///
public class GetLibraryItemsMediaContainer { - [JsonProperty("Type")] - public List? Type { get; set; } - - [JsonProperty("FieldType")] - public List? FieldType { get; set; } - + /// + /// Number of media items returned in this response. + /// [JsonProperty("size")] public int Size { get; set; } = default!; + /// + /// Total number of media items in the library. + /// [JsonProperty("totalSize")] public int TotalSize { get; set; } = default!; + /// + /// Offset value for pagination. + /// [JsonProperty("offset")] - public int Offset { get; set; } = default!; + public long Offset { get; set; } = default!; + /// + /// The content type or mode. + /// [JsonProperty("content")] public string Content { get; set; } = default!; + /// + /// Indicates whether syncing is allowed. + /// [JsonProperty("allowSync")] public bool AllowSync { get; set; } = default!; + /// + /// Specifies whether caching is disabled. + /// [JsonProperty("nocache")] - public bool? Nocache { get; set; } + public bool Nocache { get; set; } = default!; + /// + /// URL for the background artwork of the media container. + /// [JsonProperty("art")] public string Art { get; set; } = default!; + /// + /// An plugin identifier for the media container. + /// [JsonProperty("identifier")] public string Identifier { get; set; } = default!; + /// + /// The unique identifier for the library section. + /// [JsonProperty("librarySectionID")] - public long LibrarySectionID { get; set; } = default!; + public long? LibrarySectionID { get; set; } + /// + /// The title of the library section. + /// [JsonProperty("librarySectionTitle")] - public string LibrarySectionTitle { get; set; } = default!; + public string? LibrarySectionTitle { get; set; } + /// + /// The universally unique identifier for the library section. + /// [JsonProperty("librarySectionUUID")] - public string LibrarySectionUUID { get; set; } = default!; + public string? LibrarySectionUUID { get; set; } + /// + /// The prefix used for media tag resource paths. + /// [JsonProperty("mediaTagPrefix")] public string MediaTagPrefix { get; set; } = default!; + /// + /// The version number for media tags. + /// [JsonProperty("mediaTagVersion")] - public int MediaTagVersion { get; set; } = default!; + public long MediaTagVersion { get; set; } = default!; + /// + /// URL for the thumbnail image of the media container. + /// [JsonProperty("thumb")] public string Thumb { get; set; } = default!; + /// + /// The primary title of the media container. + /// [JsonProperty("title1")] public string Title1 { get; set; } = default!; + /// + /// The secondary title of the media container. + /// [JsonProperty("title2")] public string Title2 { get; set; } = default!; + /// + /// Identifier for the view group layout. + /// [JsonProperty("viewGroup")] public string ViewGroup { get; set; } = default!; + /// + /// Identifier for the view mode. + /// [JsonProperty("viewMode")] - public int? ViewMode { get; set; } + public string? ViewMode { get; set; } + /// + /// Indicates if the media container has mixed parents. + /// [JsonProperty("mixedParents")] public bool? MixedParents { get; set; } + /// + /// An array of metadata items. + /// [JsonProperty("Metadata")] - public List? Metadata { get; set; } + public List Metadata { get; set; } = default!; /// /// The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMeta.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMeta.cs index c03f82c..7d43b4e 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMeta.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMeta.cs @@ -25,9 +25,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests { [JsonProperty("Type")] - public List? Type { get; set; } + public List? Type { get; set; } [JsonProperty("FieldType")] - public List? FieldType { get; set; } + public List? FieldType { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMetadata.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMetadata.cs index 8bc34bd..b5629a7 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMetadata.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsMetadata.cs @@ -15,129 +15,163 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using NodaTime; using System.Collections.Generic; + /// + /// Unknown
+ /// + /// + /// + /// + ///
public class GetLibraryItemsMetadata { /// - /// The rating key (Media ID) of this media item.
- /// - /// - /// Note: This is always an integer, but is represented as a string in the API.
- /// - ///
+ /// The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. ///
[JsonProperty("ratingKey")] public string RatingKey { get; set; } = default!; + /// + /// The unique key for the media item. + /// [JsonProperty("key")] public string Key { get; set; } = default!; + /// + /// The globally unique identifier for the media item. + /// [JsonProperty("guid")] public string Guid { get; set; } = default!; + /// + /// A URL‐friendly version of the media title. + /// + [JsonProperty("slug")] + public string Slug { get; set; } = default!; + + /// + /// The studio that produced the media item. + /// [JsonProperty("studio")] public string? Studio { get; set; } - [JsonProperty("skipChildren")] - public bool? SkipChildren { get; set; } - - [JsonProperty("librarySectionID")] - public long? LibrarySectionID { get; set; } - - [JsonProperty("librarySectionTitle")] - public string? LibrarySectionTitle { get; set; } - - [JsonProperty("librarySectionKey")] - public string? LibrarySectionKey { get; set; } + [JsonProperty("type")] + public GetLibraryItemsType Type { get; set; } = default!; /// - /// The type of media content in the Plex library. This can represent videos, music, or photos.
- /// - /// - /// - /// + /// The title of the media item. ///
- [JsonProperty("type")] - public GetLibraryItemsLibraryType Type { get; set; } = default!; - [JsonProperty("title")] public string Title { get; set; } = default!; - [JsonProperty("slug")] - public string? Slug { get; set; } + /// + /// The banner image URL for the media item. + /// + [JsonProperty("banner")] + public string Banner { get; set; } = default!; + /// + /// The sort title used for ordering media items. + /// + [JsonProperty("titleSort")] + public string TitleSort { get; set; } = default!; + + /// + /// The content rating for the media item. + /// [JsonProperty("contentRating")] public string? ContentRating { get; set; } + /// + /// A synopsis of the media item. + /// [JsonProperty("summary")] public string Summary { get; set; } = default!; + /// + /// The critic rating for the media item. + /// [JsonProperty("rating")] - public double? Rating { get; set; } + public float Rating { get; set; } = default!; + /// + /// The audience rating for the media item. + /// [JsonProperty("audienceRating")] - public double? AudienceRating { get; set; } + public double AudienceRating { get; set; } = default!; + /// + /// The release year of the media item. + /// [JsonProperty("year")] public int? Year { get; set; } - [JsonProperty("seasonCount")] - public int? SeasonCount { get; set; } - + /// + /// A brief tagline for the media item. + /// [JsonProperty("tagline")] - public string? Tagline { get; set; } + public string Tagline { get; set; } = default!; /// - /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). + /// The thumbnail image URL for the media item. /// - [JsonProperty("flattenSeasons")] - public FlattenSeasons? FlattenSeasons { get; set; } - - /// - /// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - /// - [JsonProperty("episodeSort")] - public EpisodeSort? EpisodeSort { get; set; } - - /// - /// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - /// - [JsonProperty("enableCreditsMarkerGeneration")] - public EnableCreditsMarkerGeneration? EnableCreditsMarkerGeneration { get; set; } - - /// - /// Setting that indicates the episode ordering for the show.
- /// - /// - /// None = Library default,
- /// tmdbAiring = The Movie Database (Aired),
- /// aired = TheTVDB (Aired),
- /// dvd = TheTVDB (DVD),
- /// absolute = TheTVDB (Absolute)).
- /// - ///
- ///
- [JsonProperty("showOrdering")] - public ShowOrdering? ShowOrdering { get; set; } - [JsonProperty("thumb")] - public string? Thumb { get; set; } + public string Thumb { get; set; } = default!; + /// + /// The art image URL for the media item. + /// [JsonProperty("art")] - public string? Art { get; set; } + public string Art { get; set; } = default!; - [JsonProperty("banner")] - public string? Banner { get; set; } + /// + /// The theme URL for the media item. + /// + [JsonProperty("theme")] + public string Theme { get; set; } = default!; + /// + /// The index position of the media item. + /// + [JsonProperty("index")] + public int Index { get; set; } = default!; + + /// + /// The number of leaf items (end nodes) under this media item. + /// + [JsonProperty("leafCount")] + public int? LeafCount { get; set; } + + /// + /// The number of leaf items that have been viewed. + /// + [JsonProperty("viewedLeafCount")] + public int? ViewedLeafCount { get; set; } + + /// + /// The number of child items associated with this media item. + /// + [JsonProperty("childCount")] + public int ChildCount { get; set; } = default!; + + /// + /// The total number of seasons (for TV shows). + /// + [JsonProperty("seasonCount")] + public int SeasonCount { get; set; } = default!; + + /// + /// The duration of the media item in milliseconds. + /// [JsonProperty("duration")] - public int? Duration { get; set; } + public int Duration { get; set; } = default!; + /// + /// The original release date of the media item. + /// [JsonProperty("originallyAvailableAt")] public LocalDate? OriginallyAvailableAt { get; set; } - /// - /// Unix epoch datetime in seconds - /// [JsonProperty("addedAt")] public long AddedAt { get; set; } = default!; @@ -147,52 +181,233 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests [JsonProperty("updatedAt")] public long? UpdatedAt { get; set; } + /// + /// The URL for the audience rating image. + /// [JsonProperty("audienceRatingImage")] public string? AudienceRatingImage { get; set; } + /// + /// The source from which chapter data is derived. + /// [JsonProperty("chapterSource")] public string? ChapterSource { get; set; } + /// + /// The primary extra key associated with this media item. + /// [JsonProperty("primaryExtraKey")] public string? PrimaryExtraKey { get; set; } - [JsonProperty("ratingImage")] - public string? RatingImage { get; set; } + /// + /// The original title of the media item (if different). + /// + [JsonProperty("originalTitle")] + public string? OriginalTitle { get; set; } + /// + /// The rating key of the parent media item. + /// + [JsonProperty("parentRatingKey")] + public string? ParentRatingKey { get; set; } + + /// + /// The rating key of the grandparent media item. + /// [JsonProperty("grandparentRatingKey")] public string? GrandparentRatingKey { get; set; } + /// + /// The GUID of the parent media item. + /// + [JsonProperty("parentGuid")] + public string? ParentGuid { get; set; } + + /// + /// The GUID of the grandparent media item. + /// [JsonProperty("grandparentGuid")] public string? GrandparentGuid { get; set; } - [JsonProperty("grandparentKey")] - public string? GrandparentKey { get; set; } - - [JsonProperty("grandparentTitle")] - public string? GrandparentTitle { get; set; } - - [JsonProperty("grandparentThumb")] - public string? GrandparentThumb { get; set; } - - [JsonProperty("parentSlug")] - public string? ParentSlug { get; set; } - + /// + /// The slug for the grandparent media item. + /// [JsonProperty("grandparentSlug")] public string? GrandparentSlug { get; set; } - [JsonProperty("grandparentArt")] - public string? GrandparentArt { get; set; } + /// + /// The key of the grandparent media item. + /// + [JsonProperty("grandparentKey")] + public string? GrandparentKey { get; set; } + /// + /// The key of the parent media item. + /// + [JsonProperty("parentKey")] + public string? ParentKey { get; set; } + + /// + /// The title of the grandparent media item. + /// + [JsonProperty("grandparentTitle")] + public string? GrandparentTitle { get; set; } + + /// + /// The thumbnail URL for the grandparent media item. + /// + [JsonProperty("grandparentThumb")] + public string? GrandparentThumb { get; set; } + + /// + /// The theme URL for the grandparent media item. + /// [JsonProperty("grandparentTheme")] public string? GrandparentTheme { get; set; } /// - /// The Media object is only included when type query is `4` or higher.
+ /// The art URL for the grandparent media item. + ///
+ [JsonProperty("grandparentArt")] + public string? GrandparentArt { get; set; } + + /// + /// The title of the parent media item. + /// + [JsonProperty("parentTitle")] + public string? ParentTitle { get; set; } + + /// + /// The index position of the parent media item. + /// + [JsonProperty("parentIndex")] + public int? ParentIndex { get; set; } + + /// + /// The thumbnail URL for the parent media item. + /// + [JsonProperty("parentThumb")] + public string? ParentThumb { get; set; } + + /// + /// The URL for the rating image. + /// + [JsonProperty("ratingImage")] + public string? RatingImage { get; set; } + + /// + /// The number of times this media item has been viewed. + /// + [JsonProperty("viewCount")] + public int? ViewCount { get; set; } + + /// + /// The current playback offset (in milliseconds). + /// + [JsonProperty("viewOffset")] + public int? ViewOffset { get; set; } + + /// + /// The number of times this media item has been skipped. + /// + [JsonProperty("skipCount")] + public int? SkipCount { get; set; } + + /// + /// A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. + /// + [JsonProperty("subtype")] + public string? Subtype { get; set; } + + /// + /// The Unix timestamp representing the last time the item was rated. + /// + [JsonProperty("lastRatedAt")] + public long? LastRatedAt { get; set; } + + /// + /// The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). + /// + [JsonProperty("createdAtAccuracy")] + public string? CreatedAtAccuracy { get; set; } + + /// + /// The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. + /// + [JsonProperty("createdAtTZOffset")] + public string? CreatedAtTZOffset { get; set; } + + /// + /// Unix timestamp for when the media item was last viewed. + /// + [JsonProperty("lastViewedAt")] + public int? LastViewedAt { get; set; } + + /// + /// The rating provided by a user for the item. This value is expressed as a decimal number. + /// + [JsonProperty("userRating")] + public float? UserRating { get; set; } + + [JsonProperty("Image")] + public List? Image { get; set; } + + [JsonProperty("UltraBlurColors")] + public GetLibraryItemsUltraBlurColors? UltraBlurColors { get; set; } + + [JsonProperty("Guid")] + public List? Guids { get; set; } + + /// + /// The identifier for the library section. + /// + [JsonProperty("librarySectionID")] + public long? LibrarySectionID { get; set; } + + /// + /// The title of the library section. + /// + [JsonProperty("librarySectionTitle")] + public string? LibrarySectionTitle { get; set; } + + /// + /// The key corresponding to the library section. + /// + [JsonProperty("librarySectionKey")] + public string? LibrarySectionKey { get; set; } + + /// + /// Setting that indicates the episode ordering for the show.
+ /// + /// + /// Options:
+ /// - None = Library default
+ /// - tmdbAiring = The Movie Database (Aired)
+ /// - aired = TheTVDB (Aired)
+ /// - dvd = TheTVDB (DVD)
+ /// - absolute = TheTVDB (Absolute)
+ /// + ///
+ ///
+ [JsonProperty("showOrdering")] + public ShowOrdering? ShowOrdering { get; set; } + + /// + /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
/// /// /// /// ///
+ [JsonProperty("flattenSeasons")] + public FlattenSeasons? FlattenSeasons { get; set; } + + /// + /// Indicates whether child items should be skipped. + /// + [JsonProperty("skipChildren")] + public bool? SkipChildren { get; set; } + [JsonProperty("Media")] public List? Media { get; set; } @@ -208,105 +423,31 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests [JsonProperty("Writer")] public List? Writer { get; set; } + [JsonProperty("Producer")] + public List? Producer { get; set; } + [JsonProperty("Collection")] public List? Collection { get; set; } [JsonProperty("Role")] public List? Role { get; set; } + [JsonProperty("Rating")] + public List? Ratings { get; set; } + + [JsonProperty("Similar")] + public List? Similar { get; set; } + [JsonProperty("Location")] public List? Location { get; set; } - /// - /// The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
- /// - /// - /// - /// - ///
- [JsonProperty("Guid")] - public List? MediaGuid { get; set; } + [JsonProperty("Chapter")] + public List? Chapter { get; set; } - [JsonProperty("UltraBlurColors")] - public GetLibraryItemsUltraBlurColors? UltraBlurColors { get; set; } + [JsonProperty("Marker")] + public List? Marker { get; set; } - [JsonProperty("Rating")] - public List? MetaDataRating { get; set; } - - [JsonProperty("Image")] - public List? Image { get; set; } - - [JsonProperty("titleSort")] - public string? TitleSort { get; set; } - - [JsonProperty("viewCount")] - public int? ViewCount { get; set; } - - [JsonProperty("lastViewedAt")] - public int? LastViewedAt { get; set; } - - [JsonProperty("originalTitle")] - public string? OriginalTitle { get; set; } - - [JsonProperty("viewOffset")] - public int? ViewOffset { get; set; } - - [JsonProperty("skipCount")] - public int? SkipCount { get; set; } - - [JsonProperty("index")] - public int? Index { get; set; } - - [JsonProperty("theme")] - public string? Theme { get; set; } - - [JsonProperty("leafCount")] - public int? LeafCount { get; set; } - - [JsonProperty("viewedLeafCount")] - public int? ViewedLeafCount { get; set; } - - [JsonProperty("childCount")] - public int? ChildCount { get; set; } - - [JsonProperty("hasPremiumExtras")] - public string? HasPremiumExtras { get; set; } - - [JsonProperty("hasPremiumPrimaryExtra")] - public string? HasPremiumPrimaryExtra { get; set; } - - /// - /// The rating key of the parent item.
- /// - /// - /// - /// - ///
- [JsonProperty("parentRatingKey")] - public string? ParentRatingKey { get; set; } - - [JsonProperty("parentGuid")] - public string? ParentGuid { get; set; } - - [JsonProperty("parentStudio")] - public string? ParentStudio { get; set; } - - [JsonProperty("parentKey")] - public string? ParentKey { get; set; } - - [JsonProperty("parentTitle")] - public string? ParentTitle { get; set; } - - [JsonProperty("parentIndex")] - public int? ParentIndex { get; set; } - - [JsonProperty("parentYear")] - public int? ParentYear { get; set; } - - [JsonProperty("parentThumb")] - public string? ParentThumb { get; set; } - - [JsonProperty("parentTheme")] - public string? ParentTheme { get; set; } + [JsonProperty("Extras")] + public Extras? Extras { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming.cs index 5d6a5ac..1a723ed 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming.cs @@ -9,12 +9,191 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { + using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + using Newtonsoft.Json.Linq; + using System; + using System.Collections.Generic; + using System.Numerics; + using System.Reflection; - public enum GetLibraryItemsOptimizedForStreaming + + public class GetLibraryItemsOptimizedForStreamingType { - Disable = 0, - Enable = 1, + private GetLibraryItemsOptimizedForStreamingType(string value) { Value = value; } + + public string Value { get; private set; } + public static GetLibraryItemsOptimizedForStreamingType OptimizedForStreaming1 { get { return new GetLibraryItemsOptimizedForStreamingType("optimizedForStreaming_1"); } } + + public static GetLibraryItemsOptimizedForStreamingType Boolean { get { return new GetLibraryItemsOptimizedForStreamingType("boolean"); } } + + public static GetLibraryItemsOptimizedForStreamingType Null { get { return new GetLibraryItemsOptimizedForStreamingType("null"); } } + + public override string ToString() { return Value; } + public static implicit operator String(GetLibraryItemsOptimizedForStreamingType v) { return v.Value; } + public static GetLibraryItemsOptimizedForStreamingType FromString(string v) { + switch(v) { + case "optimizedForStreaming_1": return OptimizedForStreaming1; + case "boolean": return Boolean; + case "null": return Null; + default: throw new ArgumentException("Invalid value for GetLibraryItemsOptimizedForStreamingType"); + } + } + public override bool Equals(object? obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + return Value.Equals(((GetLibraryItemsOptimizedForStreamingType)obj).Value); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } } + + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + /// + [JsonConverter(typeof(GetLibraryItemsOptimizedForStreaming.GetLibraryItemsOptimizedForStreamingConverter))] + public class GetLibraryItemsOptimizedForStreaming { + public GetLibraryItemsOptimizedForStreaming(GetLibraryItemsOptimizedForStreamingType type) { + Type = type; + } + + [SpeakeasyMetadata("form:explode=true")] + public OptimizedForStreaming1? OptimizedForStreaming1 { get; set; } + + [SpeakeasyMetadata("form:explode=true")] + public bool? Boolean { get; set; } + + public GetLibraryItemsOptimizedForStreamingType Type { get; set; } + + + public static GetLibraryItemsOptimizedForStreaming CreateOptimizedForStreaming1(OptimizedForStreaming1 optimizedForStreaming1) { + GetLibraryItemsOptimizedForStreamingType typ = GetLibraryItemsOptimizedForStreamingType.OptimizedForStreaming1; + + GetLibraryItemsOptimizedForStreaming res = new GetLibraryItemsOptimizedForStreaming(typ); + res.OptimizedForStreaming1 = optimizedForStreaming1; + return res; + } + + public static GetLibraryItemsOptimizedForStreaming CreateBoolean(bool boolean) { + GetLibraryItemsOptimizedForStreamingType typ = GetLibraryItemsOptimizedForStreamingType.Boolean; + + GetLibraryItemsOptimizedForStreaming res = new GetLibraryItemsOptimizedForStreaming(typ); + res.Boolean = boolean; + return res; + } + + public static GetLibraryItemsOptimizedForStreaming CreateNull() { + GetLibraryItemsOptimizedForStreamingType typ = GetLibraryItemsOptimizedForStreamingType.Null; + return new GetLibraryItemsOptimizedForStreaming(typ); + } + + public class GetLibraryItemsOptimizedForStreamingConverter : JsonConverter + { + + public override bool CanConvert(System.Type objectType) => objectType == typeof(GetLibraryItemsOptimizedForStreaming); + + public override bool CanRead => true; + + public override object? ReadJson(JsonReader reader, System.Type objectType, object? existingValue, JsonSerializer serializer) + { + var json = JRaw.Create(reader).ToString(); + if (json == "null") + { + return null; + } + + var fallbackCandidates = new List<(System.Type, object, string)>(); + + try + { + return new GetLibraryItemsOptimizedForStreaming(GetLibraryItemsOptimizedForStreamingType.OptimizedForStreaming1) + { + OptimizedForStreaming1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) + }; + } + catch (ResponseBodyDeserializer.MissingMemberException) + { + fallbackCandidates.Add((typeof(OptimizedForStreaming1), new GetLibraryItemsOptimizedForStreaming(GetLibraryItemsOptimizedForStreamingType.OptimizedForStreaming1), "OptimizedForStreaming1")); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next option + } + catch (Exception) + { + throw; + } + + try + { + var converted = Convert.ToBoolean(json); + return new GetLibraryItemsOptimizedForStreaming(GetLibraryItemsOptimizedForStreamingType.Boolean) + { + Boolean = converted + }; + } + catch (System.FormatException) + { + // try next option + } + + if (fallbackCandidates.Count > 0) + { + fallbackCandidates.Sort((a, b) => ResponseBodyDeserializer.CompareFallbackCandidates(a.Item1, b.Item1, json)); + foreach(var (deserializationType, returnObject, propertyName) in fallbackCandidates) + { + try + { + return ResponseBodyDeserializer.DeserializeUndiscriminatedUnionFallback(deserializationType, returnObject, propertyName, json); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next fallback option + } + catch (Exception) + { + throw; + } + } + } + + throw new InvalidOperationException("Could not deserialize into any supported types."); + } + + public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) + { + if (value == null) { + writer.WriteRawValue("null"); + return; + } + GetLibraryItemsOptimizedForStreaming res = (GetLibraryItemsOptimizedForStreaming)value; + if (GetLibraryItemsOptimizedForStreamingType.FromString(res.Type).Equals(GetLibraryItemsOptimizedForStreamingType.Null)) + { + writer.WriteRawValue("null"); + return; + } + if (res.OptimizedForStreaming1 != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.OptimizedForStreaming1)); + return; + } + if (res.Boolean != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.Boolean)); + return; + } + + } + + } + + } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCollection.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming1.cs similarity index 77% rename from LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCollection.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming1.cs index 81ad536..92f3d7e 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCollection.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsOptimizedForStreaming1.cs @@ -10,12 +10,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests { using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - public class GetSearchAllLibrariesCollection + public enum GetLibraryItemsOptimizedForStreaming1 { - - [JsonProperty("tag")] - public string? Tag { get; set; } + Zero = 0, + One = 1, } + } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsPart.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsPart.cs index e3659de..d538a83 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsPart.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsPart.cs @@ -9,58 +9,94 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { + using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - using System.Collections.Generic; public class GetLibraryItemsPart { + /// + /// Indicates if the part is accessible. + /// + [JsonProperty("accessible")] + public bool? Accessible { get; set; } + + /// + /// Indicates if the part exists. + /// + [JsonProperty("exists")] + public bool? Exists { get; set; } + + /// + /// Unique part identifier. + /// [JsonProperty("id")] - public int Id { get; set; } = default!; + public long Id { get; set; } = default!; + /// + /// Key to access this part. + /// [JsonProperty("key")] - public string Key { get; set; } = default!; + public string? Key { get; set; } + [JsonProperty("indexes")] + public string? Indexes { get; set; } + + /// + /// Duration of the part in milliseconds. + /// [JsonProperty("duration")] public int? Duration { get; set; } + /// + /// File path for the part. + /// [JsonProperty("file")] - public string File { get; set; } = default!; - - [JsonProperty("size")] - public long Size { get; set; } = default!; + public string? File { get; set; } /// - /// The container format of the media file.
- /// - /// - /// - /// + /// File size in bytes. + ///
+ [JsonProperty("size")] + public long? Size { get; set; } + + [JsonProperty("packetLength")] + public int? PacketLength { get; set; } + + /// + /// Container format of the part. /// [JsonProperty("container")] - public string Container { get; set; } = default!; + public string? Container { get; set; } + /// + /// Video profile for the part. + /// + [JsonProperty("videoProfile")] + public string? VideoProfile { get; set; } + + /// + /// The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). + /// [JsonProperty("audioProfile")] public string? AudioProfile { get; set; } [JsonProperty("has64bitOffsets")] public bool? Has64bitOffsets { get; set; } + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
+ /// + /// + /// + /// + ///
[JsonProperty("optimizedForStreaming")] - public bool? OptimizedForStreaming { get; set; } - - [JsonProperty("videoProfile")] - public string? VideoProfile { get; set; } - - [JsonProperty("indexes")] - public string? Indexes { get; set; } + public GetLibraryItemsLibraryOptimizedForStreaming? OptimizedForStreaming { get; set; } [JsonProperty("hasThumbnail")] public GetLibraryItemsHasThumbnail? HasThumbnail { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetLibraryItemsHasThumbnail.False; - - [JsonProperty("Stream")] - public List? Stream { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsProducer.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsProducer.cs new file mode 100644 index 0000000..eab80b7 --- /dev/null +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsProducer.cs @@ -0,0 +1,54 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace LukeHagar.PlexAPI.SDK.Models.Requests +{ + using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + + public class GetLibraryItemsProducer + { + + /// + /// The unique role identifier. + /// + [JsonProperty("id")] + public long Id { get; set; } = default!; + + /// + /// The filter string for the role. + /// + [JsonProperty("filter")] + public string Filter { get; set; } = default!; + + /// + /// The actor's name. + /// + [JsonProperty("tag")] + public string Tag { get; set; } = default!; + + /// + /// A key associated with the actor tag. + /// + [JsonProperty("tagKey")] + public string TagKey { get; set; } = default!; + + /// + /// The character name or role. + /// + [JsonProperty("role")] + public string? Role { get; set; } + + /// + /// URL for the role thumbnail image. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } + } +} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsRole.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsRole.cs index 7bd4a23..5844d5c 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsRole.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsRole.cs @@ -16,39 +16,32 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests { /// - /// The ID of the tag or actor. + /// The unique identifier for the role.
+ /// + /// + /// NOTE: This is different for each Plex server and is not globally unique.
+ /// + ///
///
[JsonProperty("id")] - public long? Id { get; set; } + public int Id { get; set; } = default!; /// - /// The filter used to find the actor or tag. - /// - [JsonProperty("filter")] - public string? Filter { get; set; } - - /// - /// The thumbnail of the actor - /// - [JsonProperty("thumb")] - public string? Thumb { get; set; } - - /// - /// The name of the tag or actor. + /// The display tag for the actor (typically the actor's name). /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; /// - /// Unique identifier for the tag. - /// - [JsonProperty("tagKey")] - public string? TagKey { get; set; } - - /// - /// The role of the actor or tag in the media. + /// The role played by the actor in the media item. /// [JsonProperty("role")] public string? Role { get; set; } + + /// + /// The absolute URL of the thumbnail image for the actor. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetaDataRating.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsSimilar.cs similarity index 60% rename from LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetaDataRating.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsSimilar.cs index ce52f34..b62c433 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetaDataRating.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsSimilar.cs @@ -12,25 +12,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - public class GetSearchAllLibrariesMetaDataRating + public class GetLibraryItemsSimilar { /// - /// A URI or path to the rating image. + /// The unique similar item identifier. /// - [JsonProperty("image")] - public string Image { get; set; } = default!; + [JsonProperty("id")] + public long Id { get; set; } = default!; /// - /// The value of the rating. + /// The filter string for similar items. /// - [JsonProperty("value")] - public float Value { get; set; } = default!; + [JsonProperty("filter")] + public string Filter { get; set; } = default!; /// - /// The type of rating (e.g., audience, critic). + /// The tag or title of the similar content. /// - [JsonProperty("type")] - public string Type { get; set; } = default!; + [JsonProperty("tag")] + public string Tag { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsStream.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsStream.cs deleted file mode 100644 index 7f7dca1..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsStream.cs +++ /dev/null @@ -1,234 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - - public class GetLibraryItemsStream - { - - [JsonProperty("id")] - public long Id { get; set; } = default!; - - /// - /// Type of stream (1 = video, 2 = audio, 3 = subtitle) - /// - [JsonProperty("streamType")] - public long StreamType { get; set; } = default!; - - /// - /// Indicates if this is the default stream - /// - [JsonProperty("default")] - public bool? Default { get; set; } - - /// - /// Indicates if the stream is selected - /// - [JsonProperty("selected")] - public bool? Selected { get; set; } - - /// - /// Codec used by the stream - /// - [JsonProperty("codec")] - public string Codec { get; set; } = default!; - - /// - /// The index of the stream - /// - [JsonProperty("index")] - public long Index { get; set; } = default!; - - /// - /// The bitrate of the stream in kbps - /// - [JsonProperty("bitrate")] - public long? Bitrate { get; set; } - - /// - /// The color primaries of the video stream - /// - [JsonProperty("colorPrimaries")] - public string? ColorPrimaries { get; set; } - - /// - /// The color range of the video stream - /// - [JsonProperty("colorRange")] - public string? ColorRange { get; set; } - - /// - /// The color space of the video stream - /// - [JsonProperty("colorSpace")] - public string? ColorSpace { get; set; } - - /// - /// The transfer characteristics (TRC) of the video stream - /// - [JsonProperty("colorTrc")] - public string? ColorTrc { get; set; } - - /// - /// The bit depth of the video stream - /// - [JsonProperty("bitDepth")] - public long? BitDepth { get; set; } - - /// - /// The chroma location of the video stream - /// - [JsonProperty("chromaLocation")] - public string? ChromaLocation { get; set; } - - /// - /// The identifier of the video stream - /// - [JsonProperty("streamIdentifier")] - public string? StreamIdentifier { get; set; } - - /// - /// The chroma subsampling format - /// - [JsonProperty("chromaSubsampling")] - public string? ChromaSubsampling { get; set; } - - /// - /// The coded height of the video stream - /// - [JsonProperty("codedHeight")] - public long? CodedHeight { get; set; } - - /// - /// The coded width of the video stream - /// - [JsonProperty("codedWidth")] - public long? CodedWidth { get; set; } - - /// - /// The frame rate of the video stream - /// - [JsonProperty("frameRate")] - public double? FrameRate { get; set; } - - /// - /// Indicates if the stream has a scaling matrix - /// - [JsonProperty("hasScalingMatrix")] - public bool? HasScalingMatrix { get; set; } - - [JsonProperty("hearingImpaired")] - public bool? HearingImpaired { get; set; } - - [JsonProperty("closedCaptions")] - public bool? ClosedCaptions { get; set; } - - [JsonProperty("embeddedInVideo")] - public string? EmbeddedInVideo { get; set; } - - /// - /// The height of the video stream - /// - [JsonProperty("height")] - public long? Height { get; set; } - - /// - /// The level of the video codec - /// - [JsonProperty("level")] - public long? Level { get; set; } - - /// - /// The profile of the video codec - /// - [JsonProperty("profile")] - public string? Profile { get; set; } - - /// - /// Number of reference frames - /// - [JsonProperty("refFrames")] - public long? RefFrames { get; set; } - - /// - /// The scan type (progressive or interlaced) - /// - [JsonProperty("scanType")] - public string? ScanType { get; set; } - - /// - /// The width of the video stream - /// - [JsonProperty("width")] - public long? Width { get; set; } - - /// - /// Display title of the stream - /// - [JsonProperty("displayTitle")] - public string? DisplayTitle { get; set; } - - /// - /// Extended display title of the stream - /// - [JsonProperty("extendedDisplayTitle")] - public string? ExtendedDisplayTitle { get; set; } - - /// - /// Number of audio channels (for audio streams) - /// - [JsonProperty("channels")] - public long? Channels { get; set; } - - /// - /// The language of the stream (for audio/subtitle streams) - /// - [JsonProperty("language")] - public string? Language { get; set; } - - /// - /// Language tag of the stream - /// - [JsonProperty("languageTag")] - public string? LanguageTag { get; set; } - - /// - /// Language code of the stream - /// - [JsonProperty("languageCode")] - public string? LanguageCode { get; set; } - - /// - /// The audio channel layout - /// - [JsonProperty("audioChannelLayout")] - public string? AudioChannelLayout { get; set; } - - /// - /// Sampling rate of the audio stream in Hz - /// - [JsonProperty("samplingRate")] - public long? SamplingRate { get; set; } - - /// - /// Title of the subtitle track (for subtitle streams) - /// - [JsonProperty("title")] - public string? Title { get; set; } - - /// - /// Indicates if the subtitle stream can auto-sync - /// - [JsonProperty("canAutoSync")] - public bool? CanAutoSync { get; set; } - } -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsType.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsType.cs index d7fcc16..72cdc1c 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsType.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsType.cs @@ -9,36 +9,72 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { - using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - using System.Collections.Generic; + using System; - public class GetLibraryItemsType + /// + /// The type of media content in the Plex library. This can represent videos, music, or photos.
+ /// + /// + /// + /// + ///
+ public enum GetLibraryItemsType { - - [JsonProperty("key")] - public string Key { get; set; } = default!; - - [JsonProperty("type")] - public string Type { get; set; } = default!; - - [JsonProperty("subtype")] - public string? Subtype { get; set; } - - [JsonProperty("title")] - public string Title { get; set; } = default!; - - [JsonProperty("active")] - public bool Active { get; set; } = default!; - - [JsonProperty("Filter")] - public List? Filter { get; set; } - - [JsonProperty("Sort")] - public List? Sort { get; set; } - - [JsonProperty("Field")] - public List? Field { get; set; } + [JsonProperty("movie")] + Movie, + [JsonProperty("show")] + TvShow, + [JsonProperty("season")] + Season, + [JsonProperty("episode")] + Episode, + [JsonProperty("artist")] + Artist, + [JsonProperty("album")] + Album, + [JsonProperty("track")] + Track, + [JsonProperty("photoalbum")] + PhotoAlbum, + [JsonProperty("photo")] + Photo, + [JsonProperty("collection")] + Collection, } + + public static class GetLibraryItemsTypeExtension + { + public static string Value(this GetLibraryItemsType value) + { + return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); + } + + public static GetLibraryItemsType ToEnum(this string value) + { + foreach(var field in typeof(GetLibraryItemsType).GetFields()) + { + var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); + if (attributes.Length == 0) + { + continue; + } + + var attribute = attributes[0] as JsonPropertyAttribute; + if (attribute != null && attribute.PropertyName == value) + { + var enumVal = field.GetValue(null); + + if (enumVal is GetLibraryItemsType) + { + return (GetLibraryItemsType)enumVal; + } + } + } + + throw new Exception($"Unknown value {value} for enum GetLibraryItemsType"); + } + } + } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsWriter.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsWriter.cs index 4d7dd4a..f27a590 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsWriter.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsWriter.cs @@ -15,7 +15,22 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetLibraryItemsWriter { + /// + /// Unique identifier for the writer. + /// + [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The role of Writer + /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; + + /// + /// The absolute URL of the thumbnail image for the writer. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.cs index ffdf4e9..68f1f94 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.cs @@ -24,7 +24,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests private GetLibrarySectionsAllLibraryOptimizedForStreamingType(string value) { Value = value; } public string Value { get; private set; } - public static GetLibrarySectionsAllLibraryOptimizedForStreamingType GetLibrarySectionsAllOptimizedForStreaming1 { get { return new GetLibrarySectionsAllLibraryOptimizedForStreamingType("get-library-sections-all_optimizedForStreaming_1"); } } + public static GetLibrarySectionsAllLibraryOptimizedForStreamingType GetLibrarySectionsAllOptimizedForStreamingLibrary1 { get { return new GetLibrarySectionsAllLibraryOptimizedForStreamingType("get-library-sections-all_optimizedForStreaming_Library_1"); } } public static GetLibrarySectionsAllLibraryOptimizedForStreamingType Boolean { get { return new GetLibrarySectionsAllLibraryOptimizedForStreamingType("boolean"); } } @@ -34,7 +34,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public static implicit operator String(GetLibrarySectionsAllLibraryOptimizedForStreamingType v) { return v.Value; } public static GetLibrarySectionsAllLibraryOptimizedForStreamingType FromString(string v) { switch(v) { - case "get-library-sections-all_optimizedForStreaming_1": return GetLibrarySectionsAllOptimizedForStreaming1; + case "get-library-sections-all_optimizedForStreaming_Library_1": return GetLibrarySectionsAllOptimizedForStreamingLibrary1; case "boolean": return Boolean; case "null": return Null; default: throw new ArgumentException("Invalid value for GetLibrarySectionsAllLibraryOptimizedForStreamingType"); @@ -66,7 +66,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests } [SpeakeasyMetadata("form:explode=true")] - public GetLibrarySectionsAllOptimizedForStreaming1? GetLibrarySectionsAllOptimizedForStreaming1 { get; set; } + public GetLibrarySectionsAllOptimizedForStreamingLibrary1? GetLibrarySectionsAllOptimizedForStreamingLibrary1 { get; set; } [SpeakeasyMetadata("form:explode=true")] public bool? Boolean { get; set; } @@ -74,11 +74,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public GetLibrarySectionsAllLibraryOptimizedForStreamingType Type { get; set; } - public static GetLibrarySectionsAllLibraryOptimizedForStreaming CreateGetLibrarySectionsAllOptimizedForStreaming1(GetLibrarySectionsAllOptimizedForStreaming1 getLibrarySectionsAllOptimizedForStreaming1) { - GetLibrarySectionsAllLibraryOptimizedForStreamingType typ = GetLibrarySectionsAllLibraryOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreaming1; + public static GetLibrarySectionsAllLibraryOptimizedForStreaming CreateGetLibrarySectionsAllOptimizedForStreamingLibrary1(GetLibrarySectionsAllOptimizedForStreamingLibrary1 getLibrarySectionsAllOptimizedForStreamingLibrary1) { + GetLibrarySectionsAllLibraryOptimizedForStreamingType typ = GetLibrarySectionsAllLibraryOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreamingLibrary1; GetLibrarySectionsAllLibraryOptimizedForStreaming res = new GetLibrarySectionsAllLibraryOptimizedForStreaming(typ); - res.GetLibrarySectionsAllOptimizedForStreaming1 = getLibrarySectionsAllOptimizedForStreaming1; + res.GetLibrarySectionsAllOptimizedForStreamingLibrary1 = getLibrarySectionsAllOptimizedForStreamingLibrary1; return res; } @@ -114,14 +114,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests try { - return new GetLibrarySectionsAllLibraryOptimizedForStreaming(GetLibrarySectionsAllLibraryOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreaming1) + return new GetLibrarySectionsAllLibraryOptimizedForStreaming(GetLibrarySectionsAllLibraryOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreamingLibrary1) { - GetLibrarySectionsAllOptimizedForStreaming1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) + GetLibrarySectionsAllOptimizedForStreamingLibrary1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) }; } catch (ResponseBodyDeserializer.MissingMemberException) { - fallbackCandidates.Add((typeof(GetLibrarySectionsAllOptimizedForStreaming1), new GetLibrarySectionsAllLibraryOptimizedForStreaming(GetLibrarySectionsAllLibraryOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreaming1), "GetLibrarySectionsAllOptimizedForStreaming1")); + fallbackCandidates.Add((typeof(GetLibrarySectionsAllOptimizedForStreamingLibrary1), new GetLibrarySectionsAllLibraryOptimizedForStreaming(GetLibrarySectionsAllLibraryOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreamingLibrary1), "GetLibrarySectionsAllOptimizedForStreamingLibrary1")); } catch (ResponseBodyDeserializer.DeserializationException) { @@ -180,9 +180,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests writer.WriteRawValue("null"); return; } - if (res.GetLibrarySectionsAllOptimizedForStreaming1 != null) + if (res.GetLibrarySectionsAllOptimizedForStreamingLibrary1 != null) { - writer.WriteRawValue(Utilities.SerializeJSON(res.GetLibrarySectionsAllOptimizedForStreaming1)); + writer.WriteRawValue(Utilities.SerializeJSON(res.GetLibrarySectionsAllOptimizedForStreamingLibrary1)); return; } if (res.Boolean != null) diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMediaContainer.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMediaContainer.cs index 42e1b8d..9f60929 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMediaContainer.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMediaContainer.cs @@ -63,13 +63,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// The unique identifier for the library section. ///
[JsonProperty("librarySectionID")] - public long LibrarySectionID { get; set; } = default!; + public long? LibrarySectionID { get; set; } /// /// The title of the library section. /// [JsonProperty("librarySectionTitle")] - public string LibrarySectionTitle { get; set; } = default!; + public string? LibrarySectionTitle { get; set; } /// /// The universally unique identifier for the library section. diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMetadata.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMetadata.cs index 5988901..bf701bd 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMetadata.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllMetadata.cs @@ -164,7 +164,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// The original release date of the media item. /// [JsonProperty("originallyAvailableAt")] - public LocalDate OriginallyAvailableAt { get; set; } = default!; + public LocalDate? OriginallyAvailableAt { get; set; } [JsonProperty("addedAt")] public long AddedAt { get; set; } = default!; diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.cs index 217f5f7..f6b9e73 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.cs @@ -24,7 +24,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests private GetLibrarySectionsAllOptimizedForStreamingType(string value) { Value = value; } public string Value { get; private set; } - public static GetLibrarySectionsAllOptimizedForStreamingType OptimizedForStreaming1 { get { return new GetLibrarySectionsAllOptimizedForStreamingType("optimizedForStreaming_1"); } } + public static GetLibrarySectionsAllOptimizedForStreamingType GetLibrarySectionsAllOptimizedForStreaming1 { get { return new GetLibrarySectionsAllOptimizedForStreamingType("get-library-sections-all_optimizedForStreaming_1"); } } public static GetLibrarySectionsAllOptimizedForStreamingType Boolean { get { return new GetLibrarySectionsAllOptimizedForStreamingType("boolean"); } } @@ -34,7 +34,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public static implicit operator String(GetLibrarySectionsAllOptimizedForStreamingType v) { return v.Value; } public static GetLibrarySectionsAllOptimizedForStreamingType FromString(string v) { switch(v) { - case "optimizedForStreaming_1": return OptimizedForStreaming1; + case "get-library-sections-all_optimizedForStreaming_1": return GetLibrarySectionsAllOptimizedForStreaming1; case "boolean": return Boolean; case "null": return Null; default: throw new ArgumentException("Invalid value for GetLibrarySectionsAllOptimizedForStreamingType"); @@ -66,7 +66,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests } [SpeakeasyMetadata("form:explode=true")] - public OptimizedForStreaming1? OptimizedForStreaming1 { get; set; } + public GetLibrarySectionsAllOptimizedForStreaming1? GetLibrarySectionsAllOptimizedForStreaming1 { get; set; } [SpeakeasyMetadata("form:explode=true")] public bool? Boolean { get; set; } @@ -74,11 +74,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public GetLibrarySectionsAllOptimizedForStreamingType Type { get; set; } - public static GetLibrarySectionsAllOptimizedForStreaming CreateOptimizedForStreaming1(OptimizedForStreaming1 optimizedForStreaming1) { - GetLibrarySectionsAllOptimizedForStreamingType typ = GetLibrarySectionsAllOptimizedForStreamingType.OptimizedForStreaming1; + public static GetLibrarySectionsAllOptimizedForStreaming CreateGetLibrarySectionsAllOptimizedForStreaming1(GetLibrarySectionsAllOptimizedForStreaming1 getLibrarySectionsAllOptimizedForStreaming1) { + GetLibrarySectionsAllOptimizedForStreamingType typ = GetLibrarySectionsAllOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreaming1; GetLibrarySectionsAllOptimizedForStreaming res = new GetLibrarySectionsAllOptimizedForStreaming(typ); - res.OptimizedForStreaming1 = optimizedForStreaming1; + res.GetLibrarySectionsAllOptimizedForStreaming1 = getLibrarySectionsAllOptimizedForStreaming1; return res; } @@ -114,14 +114,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests try { - return new GetLibrarySectionsAllOptimizedForStreaming(GetLibrarySectionsAllOptimizedForStreamingType.OptimizedForStreaming1) + return new GetLibrarySectionsAllOptimizedForStreaming(GetLibrarySectionsAllOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreaming1) { - OptimizedForStreaming1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) + GetLibrarySectionsAllOptimizedForStreaming1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) }; } catch (ResponseBodyDeserializer.MissingMemberException) { - fallbackCandidates.Add((typeof(OptimizedForStreaming1), new GetLibrarySectionsAllOptimizedForStreaming(GetLibrarySectionsAllOptimizedForStreamingType.OptimizedForStreaming1), "OptimizedForStreaming1")); + fallbackCandidates.Add((typeof(GetLibrarySectionsAllOptimizedForStreaming1), new GetLibrarySectionsAllOptimizedForStreaming(GetLibrarySectionsAllOptimizedForStreamingType.GetLibrarySectionsAllOptimizedForStreaming1), "GetLibrarySectionsAllOptimizedForStreaming1")); } catch (ResponseBodyDeserializer.DeserializationException) { @@ -180,9 +180,9 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests writer.WriteRawValue("null"); return; } - if (res.OptimizedForStreaming1 != null) + if (res.GetLibrarySectionsAllOptimizedForStreaming1 != null) { - writer.WriteRawValue(Utilities.SerializeJSON(res.OptimizedForStreaming1)); + writer.WriteRawValue(Utilities.SerializeJSON(res.GetLibrarySectionsAllOptimizedForStreaming1)); return; } if (res.Boolean != null) diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/StreamType.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.cs similarity index 63% rename from LukeHagar/PlexAPI/SDK/Models/Requests/StreamType.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.cs index 47a947b..d057665 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/StreamType.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.cs @@ -11,21 +11,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests { using LukeHagar.PlexAPI.SDK.Utils; - /// - /// Stream type:
- /// - /// - /// - 1 = video
- /// - 2 = audio
- /// - 3 = subtitle
- /// - ///
- ///
- public enum StreamType + public enum GetLibrarySectionsAllOptimizedForStreamingLibrary1 { - Video = 1, - Audio = 2, - Subtitle = 3, + Zero = 0, + One = 1, } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStream.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStream.cs index 1ab306e..2730af0 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStream.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStream.cs @@ -9,7 +9,6 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { - using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; @@ -26,14 +25,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Stream type:
/// /// - /// - 1 = video
- /// - 2 = audio
- /// - 3 = subtitle
+ /// - VIDEO = 1
+ /// - AUDIO = 2
+ /// - SUBTITLE = 3
/// ///
///
[JsonProperty("streamType")] - public GetLibrarySectionsAllStreamType StreamType { get; set; } = default!; + public long StreamType { get; } = 1; /// /// Format of the stream (e.g., srt). diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStreamType.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStreamType.cs deleted file mode 100644 index e55d3fc..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibrarySectionsAllStreamType.cs +++ /dev/null @@ -1,31 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - - /// - /// Stream type:
- /// - /// - /// - 1 = video
- /// - 2 = audio
- /// - 3 = subtitle
- /// - ///
- ///
- public enum GetLibrarySectionsAllStreamType - { - Video = 1, - Audio = 2, - Subtitle = 3, - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataAttributes.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataAttributes.cs new file mode 100644 index 0000000..9a36a17 --- /dev/null +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataAttributes.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace LukeHagar.PlexAPI.SDK.Models.Requests +{ + using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + + /// + /// Attributes associated with the marker. + /// + public class GetMediaMetaDataAttributes + { + + /// + /// The identifier for the attributes. + /// + [JsonProperty("id")] + public long Id { get; set; } = default!; + + /// + /// The version number of the marker attributes. + /// + [JsonProperty("version")] + public long? Version { get; set; } + } +} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFilter.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataChapter.cs similarity index 52% rename from LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFilter.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataChapter.cs index 17ae910..29f3c9c 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryFilter.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataChapter.cs @@ -12,22 +12,28 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - public class GetLibraryItemsLibraryFilter + /// + /// The thumbnail for the chapter + /// + public class GetMediaMetaDataChapter { + [JsonProperty("id")] + public long Id { get; set; } = default!; + [JsonProperty("filter")] public string Filter { get; set; } = default!; - [JsonProperty("filterType")] - public string FilterType { get; set; } = default!; + [JsonProperty("index")] + public long Index { get; set; } = default!; - [JsonProperty("key")] - public string Key { get; set; } = default!; + [JsonProperty("startTimeOffset")] + public long StartTimeOffset { get; set; } = default!; - [JsonProperty("title")] - public string Title { get; set; } = default!; + [JsonProperty("endTimeOffset")] + public long EndTimeOffset { get; set; } = default!; - [JsonProperty("type")] - public string Type { get; set; } = default!; + [JsonProperty("thumb")] + public string Thumb { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOperator.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataExtras.cs similarity index 71% rename from LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOperator.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataExtras.cs index 82af17a..1d5f279 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetLibraryItemsLibraryOperator.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataExtras.cs @@ -12,13 +12,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - public class GetLibraryItemsLibraryOperator + public class GetMediaMetaDataExtras { - [JsonProperty("key")] - public string Key { get; set; } = default!; - - [JsonProperty("title")] - public string Title { get; set; } = default!; + /// + /// The size of the extras. + /// + [JsonProperty("size")] + public long? Size { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataHasThumbnail.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataHasThumbnail.cs index bb1d553..1455fee 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataHasThumbnail.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataHasThumbnail.cs @@ -14,7 +14,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using System; /// - /// Indicates if the part has a thumbnail. + /// Indicates if the part has a thumbnail.
+ /// + /// + /// + /// ///
public enum GetMediaMetaDataHasThumbnail { diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.cs index ff23ce9..2ce0ba2 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.cs @@ -57,7 +57,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// - /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
+ /// + /// + /// + /// ///
[JsonConverter(typeof(GetMediaMetaDataLibraryOptimizedForStreaming.GetMediaMetaDataLibraryOptimizedForStreamingConverter))] public class GetMediaMetaDataLibraryOptimizedForStreaming { diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMarker.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMarker.cs new file mode 100644 index 0000000..a5e4f4f --- /dev/null +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMarker.cs @@ -0,0 +1,43 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace LukeHagar.PlexAPI.SDK.Models.Requests +{ + using LukeHagar.PlexAPI.SDK.Models.Requests; + using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + + /// + /// The final status of the marker + /// + public class GetMediaMetaDataMarker + { + + [JsonProperty("id")] + public long Id { get; set; } = default!; + + [JsonProperty("type")] + public string Type { get; set; } = default!; + + [JsonProperty("startTimeOffset")] + public long StartTimeOffset { get; set; } = default!; + + [JsonProperty("endTimeOffset")] + public long EndTimeOffset { get; set; } = default!; + + [JsonProperty("final")] + public bool? Final { get; set; } + + /// + /// Attributes associated with the marker. + /// + [JsonProperty("Attributes")] + public GetMediaMetaDataAttributes? Attributes { get; set; } + } +} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMedia.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMedia.cs index 560db5e..6a95825 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMedia.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMedia.cs @@ -82,7 +82,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public string? VideoResolution { get; set; } /// - /// File container type. + /// Container format of the media. /// [JsonProperty("container")] public string? Container { get; set; } @@ -121,12 +121,17 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests [JsonProperty("optimizedForStreaming")] public GetMediaMetaDataOptimizedForStreaming? OptimizedForStreaming { get; set; } + /// + /// Indicates whether the media has 64-bit offsets.
+ /// + /// + /// This is relevant for media files that may require larger offsets than what 32-bit integers can provide.
+ /// + ///
+ ///
[JsonProperty("has64bitOffsets")] public bool? Has64bitOffsets { get; set; } - /// - /// An array of parts for this media item. - /// [JsonProperty("Part")] public List? Part { get; set; } } diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMediaContainer.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMediaContainer.cs index b5a216a..7560ec3 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMediaContainer.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMediaContainer.cs @@ -39,13 +39,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// The unique identifier for the library section. ///
[JsonProperty("librarySectionID")] - public long LibrarySectionID { get; set; } = default!; + public long? LibrarySectionID { get; set; } /// /// The title of the library section. /// [JsonProperty("librarySectionTitle")] - public string LibrarySectionTitle { get; set; } = default!; + public string? LibrarySectionTitle { get; set; } /// /// The universally unique identifier for the library section. diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMetadata.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMetadata.cs index c1c47cf..b328310 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMetadata.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataMetadata.cs @@ -164,7 +164,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// The original release date of the media item. /// [JsonProperty("originallyAvailableAt")] - public LocalDate OriginallyAvailableAt { get; set; } = default!; + public LocalDate? OriginallyAvailableAt { get; set; } [JsonProperty("addedAt")] public long AddedAt { get; set; } = default!; @@ -353,19 +353,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// The identifier for the library section. /// [JsonProperty("librarySectionID")] - public long LibrarySectionID { get; set; } = default!; + public long? LibrarySectionID { get; set; } /// /// The title of the library section. /// [JsonProperty("librarySectionTitle")] - public string LibrarySectionTitle { get; set; } = default!; + public string? LibrarySectionTitle { get; set; } /// /// The key corresponding to the library section. /// [JsonProperty("librarySectionKey")] - public string LibrarySectionKey { get; set; } = default!; + public string? LibrarySectionKey { get; set; } [JsonProperty("Guid")] public List? Guids { get; set; } @@ -392,7 +392,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public List? Role { get; set; } [JsonProperty("Rating")] - public List? Ratings { get; set; } + public List? Ratings { get; set; } [JsonProperty("Similar")] public List? Similar { get; set; } @@ -401,12 +401,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public List? Location { get; set; } [JsonProperty("Chapter")] - public List? Chapter { get; set; } + public List? Chapter { get; set; } [JsonProperty("Marker")] - public List? Marker { get; set; } + public List? Marker { get; set; } [JsonProperty("Extras")] - public Extras? Extras { get; set; } + public GetMediaMetaDataExtras? Extras { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataPart.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataPart.cs index 7a6b325..3e3e06c 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataPart.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataPart.cs @@ -40,7 +40,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Key to access this part. /// [JsonProperty("key")] - public string Key { get; set; } = default!; + public string? Key { get; set; } [JsonProperty("indexes")] public string? Indexes { get; set; } @@ -55,13 +55,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// File path for the part. /// [JsonProperty("file")] - public string File { get; set; } = default!; + public string? File { get; set; } /// /// File size in bytes. /// [JsonProperty("size")] - public long Size { get; set; } = default!; + public long? Size { get; set; } [JsonProperty("packetLength")] public int? PacketLength { get; set; } @@ -88,7 +88,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public bool? Has64bitOffsets { get; set; } /// - /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
+ /// + /// + /// + /// ///
[JsonProperty("optimizedForStreaming")] public GetMediaMetaDataLibraryOptimizedForStreaming? OptimizedForStreaming { get; set; } @@ -96,9 +100,6 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests [JsonProperty("hasThumbnail")] public GetMediaMetaDataHasThumbnail? HasThumbnail { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetMediaMetaDataHasThumbnail.False; - /// - /// An array of streams for this part. - /// [JsonProperty("Stream")] public List? Stream { get; set; } } diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/MetaDataRating.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataRatings.cs similarity index 89% rename from LukeHagar/PlexAPI/SDK/Models/Requests/MetaDataRating.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataRatings.cs index 5803165..1b3f579 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/MetaDataRating.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataRatings.cs @@ -12,17 +12,17 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - public class MetaDataRating + public class GetMediaMetaDataRatings { /// - /// A URI or path to the rating image. + /// The image or reference for the rating. /// [JsonProperty("image")] public string Image { get; set; } = default!; /// - /// The value of the rating. + /// The rating value. /// [JsonProperty("value")] public float Value { get; set; } = default!; diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStream.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStream.cs index cb5af58..0d9839b 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStream.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStream.cs @@ -9,7 +9,6 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { - using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; @@ -26,14 +25,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Stream type:
/// /// - /// - 1 = video
- /// - 2 = audio
- /// - 3 = subtitle
+ /// - VIDEO = 1
+ /// - AUDIO = 2
+ /// - SUBTITLE = 3
/// ///
/// [JsonProperty("streamType")] - public GetMediaMetaDataStreamType StreamType { get; set; } = default!; + public long StreamType { get; } = 1; /// /// Format of the stream (e.g., srt). @@ -51,7 +50,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Codec used by the stream. /// [JsonProperty("codec")] - public string Codec { get; set; } = default!; + public string? Codec { get; set; } /// /// Index of the stream. @@ -255,13 +254,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Display title for the stream. /// [JsonProperty("displayTitle")] - public string DisplayTitle { get; set; } = default!; + public string? DisplayTitle { get; set; } /// /// Extended display title for the stream. /// [JsonProperty("extendedDisplayTitle")] - public string ExtendedDisplayTitle { get; set; } = default!; + public string? ExtendedDisplayTitle { get; set; } /// /// Indicates if this stream is selected (applicable for audio streams). diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetRecentlyAddedMetadata.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetRecentlyAddedMetadata.cs index 15f5e99..552f6d2 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetRecentlyAddedMetadata.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetRecentlyAddedMetadata.cs @@ -170,19 +170,19 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// The identifier for the library section. /// [JsonProperty("librarySectionID")] - public long LibrarySectionID { get; set; } = default!; + public long? LibrarySectionID { get; set; } /// /// The key corresponding to the library section. /// [JsonProperty("librarySectionKey")] - public string LibrarySectionKey { get; set; } = default!; + public string? LibrarySectionKey { get; set; } /// /// The title of the library section. /// [JsonProperty("librarySectionTitle")] - public string LibrarySectionTitle { get; set; } = default!; + public string? LibrarySectionTitle { get; set; } /// /// The original title of the media item (if different). @@ -194,7 +194,7 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// The original release date of the media item. /// [JsonProperty("originallyAvailableAt")] - public LocalDate OriginallyAvailableAt { get; set; } = default!; + public LocalDate? OriginallyAvailableAt { get; set; } /// /// The GUID of the parent media item. diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCountry.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCountry.cs index 9f3bb98..8c0ff66 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCountry.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesCountry.cs @@ -15,7 +15,21 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetSearchAllLibrariesCountry { + /// + /// The unique identifier for the country.
+ /// + /// + /// NOTE: This is different for each Plex server and is not globally unique.
+ /// + ///
+ ///
+ [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The country of origin of this media item + /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirector.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirector.cs index 7dd08ff..e3c34e6 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirector.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirector.cs @@ -15,7 +15,22 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetSearchAllLibrariesDirector { + /// + /// Unique identifier for the director. + /// + [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The role of Director + /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; + + /// + /// The absolute URL of the thumbnail image for the director. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirectory.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirectory.cs new file mode 100644 index 0000000..08245d5 --- /dev/null +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesDirectory.cs @@ -0,0 +1,87 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace LukeHagar.PlexAPI.SDK.Models.Requests +{ + using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + + public class GetSearchAllLibrariesDirectory + { + + /// + /// The unique identifier path for the search result item. + /// + [JsonProperty("key")] + public string Key { get; set; } = default!; + + /// + /// The identifier for the library section. + /// + [JsonProperty("librarySectionID")] + public long LibrarySectionID { get; set; } = default!; + + /// + /// The key corresponding to the library section. + /// + [JsonProperty("librarySectionKey")] + public string LibrarySectionKey { get; set; } = default!; + + /// + /// The title of the library section. + /// + [JsonProperty("librarySectionTitle")] + public string LibrarySectionTitle { get; set; } = default!; + + [JsonProperty("librarySectionType")] + public long LibrarySectionType { get; } = 1; + + /// + /// The type of the directory. + /// + [JsonProperty("type")] + public string Type { get; set; } = default!; + + [JsonProperty("id")] + public long Id { get; set; } = default!; + + /// + /// The filter string used to query this specific item in the library. + /// + [JsonProperty("filter")] + public string? Filter { get; set; } + + [JsonProperty("tag")] + public string Tag { get; set; } = default!; + + /// + /// The type of tag associated with this search result (e.g., Director, Actor). + /// + [JsonProperty("tagType")] + public long TagType { get; } = 4; + + /// + /// The unique identifier for the tag associated with this search result. + /// + [JsonProperty("tagKey")] + public string? TagKey { get; set; } + + /// + /// The URL to the thumbnail image associated with this search result. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } + + /// + /// The number of items associated with this search result. + /// + [JsonProperty("count")] + public long? Count { get; set; } + } +} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.cs deleted file mode 100644 index a55d7a8..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.cs +++ /dev/null @@ -1,60 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System; - - /// - /// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - /// - public enum GetSearchAllLibrariesEnableCreditsMarkerGeneration - { - [JsonProperty("-1")] - LibraryDefault, - [JsonProperty("0")] - Disabled, - } - - public static class GetSearchAllLibrariesEnableCreditsMarkerGenerationExtension - { - public static string Value(this GetSearchAllLibrariesEnableCreditsMarkerGeneration value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static GetSearchAllLibrariesEnableCreditsMarkerGeneration ToEnum(this string value) - { - foreach(var field in typeof(GetSearchAllLibrariesEnableCreditsMarkerGeneration).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is GetSearchAllLibrariesEnableCreditsMarkerGeneration) - { - return (GetSearchAllLibrariesEnableCreditsMarkerGeneration)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum GetSearchAllLibrariesEnableCreditsMarkerGeneration"); - } - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEpisodeSort.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEpisodeSort.cs deleted file mode 100644 index 3f05961..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesEpisodeSort.cs +++ /dev/null @@ -1,62 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - using System; - - /// - /// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - /// - public enum GetSearchAllLibrariesEpisodeSort - { - [JsonProperty("-1")] - LibraryDefault, - [JsonProperty("0")] - OldestFirst, - [JsonProperty("1")] - NewestFirst, - } - - public static class GetSearchAllLibrariesEpisodeSortExtension - { - public static string Value(this GetSearchAllLibrariesEpisodeSort value) - { - return ((JsonPropertyAttribute)value.GetType().GetMember(value.ToString())[0].GetCustomAttributes(typeof(JsonPropertyAttribute), false)[0]).PropertyName ?? value.ToString(); - } - - public static GetSearchAllLibrariesEpisodeSort ToEnum(this string value) - { - foreach(var field in typeof(GetSearchAllLibrariesEpisodeSort).GetFields()) - { - var attributes = field.GetCustomAttributes(typeof(JsonPropertyAttribute), false); - if (attributes.Length == 0) - { - continue; - } - - var attribute = attributes[0] as JsonPropertyAttribute; - if (attribute != null && attribute.PropertyName == value) - { - var enumVal = field.GetValue(null); - - if (enumVal is GetSearchAllLibrariesEpisodeSort) - { - return (GetSearchAllLibrariesEpisodeSort)enumVal; - } - } - } - - throw new Exception($"Unknown value {value} for enum GetSearchAllLibrariesEpisodeSort"); - } - } - -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesFlattenSeasons.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesFlattenSeasons.cs index 6549cf7..1e4d2e2 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesFlattenSeasons.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesFlattenSeasons.cs @@ -14,7 +14,11 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using System; /// - /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). + /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
+ /// + /// + /// + /// ///
public enum GetSearchAllLibrariesFlattenSeasons { diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGenre.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGenre.cs index 1d87ddd..c4bf1aa 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGenre.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGenre.cs @@ -15,7 +15,25 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetSearchAllLibrariesGenre { + /// + /// The unique identifier for the genre.
+ /// + /// + /// NOTE: This is different for each Plex server and is not globally unique.
+ /// + ///
+ ///
+ [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The genre name of this media-item
+ /// + /// + /// + /// + ///
[JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaGuid.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGuids.cs similarity index 81% rename from LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaGuid.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGuids.cs index 9b1b208..d09f7e1 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaGuid.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesGuids.cs @@ -12,14 +12,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - public class GetSearchAllLibrariesMediaGuid + public class GetSearchAllLibrariesGuids { /// - /// Can be one of the following formats:
+ /// The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
/// /// - /// imdb://tt13015952, tmdb://2434012, tvdb://7945991
/// ///
///
diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesHasThumbnail.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesHasThumbnail.cs index bd471f3..b78819e 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesHasThumbnail.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesHasThumbnail.cs @@ -13,6 +13,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using Newtonsoft.Json; using System; + /// + /// Indicates if the part has a thumbnail.
+ /// + /// + /// + /// + ///
public enum GetSearchAllLibrariesHasThumbnail { [JsonProperty("0")] diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.cs new file mode 100644 index 0000000..20d6e6c --- /dev/null +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.cs @@ -0,0 +1,203 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace LukeHagar.PlexAPI.SDK.Models.Requests +{ + using LukeHagar.PlexAPI.SDK.Models.Requests; + using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + using Newtonsoft.Json.Linq; + using System; + using System.Collections.Generic; + using System.Numerics; + using System.Reflection; + + + public class GetSearchAllLibrariesLibraryOptimizedForStreamingType + { + private GetSearchAllLibrariesLibraryOptimizedForStreamingType(string value) { Value = value; } + + public string Value { get; private set; } + public static GetSearchAllLibrariesLibraryOptimizedForStreamingType GetSearchAllLibrariesOptimizedForStreamingLibrary1 { get { return new GetSearchAllLibrariesLibraryOptimizedForStreamingType("get-search-all-libraries_optimizedForStreaming_Library_1"); } } + + public static GetSearchAllLibrariesLibraryOptimizedForStreamingType Boolean { get { return new GetSearchAllLibrariesLibraryOptimizedForStreamingType("boolean"); } } + + public static GetSearchAllLibrariesLibraryOptimizedForStreamingType Null { get { return new GetSearchAllLibrariesLibraryOptimizedForStreamingType("null"); } } + + public override string ToString() { return Value; } + public static implicit operator String(GetSearchAllLibrariesLibraryOptimizedForStreamingType v) { return v.Value; } + public static GetSearchAllLibrariesLibraryOptimizedForStreamingType FromString(string v) { + switch(v) { + case "get-search-all-libraries_optimizedForStreaming_Library_1": return GetSearchAllLibrariesOptimizedForStreamingLibrary1; + case "boolean": return Boolean; + case "null": return Null; + default: throw new ArgumentException("Invalid value for GetSearchAllLibrariesLibraryOptimizedForStreamingType"); + } + } + public override bool Equals(object? obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + return Value.Equals(((GetSearchAllLibrariesLibraryOptimizedForStreamingType)obj).Value); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } + } + + + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
+ /// + /// + /// + /// + ///
+ [JsonConverter(typeof(GetSearchAllLibrariesLibraryOptimizedForStreaming.GetSearchAllLibrariesLibraryOptimizedForStreamingConverter))] + public class GetSearchAllLibrariesLibraryOptimizedForStreaming { + public GetSearchAllLibrariesLibraryOptimizedForStreaming(GetSearchAllLibrariesLibraryOptimizedForStreamingType type) { + Type = type; + } + + [SpeakeasyMetadata("form:explode=true")] + public GetSearchAllLibrariesOptimizedForStreamingLibrary1? GetSearchAllLibrariesOptimizedForStreamingLibrary1 { get; set; } + + [SpeakeasyMetadata("form:explode=true")] + public bool? Boolean { get; set; } + + public GetSearchAllLibrariesLibraryOptimizedForStreamingType Type { get; set; } + + + public static GetSearchAllLibrariesLibraryOptimizedForStreaming CreateGetSearchAllLibrariesOptimizedForStreamingLibrary1(GetSearchAllLibrariesOptimizedForStreamingLibrary1 getSearchAllLibrariesOptimizedForStreamingLibrary1) { + GetSearchAllLibrariesLibraryOptimizedForStreamingType typ = GetSearchAllLibrariesLibraryOptimizedForStreamingType.GetSearchAllLibrariesOptimizedForStreamingLibrary1; + + GetSearchAllLibrariesLibraryOptimizedForStreaming res = new GetSearchAllLibrariesLibraryOptimizedForStreaming(typ); + res.GetSearchAllLibrariesOptimizedForStreamingLibrary1 = getSearchAllLibrariesOptimizedForStreamingLibrary1; + return res; + } + + public static GetSearchAllLibrariesLibraryOptimizedForStreaming CreateBoolean(bool boolean) { + GetSearchAllLibrariesLibraryOptimizedForStreamingType typ = GetSearchAllLibrariesLibraryOptimizedForStreamingType.Boolean; + + GetSearchAllLibrariesLibraryOptimizedForStreaming res = new GetSearchAllLibrariesLibraryOptimizedForStreaming(typ); + res.Boolean = boolean; + return res; + } + + public static GetSearchAllLibrariesLibraryOptimizedForStreaming CreateNull() { + GetSearchAllLibrariesLibraryOptimizedForStreamingType typ = GetSearchAllLibrariesLibraryOptimizedForStreamingType.Null; + return new GetSearchAllLibrariesLibraryOptimizedForStreaming(typ); + } + + public class GetSearchAllLibrariesLibraryOptimizedForStreamingConverter : JsonConverter + { + + public override bool CanConvert(System.Type objectType) => objectType == typeof(GetSearchAllLibrariesLibraryOptimizedForStreaming); + + public override bool CanRead => true; + + public override object? ReadJson(JsonReader reader, System.Type objectType, object? existingValue, JsonSerializer serializer) + { + var json = JRaw.Create(reader).ToString(); + if (json == "null") + { + return null; + } + + var fallbackCandidates = new List<(System.Type, object, string)>(); + + try + { + return new GetSearchAllLibrariesLibraryOptimizedForStreaming(GetSearchAllLibrariesLibraryOptimizedForStreamingType.GetSearchAllLibrariesOptimizedForStreamingLibrary1) + { + GetSearchAllLibrariesOptimizedForStreamingLibrary1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) + }; + } + catch (ResponseBodyDeserializer.MissingMemberException) + { + fallbackCandidates.Add((typeof(GetSearchAllLibrariesOptimizedForStreamingLibrary1), new GetSearchAllLibrariesLibraryOptimizedForStreaming(GetSearchAllLibrariesLibraryOptimizedForStreamingType.GetSearchAllLibrariesOptimizedForStreamingLibrary1), "GetSearchAllLibrariesOptimizedForStreamingLibrary1")); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next option + } + catch (Exception) + { + throw; + } + + try + { + var converted = Convert.ToBoolean(json); + return new GetSearchAllLibrariesLibraryOptimizedForStreaming(GetSearchAllLibrariesLibraryOptimizedForStreamingType.Boolean) + { + Boolean = converted + }; + } + catch (System.FormatException) + { + // try next option + } + + if (fallbackCandidates.Count > 0) + { + fallbackCandidates.Sort((a, b) => ResponseBodyDeserializer.CompareFallbackCandidates(a.Item1, b.Item1, json)); + foreach(var (deserializationType, returnObject, propertyName) in fallbackCandidates) + { + try + { + return ResponseBodyDeserializer.DeserializeUndiscriminatedUnionFallback(deserializationType, returnObject, propertyName, json); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next fallback option + } + catch (Exception) + { + throw; + } + } + } + + throw new InvalidOperationException("Could not deserialize into any supported types."); + } + + public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) + { + if (value == null) { + writer.WriteRawValue("null"); + return; + } + GetSearchAllLibrariesLibraryOptimizedForStreaming res = (GetSearchAllLibrariesLibraryOptimizedForStreaming)value; + if (GetSearchAllLibrariesLibraryOptimizedForStreamingType.FromString(res.Type).Equals(GetSearchAllLibrariesLibraryOptimizedForStreamingType.Null)) + { + writer.WriteRawValue("null"); + return; + } + if (res.GetSearchAllLibrariesOptimizedForStreamingLibrary1 != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.GetSearchAllLibrariesOptimizedForStreamingLibrary1)); + return; + } + if (res.Boolean != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.Boolean)); + return; + } + + } + + } + + } +} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLocation.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLocation.cs index 0ab8415..2640833 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLocation.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesLocation.cs @@ -12,10 +12,13 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; + /// + /// The folder path for the media item. + /// public class GetSearchAllLibrariesLocation { [JsonProperty("path")] - public string? Path { get; set; } + public string Path { get; set; } = default!; } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMedia.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMedia.cs index 5790749..9fb6c31 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMedia.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMedia.cs @@ -9,6 +9,7 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { + using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; @@ -17,58 +18,121 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetSearchAllLibrariesMedia { + /// + /// Unique media identifier. + /// [JsonProperty("id")] - public int Id { get; set; } = default!; + public long Id { get; set; } = default!; + /// + /// Duration of the media in milliseconds. + /// [JsonProperty("duration")] public int? Duration { get; set; } + /// + /// Bitrate in bits per second. + /// [JsonProperty("bitrate")] public int? Bitrate { get; set; } + /// + /// Video width in pixels. + /// [JsonProperty("width")] public int? Width { get; set; } + /// + /// Video height in pixels. + /// [JsonProperty("height")] public int? Height { get; set; } + /// + /// Aspect ratio of the video. + /// [JsonProperty("aspectRatio")] - public double? AspectRatio { get; set; } - - [JsonProperty("audioProfile")] - public string? AudioProfile { get; set; } + public float? AspectRatio { get; set; } + /// + /// Number of audio channels. + /// [JsonProperty("audioChannels")] public int? AudioChannels { get; set; } + [JsonProperty("displayOffset")] + public int? DisplayOffset { get; set; } + + /// + /// Audio codec used. + /// [JsonProperty("audioCodec")] public string? AudioCodec { get; set; } + /// + /// Video codec used. + /// [JsonProperty("videoCodec")] public string? VideoCodec { get; set; } + /// + /// Video resolution (e.g., 4k). + /// [JsonProperty("videoResolution")] public string? VideoResolution { get; set; } + /// + /// Container format of the media. + /// [JsonProperty("container")] - public string Container { get; set; } = default!; + public string? Container { get; set; } + /// + /// Frame rate of the video. Values found include NTSC, PAL, 24p
+ /// + /// + /// + /// + ///
[JsonProperty("videoFrameRate")] public string? VideoFrameRate { get; set; } + /// + /// Video profile (e.g., main 10). + /// [JsonProperty("videoProfile")] public string? VideoProfile { get; set; } + /// + /// Indicates whether voice activity is detected. + /// [JsonProperty("hasVoiceActivity")] public bool? HasVoiceActivity { get; set; } - [JsonProperty("optimizedForStreaming")] - public GetSearchAllLibrariesOptimizedForStreaming? OptimizedForStreaming { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetSearchAllLibrariesOptimizedForStreaming.Disable; + /// + /// The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). + /// + [JsonProperty("audioProfile")] + public string? AudioProfile { get; set; } + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + /// + [JsonProperty("optimizedForStreaming")] + public GetSearchAllLibrariesOptimizedForStreaming? OptimizedForStreaming { get; set; } + + /// + /// Indicates whether the media has 64-bit offsets.
+ /// + /// + /// This is relevant for media files that may require larger offsets than what 32-bit integers can provide.
+ /// + ///
+ ///
[JsonProperty("has64bitOffsets")] public bool? Has64bitOffsets { get; set; } [JsonProperty("Part")] - public List Part { get; set; } = default!; + public List? Part { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaContainer.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaContainer.cs index 18cb557..5d9926e 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaContainer.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMediaContainer.cs @@ -17,8 +17,53 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetSearchAllLibrariesMediaContainer { + /// + /// Number of media items returned in this response. + /// [JsonProperty("size")] - public double Size { get; set; } = default!; + public int Size { get; set; } = default!; + + /// + /// Indicates whether syncing is allowed. + /// + [JsonProperty("allowSync")] + public bool AllowSync { get; set; } = default!; + + /// + /// An plugin identifier for the media container. + /// + [JsonProperty("identifier")] + public string Identifier { get; set; } = default!; + + /// + /// The unique identifier for the library section. + /// + [JsonProperty("librarySectionID")] + public long? LibrarySectionID { get; set; } + + /// + /// The title of the library section. + /// + [JsonProperty("librarySectionTitle")] + public string? LibrarySectionTitle { get; set; } + + /// + /// The universally unique identifier for the library section. + /// + [JsonProperty("librarySectionUUID")] + public string? LibrarySectionUUID { get; set; } + + /// + /// The prefix used for media tag resource paths. + /// + [JsonProperty("mediaTagPrefix")] + public string MediaTagPrefix { get; set; } = default!; + + /// + /// The version number for media tags. + /// + [JsonProperty("mediaTagVersion")] + public long MediaTagVersion { get; set; } = default!; [JsonProperty("SearchResult")] public List SearchResult { get; set; } = default!; diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetadata.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetadata.cs index e26b2c9..ff9b682 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetadata.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesMetadata.cs @@ -15,129 +15,163 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests using NodaTime; using System.Collections.Generic; + /// + /// Unknown
+ /// + /// + /// + /// + ///
public class GetSearchAllLibrariesMetadata { /// - /// The rating key (Media ID) of this media item.
- /// - /// - /// Note: This is always an integer, but is represented as a string in the API.
- /// - ///
+ /// The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. ///
[JsonProperty("ratingKey")] public string RatingKey { get; set; } = default!; + /// + /// The unique key for the media item. + /// [JsonProperty("key")] public string Key { get; set; } = default!; + /// + /// The globally unique identifier for the media item. + /// [JsonProperty("guid")] public string Guid { get; set; } = default!; + /// + /// A URL‐friendly version of the media title. + /// + [JsonProperty("slug")] + public string Slug { get; set; } = default!; + + /// + /// The studio that produced the media item. + /// [JsonProperty("studio")] public string? Studio { get; set; } - [JsonProperty("skipChildren")] - public bool? SkipChildren { get; set; } - - [JsonProperty("librarySectionID")] - public long? LibrarySectionID { get; set; } - - [JsonProperty("librarySectionTitle")] - public string? LibrarySectionTitle { get; set; } - - [JsonProperty("librarySectionKey")] - public string? LibrarySectionKey { get; set; } - - /// - /// The type of media content in the Plex library. This can represent videos, music, or photos.
- /// - /// - /// - /// - ///
[JsonProperty("type")] public GetSearchAllLibrariesType Type { get; set; } = default!; + /// + /// The title of the media item. + /// [JsonProperty("title")] public string Title { get; set; } = default!; - [JsonProperty("slug")] - public string? Slug { get; set; } + /// + /// The banner image URL for the media item. + /// + [JsonProperty("banner")] + public string Banner { get; set; } = default!; + /// + /// The sort title used for ordering media items. + /// + [JsonProperty("titleSort")] + public string TitleSort { get; set; } = default!; + + /// + /// The content rating for the media item. + /// [JsonProperty("contentRating")] public string? ContentRating { get; set; } + /// + /// A synopsis of the media item. + /// [JsonProperty("summary")] public string Summary { get; set; } = default!; + /// + /// The critic rating for the media item. + /// [JsonProperty("rating")] - public double? Rating { get; set; } + public float Rating { get; set; } = default!; + /// + /// The audience rating for the media item. + /// [JsonProperty("audienceRating")] - public double? AudienceRating { get; set; } + public double AudienceRating { get; set; } = default!; + /// + /// The release year of the media item. + /// [JsonProperty("year")] public int? Year { get; set; } - [JsonProperty("seasonCount")] - public int? SeasonCount { get; set; } - + /// + /// A brief tagline for the media item. + /// [JsonProperty("tagline")] - public string? Tagline { get; set; } + public string Tagline { get; set; } = default!; /// - /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). + /// The thumbnail image URL for the media item. /// - [JsonProperty("flattenSeasons")] - public GetSearchAllLibrariesFlattenSeasons? FlattenSeasons { get; set; } - - /// - /// Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - /// - [JsonProperty("episodeSort")] - public GetSearchAllLibrariesEpisodeSort? EpisodeSort { get; set; } - - /// - /// Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - /// - [JsonProperty("enableCreditsMarkerGeneration")] - public GetSearchAllLibrariesEnableCreditsMarkerGeneration? EnableCreditsMarkerGeneration { get; set; } - - /// - /// Setting that indicates the episode ordering for the show.
- /// - /// - /// None = Library default,
- /// tmdbAiring = The Movie Database (Aired),
- /// aired = TheTVDB (Aired),
- /// dvd = TheTVDB (DVD),
- /// absolute = TheTVDB (Absolute)).
- /// - ///
- ///
- [JsonProperty("showOrdering")] - public GetSearchAllLibrariesShowOrdering? ShowOrdering { get; set; } - [JsonProperty("thumb")] - public string? Thumb { get; set; } + public string Thumb { get; set; } = default!; + /// + /// The art image URL for the media item. + /// [JsonProperty("art")] - public string? Art { get; set; } + public string Art { get; set; } = default!; - [JsonProperty("banner")] - public string? Banner { get; set; } + /// + /// The theme URL for the media item. + /// + [JsonProperty("theme")] + public string Theme { get; set; } = default!; + /// + /// The index position of the media item. + /// + [JsonProperty("index")] + public int Index { get; set; } = default!; + + /// + /// The number of leaf items (end nodes) under this media item. + /// + [JsonProperty("leafCount")] + public int? LeafCount { get; set; } + + /// + /// The number of leaf items that have been viewed. + /// + [JsonProperty("viewedLeafCount")] + public int? ViewedLeafCount { get; set; } + + /// + /// The number of child items associated with this media item. + /// + [JsonProperty("childCount")] + public int ChildCount { get; set; } = default!; + + /// + /// The total number of seasons (for TV shows). + /// + [JsonProperty("seasonCount")] + public int SeasonCount { get; set; } = default!; + + /// + /// The duration of the media item in milliseconds. + /// [JsonProperty("duration")] - public int? Duration { get; set; } + public int Duration { get; set; } = default!; + /// + /// The original release date of the media item. + /// [JsonProperty("originallyAvailableAt")] public LocalDate? OriginallyAvailableAt { get; set; } - /// - /// Unix epoch datetime in seconds - /// [JsonProperty("addedAt")] public long AddedAt { get; set; } = default!; @@ -147,52 +181,239 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests [JsonProperty("updatedAt")] public long? UpdatedAt { get; set; } + /// + /// The release year of the parent media item. + /// + [JsonProperty("parentYear")] + public int? ParentYear { get; set; } + + /// + /// The URL for the audience rating image. + /// [JsonProperty("audienceRatingImage")] public string? AudienceRatingImage { get; set; } + /// + /// The source from which chapter data is derived. + /// [JsonProperty("chapterSource")] public string? ChapterSource { get; set; } + /// + /// The primary extra key associated with this media item. + /// [JsonProperty("primaryExtraKey")] public string? PrimaryExtraKey { get; set; } - [JsonProperty("ratingImage")] - public string? RatingImage { get; set; } + /// + /// The original title of the media item (if different). + /// + [JsonProperty("originalTitle")] + public string? OriginalTitle { get; set; } + /// + /// The rating key of the parent media item. + /// + [JsonProperty("parentRatingKey")] + public string? ParentRatingKey { get; set; } + + /// + /// The rating key of the grandparent media item. + /// [JsonProperty("grandparentRatingKey")] public string? GrandparentRatingKey { get; set; } + /// + /// The GUID of the parent media item. + /// + [JsonProperty("parentGuid")] + public string? ParentGuid { get; set; } + + /// + /// The GUID of the grandparent media item. + /// [JsonProperty("grandparentGuid")] public string? GrandparentGuid { get; set; } - [JsonProperty("grandparentKey")] - public string? GrandparentKey { get; set; } - - [JsonProperty("grandparentTitle")] - public string? GrandparentTitle { get; set; } - - [JsonProperty("grandparentThumb")] - public string? GrandparentThumb { get; set; } - - [JsonProperty("parentSlug")] - public string? ParentSlug { get; set; } - + /// + /// The slug for the grandparent media item. + /// [JsonProperty("grandparentSlug")] public string? GrandparentSlug { get; set; } - [JsonProperty("grandparentArt")] - public string? GrandparentArt { get; set; } + /// + /// The key of the grandparent media item. + /// + [JsonProperty("grandparentKey")] + public string? GrandparentKey { get; set; } + /// + /// The key of the parent media item. + /// + [JsonProperty("parentKey")] + public string? ParentKey { get; set; } + + /// + /// The title of the grandparent media item. + /// + [JsonProperty("grandparentTitle")] + public string? GrandparentTitle { get; set; } + + /// + /// The thumbnail URL for the grandparent media item. + /// + [JsonProperty("grandparentThumb")] + public string? GrandparentThumb { get; set; } + + /// + /// The theme URL for the grandparent media item. + /// [JsonProperty("grandparentTheme")] public string? GrandparentTheme { get; set; } /// - /// The Media object is only included when type query is `4` or higher.
+ /// The art URL for the grandparent media item. + ///
+ [JsonProperty("grandparentArt")] + public string? GrandparentArt { get; set; } + + /// + /// The title of the parent media item. + /// + [JsonProperty("parentTitle")] + public string? ParentTitle { get; set; } + + /// + /// The index position of the parent media item. + /// + [JsonProperty("parentIndex")] + public int? ParentIndex { get; set; } + + /// + /// The thumbnail URL for the parent media item. + /// + [JsonProperty("parentThumb")] + public string? ParentThumb { get; set; } + + /// + /// The URL for the rating image. + /// + [JsonProperty("ratingImage")] + public string? RatingImage { get; set; } + + /// + /// The number of times this media item has been viewed. + /// + [JsonProperty("viewCount")] + public int? ViewCount { get; set; } + + /// + /// The current playback offset (in milliseconds). + /// + [JsonProperty("viewOffset")] + public int? ViewOffset { get; set; } + + /// + /// The number of times this media item has been skipped. + /// + [JsonProperty("skipCount")] + public int? SkipCount { get; set; } + + /// + /// A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. + /// + [JsonProperty("subtype")] + public string? Subtype { get; set; } + + /// + /// The Unix timestamp representing the last time the item was rated. + /// + [JsonProperty("lastRatedAt")] + public long? LastRatedAt { get; set; } + + /// + /// The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). + /// + [JsonProperty("createdAtAccuracy")] + public string? CreatedAtAccuracy { get; set; } + + /// + /// The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. + /// + [JsonProperty("createdAtTZOffset")] + public string? CreatedAtTZOffset { get; set; } + + /// + /// Unix timestamp for when the media item was last viewed. + /// + [JsonProperty("lastViewedAt")] + public int? LastViewedAt { get; set; } + + /// + /// The rating provided by a user for the item. This value is expressed as a decimal number. + /// + [JsonProperty("userRating")] + public float? UserRating { get; set; } + + [JsonProperty("Image")] + public List? Image { get; set; } + + [JsonProperty("UltraBlurColors")] + public GetSearchAllLibrariesUltraBlurColors? UltraBlurColors { get; set; } + + [JsonProperty("Guid")] + public List? Guids { get; set; } + + /// + /// The identifier for the library section. + /// + [JsonProperty("librarySectionID")] + public long? LibrarySectionID { get; set; } + + /// + /// The title of the library section. + /// + [JsonProperty("librarySectionTitle")] + public string? LibrarySectionTitle { get; set; } + + /// + /// The key corresponding to the library section. + /// + [JsonProperty("librarySectionKey")] + public string? LibrarySectionKey { get; set; } + + /// + /// Setting that indicates the episode ordering for the show.
+ /// + /// + /// Options:
+ /// - None = Library default
+ /// - tmdbAiring = The Movie Database (Aired)
+ /// - aired = TheTVDB (Aired)
+ /// - dvd = TheTVDB (DVD)
+ /// - absolute = TheTVDB (Absolute)
+ /// + ///
+ ///
+ [JsonProperty("showOrdering")] + public GetSearchAllLibrariesShowOrdering? ShowOrdering { get; set; } + + /// + /// Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
/// /// /// /// ///
+ [JsonProperty("flattenSeasons")] + public GetSearchAllLibrariesFlattenSeasons? FlattenSeasons { get; set; } + + /// + /// Indicates whether child items should be skipped. + /// + [JsonProperty("skipChildren")] + public bool? SkipChildren { get; set; } + [JsonProperty("Media")] public List? Media { get; set; } @@ -208,105 +429,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests [JsonProperty("Writer")] public List? Writer { get; set; } - [JsonProperty("Collection")] - public List? Collection { get; set; } - [JsonProperty("Role")] public List? Role { get; set; } [JsonProperty("Location")] public List? Location { get; set; } - - /// - /// The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
- /// - /// - /// - /// - ///
- [JsonProperty("Guid")] - public List? MediaGuid { get; set; } - - [JsonProperty("UltraBlurColors")] - public GetSearchAllLibrariesUltraBlurColors? UltraBlurColors { get; set; } - - [JsonProperty("Rating")] - public List? MetaDataRating { get; set; } - - [JsonProperty("Image")] - public List? Image { get; set; } - - [JsonProperty("titleSort")] - public string? TitleSort { get; set; } - - [JsonProperty("viewCount")] - public int? ViewCount { get; set; } - - [JsonProperty("lastViewedAt")] - public int? LastViewedAt { get; set; } - - [JsonProperty("originalTitle")] - public string? OriginalTitle { get; set; } - - [JsonProperty("viewOffset")] - public int? ViewOffset { get; set; } - - [JsonProperty("skipCount")] - public int? SkipCount { get; set; } - - [JsonProperty("index")] - public int? Index { get; set; } - - [JsonProperty("theme")] - public string? Theme { get; set; } - - [JsonProperty("leafCount")] - public int? LeafCount { get; set; } - - [JsonProperty("viewedLeafCount")] - public int? ViewedLeafCount { get; set; } - - [JsonProperty("childCount")] - public int? ChildCount { get; set; } - - [JsonProperty("hasPremiumExtras")] - public string? HasPremiumExtras { get; set; } - - [JsonProperty("hasPremiumPrimaryExtra")] - public string? HasPremiumPrimaryExtra { get; set; } - - /// - /// The rating key of the parent item.
- /// - /// - /// - /// - ///
- [JsonProperty("parentRatingKey")] - public string? ParentRatingKey { get; set; } - - [JsonProperty("parentGuid")] - public string? ParentGuid { get; set; } - - [JsonProperty("parentStudio")] - public string? ParentStudio { get; set; } - - [JsonProperty("parentKey")] - public string? ParentKey { get; set; } - - [JsonProperty("parentTitle")] - public string? ParentTitle { get; set; } - - [JsonProperty("parentIndex")] - public int? ParentIndex { get; set; } - - [JsonProperty("parentYear")] - public int? ParentYear { get; set; } - - [JsonProperty("parentThumb")] - public string? ParentThumb { get; set; } - - [JsonProperty("parentTheme")] - public string? ParentTheme { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.cs index 2f66b34..531d4c0 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.cs @@ -9,12 +9,191 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { + using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; + using Newtonsoft.Json; + using Newtonsoft.Json.Linq; + using System; + using System.Collections.Generic; + using System.Numerics; + using System.Reflection; - public enum GetSearchAllLibrariesOptimizedForStreaming + + public class GetSearchAllLibrariesOptimizedForStreamingType { - Disable = 0, - Enable = 1, + private GetSearchAllLibrariesOptimizedForStreamingType(string value) { Value = value; } + + public string Value { get; private set; } + public static GetSearchAllLibrariesOptimizedForStreamingType GetSearchAllLibrariesOptimizedForStreaming1 { get { return new GetSearchAllLibrariesOptimizedForStreamingType("get-search-all-libraries_optimizedForStreaming_1"); } } + + public static GetSearchAllLibrariesOptimizedForStreamingType Boolean { get { return new GetSearchAllLibrariesOptimizedForStreamingType("boolean"); } } + + public static GetSearchAllLibrariesOptimizedForStreamingType Null { get { return new GetSearchAllLibrariesOptimizedForStreamingType("null"); } } + + public override string ToString() { return Value; } + public static implicit operator String(GetSearchAllLibrariesOptimizedForStreamingType v) { return v.Value; } + public static GetSearchAllLibrariesOptimizedForStreamingType FromString(string v) { + switch(v) { + case "get-search-all-libraries_optimizedForStreaming_1": return GetSearchAllLibrariesOptimizedForStreaming1; + case "boolean": return Boolean; + case "null": return Null; + default: throw new ArgumentException("Invalid value for GetSearchAllLibrariesOptimizedForStreamingType"); + } + } + public override bool Equals(object? obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + return Value.Equals(((GetSearchAllLibrariesOptimizedForStreamingType)obj).Value); + } + + public override int GetHashCode() + { + return Value.GetHashCode(); + } } + + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + /// + [JsonConverter(typeof(GetSearchAllLibrariesOptimizedForStreaming.GetSearchAllLibrariesOptimizedForStreamingConverter))] + public class GetSearchAllLibrariesOptimizedForStreaming { + public GetSearchAllLibrariesOptimizedForStreaming(GetSearchAllLibrariesOptimizedForStreamingType type) { + Type = type; + } + + [SpeakeasyMetadata("form:explode=true")] + public GetSearchAllLibrariesOptimizedForStreaming1? GetSearchAllLibrariesOptimizedForStreaming1 { get; set; } + + [SpeakeasyMetadata("form:explode=true")] + public bool? Boolean { get; set; } + + public GetSearchAllLibrariesOptimizedForStreamingType Type { get; set; } + + + public static GetSearchAllLibrariesOptimizedForStreaming CreateGetSearchAllLibrariesOptimizedForStreaming1(GetSearchAllLibrariesOptimizedForStreaming1 getSearchAllLibrariesOptimizedForStreaming1) { + GetSearchAllLibrariesOptimizedForStreamingType typ = GetSearchAllLibrariesOptimizedForStreamingType.GetSearchAllLibrariesOptimizedForStreaming1; + + GetSearchAllLibrariesOptimizedForStreaming res = new GetSearchAllLibrariesOptimizedForStreaming(typ); + res.GetSearchAllLibrariesOptimizedForStreaming1 = getSearchAllLibrariesOptimizedForStreaming1; + return res; + } + + public static GetSearchAllLibrariesOptimizedForStreaming CreateBoolean(bool boolean) { + GetSearchAllLibrariesOptimizedForStreamingType typ = GetSearchAllLibrariesOptimizedForStreamingType.Boolean; + + GetSearchAllLibrariesOptimizedForStreaming res = new GetSearchAllLibrariesOptimizedForStreaming(typ); + res.Boolean = boolean; + return res; + } + + public static GetSearchAllLibrariesOptimizedForStreaming CreateNull() { + GetSearchAllLibrariesOptimizedForStreamingType typ = GetSearchAllLibrariesOptimizedForStreamingType.Null; + return new GetSearchAllLibrariesOptimizedForStreaming(typ); + } + + public class GetSearchAllLibrariesOptimizedForStreamingConverter : JsonConverter + { + + public override bool CanConvert(System.Type objectType) => objectType == typeof(GetSearchAllLibrariesOptimizedForStreaming); + + public override bool CanRead => true; + + public override object? ReadJson(JsonReader reader, System.Type objectType, object? existingValue, JsonSerializer serializer) + { + var json = JRaw.Create(reader).ToString(); + if (json == "null") + { + return null; + } + + var fallbackCandidates = new List<(System.Type, object, string)>(); + + try + { + return new GetSearchAllLibrariesOptimizedForStreaming(GetSearchAllLibrariesOptimizedForStreamingType.GetSearchAllLibrariesOptimizedForStreaming1) + { + GetSearchAllLibrariesOptimizedForStreaming1 = ResponseBodyDeserializer.DeserializeUndiscriminatedUnionMember(json) + }; + } + catch (ResponseBodyDeserializer.MissingMemberException) + { + fallbackCandidates.Add((typeof(GetSearchAllLibrariesOptimizedForStreaming1), new GetSearchAllLibrariesOptimizedForStreaming(GetSearchAllLibrariesOptimizedForStreamingType.GetSearchAllLibrariesOptimizedForStreaming1), "GetSearchAllLibrariesOptimizedForStreaming1")); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next option + } + catch (Exception) + { + throw; + } + + try + { + var converted = Convert.ToBoolean(json); + return new GetSearchAllLibrariesOptimizedForStreaming(GetSearchAllLibrariesOptimizedForStreamingType.Boolean) + { + Boolean = converted + }; + } + catch (System.FormatException) + { + // try next option + } + + if (fallbackCandidates.Count > 0) + { + fallbackCandidates.Sort((a, b) => ResponseBodyDeserializer.CompareFallbackCandidates(a.Item1, b.Item1, json)); + foreach(var (deserializationType, returnObject, propertyName) in fallbackCandidates) + { + try + { + return ResponseBodyDeserializer.DeserializeUndiscriminatedUnionFallback(deserializationType, returnObject, propertyName, json); + } + catch (ResponseBodyDeserializer.DeserializationException) + { + // try next fallback option + } + catch (Exception) + { + throw; + } + } + } + + throw new InvalidOperationException("Could not deserialize into any supported types."); + } + + public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) + { + if (value == null) { + writer.WriteRawValue("null"); + return; + } + GetSearchAllLibrariesOptimizedForStreaming res = (GetSearchAllLibrariesOptimizedForStreaming)value; + if (GetSearchAllLibrariesOptimizedForStreamingType.FromString(res.Type).Equals(GetSearchAllLibrariesOptimizedForStreamingType.Null)) + { + writer.WriteRawValue("null"); + return; + } + if (res.GetSearchAllLibrariesOptimizedForStreaming1 != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.GetSearchAllLibrariesOptimizedForStreaming1)); + return; + } + if (res.Boolean != null) + { + writer.WriteRawValue(Utilities.SerializeJSON(res.Boolean)); + return; + } + + } + + } + + } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStreamType.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.cs similarity index 62% rename from LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStreamType.cs rename to LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.cs index 2af7b1e..96ba53c 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetMediaMetaDataStreamType.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.cs @@ -11,21 +11,10 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests { using LukeHagar.PlexAPI.SDK.Utils; - /// - /// Stream type:
- /// - /// - /// - 1 = video
- /// - 2 = audio
- /// - 3 = subtitle
- /// - ///
- ///
- public enum GetMediaMetaDataStreamType + public enum GetSearchAllLibrariesOptimizedForStreaming1 { - Video = 1, - Audio = 2, - Subtitle = 3, + Zero = 0, + One = 1, } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.cs new file mode 100644 index 0000000..fe3710b --- /dev/null +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// +// Changes to this file may cause incorrect behavior and will be lost when +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#nullable enable +namespace LukeHagar.PlexAPI.SDK.Models.Requests +{ + using LukeHagar.PlexAPI.SDK.Utils; + + public enum GetSearchAllLibrariesOptimizedForStreamingLibrary1 + { + Zero = 0, + One = 1, + } + +} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesPart.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesPart.cs index 9f7b51c..7673d69 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesPart.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesPart.cs @@ -9,58 +9,94 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { + using LukeHagar.PlexAPI.SDK.Models.Components; using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; - using System.Collections.Generic; public class GetSearchAllLibrariesPart { + /// + /// Indicates if the part is accessible. + /// + [JsonProperty("accessible")] + public bool? Accessible { get; set; } + + /// + /// Indicates if the part exists. + /// + [JsonProperty("exists")] + public bool? Exists { get; set; } + + /// + /// Unique part identifier. + /// [JsonProperty("id")] - public int Id { get; set; } = default!; + public long Id { get; set; } = default!; + /// + /// Key to access this part. + /// [JsonProperty("key")] - public string Key { get; set; } = default!; + public string? Key { get; set; } + [JsonProperty("indexes")] + public string? Indexes { get; set; } + + /// + /// Duration of the part in milliseconds. + /// [JsonProperty("duration")] public int? Duration { get; set; } + /// + /// File path for the part. + /// [JsonProperty("file")] - public string File { get; set; } = default!; - - [JsonProperty("size")] - public long Size { get; set; } = default!; + public string? File { get; set; } /// - /// The container format of the media file.
- /// - /// - /// - /// + /// File size in bytes. + ///
+ [JsonProperty("size")] + public long? Size { get; set; } + + [JsonProperty("packetLength")] + public int? PacketLength { get; set; } + + /// + /// Container format of the part. /// [JsonProperty("container")] - public string Container { get; set; } = default!; + public string? Container { get; set; } + /// + /// Video profile for the part. + /// + [JsonProperty("videoProfile")] + public string? VideoProfile { get; set; } + + /// + /// The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). + /// [JsonProperty("audioProfile")] public string? AudioProfile { get; set; } [JsonProperty("has64bitOffsets")] public bool? Has64bitOffsets { get; set; } + /// + /// Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
+ /// + /// + /// + /// + ///
[JsonProperty("optimizedForStreaming")] - public bool? OptimizedForStreaming { get; set; } - - [JsonProperty("videoProfile")] - public string? VideoProfile { get; set; } - - [JsonProperty("indexes")] - public string? Indexes { get; set; } + public GetSearchAllLibrariesLibraryOptimizedForStreaming? OptimizedForStreaming { get; set; } [JsonProperty("hasThumbnail")] public GetSearchAllLibrariesHasThumbnail? HasThumbnail { get; set; } = LukeHagar.PlexAPI.SDK.Models.Requests.GetSearchAllLibrariesHasThumbnail.False; - - [JsonProperty("Stream")] - public List? Stream { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesRole.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesRole.cs index f4d17b6..4bf1f1f 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesRole.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesRole.cs @@ -16,39 +16,32 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests { /// - /// The ID of the tag or actor. + /// The unique identifier for the role.
+ /// + /// + /// NOTE: This is different for each Plex server and is not globally unique.
+ /// + ///
///
[JsonProperty("id")] - public long? Id { get; set; } + public int Id { get; set; } = default!; /// - /// The filter used to find the actor or tag. - /// - [JsonProperty("filter")] - public string? Filter { get; set; } - - /// - /// The thumbnail of the actor - /// - [JsonProperty("thumb")] - public string? Thumb { get; set; } - - /// - /// The name of the tag or actor. + /// The display tag for the actor (typically the actor's name). /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; /// - /// Unique identifier for the tag. - /// - [JsonProperty("tagKey")] - public string? TagKey { get; set; } - - /// - /// The role of the actor or tag in the media. + /// The role played by the actor in the media item. /// [JsonProperty("role")] public string? Role { get; set; } + + /// + /// The absolute URL of the thumbnail image for the actor. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesShowOrdering.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesShowOrdering.cs index 03c672e..97fd9b9 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesShowOrdering.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesShowOrdering.cs @@ -17,11 +17,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Setting that indicates the episode ordering for the show.
/// /// - /// None = Library default,
- /// tmdbAiring = The Movie Database (Aired),
- /// aired = TheTVDB (Aired),
- /// dvd = TheTVDB (DVD),
- /// absolute = TheTVDB (Absolute)).
+ /// Options:
+ /// - None = Library default
+ /// - tmdbAiring = The Movie Database (Aired)
+ /// - aired = TheTVDB (Aired)
+ /// - dvd = TheTVDB (DVD)
+ /// - absolute = TheTVDB (Absolute)
/// ///
///
diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesStream.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesStream.cs deleted file mode 100644 index 0952f38..0000000 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesStream.cs +++ /dev/null @@ -1,234 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -// -// Changes to this file may cause incorrect behavior and will be lost when -// the code is regenerated. -// -//------------------------------------------------------------------------------ -#nullable enable -namespace LukeHagar.PlexAPI.SDK.Models.Requests -{ - using LukeHagar.PlexAPI.SDK.Utils; - using Newtonsoft.Json; - - public class GetSearchAllLibrariesStream - { - - [JsonProperty("id")] - public long Id { get; set; } = default!; - - /// - /// Type of stream (1 = video, 2 = audio, 3 = subtitle) - /// - [JsonProperty("streamType")] - public long StreamType { get; set; } = default!; - - /// - /// Indicates if this is the default stream - /// - [JsonProperty("default")] - public bool? Default { get; set; } - - /// - /// Indicates if the stream is selected - /// - [JsonProperty("selected")] - public bool? Selected { get; set; } - - /// - /// Codec used by the stream - /// - [JsonProperty("codec")] - public string Codec { get; set; } = default!; - - /// - /// The index of the stream - /// - [JsonProperty("index")] - public long Index { get; set; } = default!; - - /// - /// The bitrate of the stream in kbps - /// - [JsonProperty("bitrate")] - public long? Bitrate { get; set; } - - /// - /// The color primaries of the video stream - /// - [JsonProperty("colorPrimaries")] - public string? ColorPrimaries { get; set; } - - /// - /// The color range of the video stream - /// - [JsonProperty("colorRange")] - public string? ColorRange { get; set; } - - /// - /// The color space of the video stream - /// - [JsonProperty("colorSpace")] - public string? ColorSpace { get; set; } - - /// - /// The transfer characteristics (TRC) of the video stream - /// - [JsonProperty("colorTrc")] - public string? ColorTrc { get; set; } - - /// - /// The bit depth of the video stream - /// - [JsonProperty("bitDepth")] - public long? BitDepth { get; set; } - - /// - /// The chroma location of the video stream - /// - [JsonProperty("chromaLocation")] - public string? ChromaLocation { get; set; } - - /// - /// The identifier of the video stream - /// - [JsonProperty("streamIdentifier")] - public string? StreamIdentifier { get; set; } - - /// - /// The chroma subsampling format - /// - [JsonProperty("chromaSubsampling")] - public string? ChromaSubsampling { get; set; } - - /// - /// The coded height of the video stream - /// - [JsonProperty("codedHeight")] - public long? CodedHeight { get; set; } - - /// - /// The coded width of the video stream - /// - [JsonProperty("codedWidth")] - public long? CodedWidth { get; set; } - - /// - /// The frame rate of the video stream - /// - [JsonProperty("frameRate")] - public double? FrameRate { get; set; } - - /// - /// Indicates if the stream has a scaling matrix - /// - [JsonProperty("hasScalingMatrix")] - public bool? HasScalingMatrix { get; set; } - - [JsonProperty("hearingImpaired")] - public bool? HearingImpaired { get; set; } - - [JsonProperty("closedCaptions")] - public bool? ClosedCaptions { get; set; } - - [JsonProperty("embeddedInVideo")] - public string? EmbeddedInVideo { get; set; } - - /// - /// The height of the video stream - /// - [JsonProperty("height")] - public long? Height { get; set; } - - /// - /// The level of the video codec - /// - [JsonProperty("level")] - public long? Level { get; set; } - - /// - /// The profile of the video codec - /// - [JsonProperty("profile")] - public string? Profile { get; set; } - - /// - /// Number of reference frames - /// - [JsonProperty("refFrames")] - public long? RefFrames { get; set; } - - /// - /// The scan type (progressive or interlaced) - /// - [JsonProperty("scanType")] - public string? ScanType { get; set; } - - /// - /// The width of the video stream - /// - [JsonProperty("width")] - public long? Width { get; set; } - - /// - /// Display title of the stream - /// - [JsonProperty("displayTitle")] - public string? DisplayTitle { get; set; } - - /// - /// Extended display title of the stream - /// - [JsonProperty("extendedDisplayTitle")] - public string? ExtendedDisplayTitle { get; set; } - - /// - /// Number of audio channels (for audio streams) - /// - [JsonProperty("channels")] - public long? Channels { get; set; } - - /// - /// The language of the stream (for audio/subtitle streams) - /// - [JsonProperty("language")] - public string? Language { get; set; } - - /// - /// Language tag of the stream - /// - [JsonProperty("languageTag")] - public string? LanguageTag { get; set; } - - /// - /// Language code of the stream - /// - [JsonProperty("languageCode")] - public string? LanguageCode { get; set; } - - /// - /// The audio channel layout - /// - [JsonProperty("audioChannelLayout")] - public string? AudioChannelLayout { get; set; } - - /// - /// Sampling rate of the audio stream in Hz - /// - [JsonProperty("samplingRate")] - public long? SamplingRate { get; set; } - - /// - /// Title of the subtitle track (for subtitle streams) - /// - [JsonProperty("title")] - public string? Title { get; set; } - - /// - /// Indicates if the subtitle stream can auto-sync - /// - [JsonProperty("canAutoSync")] - public bool? CanAutoSync { get; set; } - } -} \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesWriter.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesWriter.cs index 0f0bafd..c561424 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesWriter.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/GetSearchAllLibrariesWriter.cs @@ -15,7 +15,22 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class GetSearchAllLibrariesWriter { + /// + /// Unique identifier for the writer. + /// + [JsonProperty("id")] + public int Id { get; set; } = default!; + + /// + /// The role of Writer + /// [JsonProperty("tag")] - public string? Tag { get; set; } + public string Tag { get; set; } = default!; + + /// + /// The absolute URL of the thumbnail image for the writer. + /// + [JsonProperty("thumb")] + public string? Thumb { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/SearchResult.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/SearchResult.cs index d954478..0250645 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/SearchResult.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/SearchResult.cs @@ -16,10 +16,16 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests public class SearchResult { + /// + /// The score of the search result, typically a float value between 0 and 1. + /// [JsonProperty("score")] public float Score { get; set; } = default!; + [JsonProperty("Directory")] + public GetSearchAllLibrariesDirectory? Directory { get; set; } + [JsonProperty("Metadata")] - public GetSearchAllLibrariesMetadata Metadata { get; set; } = default!; + public GetSearchAllLibrariesMetadata? Metadata { get; set; } } } \ No newline at end of file diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/ShowOrdering.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/ShowOrdering.cs index e6a33e9..599659c 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/ShowOrdering.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/ShowOrdering.cs @@ -17,11 +17,12 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Setting that indicates the episode ordering for the show.
/// /// - /// None = Library default,
- /// tmdbAiring = The Movie Database (Aired),
- /// aired = TheTVDB (Aired),
- /// dvd = TheTVDB (DVD),
- /// absolute = TheTVDB (Absolute)).
+ /// Options:
+ /// - None = Library default
+ /// - tmdbAiring = The Movie Database (Aired)
+ /// - aired = TheTVDB (Aired)
+ /// - dvd = TheTVDB (DVD)
+ /// - absolute = TheTVDB (Absolute)
/// ///
/// diff --git a/LukeHagar/PlexAPI/SDK/Models/Requests/Stream.cs b/LukeHagar/PlexAPI/SDK/Models/Requests/Stream.cs index 56f6368..cbdbc30 100644 --- a/LukeHagar/PlexAPI/SDK/Models/Requests/Stream.cs +++ b/LukeHagar/PlexAPI/SDK/Models/Requests/Stream.cs @@ -9,7 +9,6 @@ #nullable enable namespace LukeHagar.PlexAPI.SDK.Models.Requests { - using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Utils; using Newtonsoft.Json; @@ -26,14 +25,14 @@ namespace LukeHagar.PlexAPI.SDK.Models.Requests /// Stream type:
/// /// - /// - 1 = video
- /// - 2 = audio
- /// - 3 = subtitle
+ /// - VIDEO = 1
+ /// - AUDIO = 2
+ /// - SUBTITLE = 3
/// ///
/// [JsonProperty("streamType")] - public StreamType StreamType { get; set; } = default!; + public long StreamType { get; } = 1; /// /// Format of the stream (e.g., srt). diff --git a/LukeHagar/PlexAPI/SDK/Playlists.cs b/LukeHagar/PlexAPI/SDK/Playlists.cs index 7e24c47..f1c00c3 100644 --- a/LukeHagar/PlexAPI/SDK/Playlists.cs +++ b/LukeHagar/PlexAPI/SDK/Playlists.cs @@ -146,8 +146,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Playlists(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Plex.cs b/LukeHagar/PlexAPI/SDK/Plex.cs index 6db95ec..2c69ae2 100644 --- a/LukeHagar/PlexAPI/SDK/Plex.cs +++ b/LukeHagar/PlexAPI/SDK/Plex.cs @@ -143,8 +143,8 @@ namespace LukeHagar.PlexAPI.SDK }; public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Plex(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/PlexAPI.cs b/LukeHagar/PlexAPI/SDK/PlexAPI.cs index 9cbebdb..a89650c 100644 --- a/LukeHagar/PlexAPI/SDK/PlexAPI.cs +++ b/LukeHagar/PlexAPI/SDK/PlexAPI.cs @@ -292,8 +292,8 @@ namespace LukeHagar.PlexAPI.SDK public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public IServer Server { get; private set; } public IMedia Media { get; private set; } diff --git a/LukeHagar/PlexAPI/SDK/SDKConfig.cs b/LukeHagar/PlexAPI/SDK/SDKConfig.cs index 0d706dc..69f489d 100644 --- a/LukeHagar/PlexAPI/SDK/SDKConfig.cs +++ b/LukeHagar/PlexAPI/SDK/SDKConfig.cs @@ -52,7 +52,7 @@ namespace LukeHagar.PlexAPI.SDK {"port", "32400"}, }, }; - UserAgent = "speakeasy-sdk/csharp 0.15.0 2.620.2 0.0.3 LukeHagar.PlexAPI.SDK"; + UserAgent = "speakeasy-sdk/csharp 0.15.1 2.623.0 0.0.3 LukeHagar.PlexAPI.SDK"; SecuritySource = null; Hooks = new SDKHooks(); RetryConfig = null; diff --git a/LukeHagar/PlexAPI/SDK/Search.cs b/LukeHagar/PlexAPI/SDK/Search.cs index 44b393b..37f8710 100644 --- a/LukeHagar/PlexAPI/SDK/Search.cs +++ b/LukeHagar/PlexAPI/SDK/Search.cs @@ -87,8 +87,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Search(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Server.cs b/LukeHagar/PlexAPI/SDK/Server.cs index 6de452e..28b74c6 100644 --- a/LukeHagar/PlexAPI/SDK/Server.cs +++ b/LukeHagar/PlexAPI/SDK/Server.cs @@ -126,8 +126,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Server(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Sessions.cs b/LukeHagar/PlexAPI/SDK/Sessions.cs index d2dbb44..a72e1b0 100644 --- a/LukeHagar/PlexAPI/SDK/Sessions.cs +++ b/LukeHagar/PlexAPI/SDK/Sessions.cs @@ -80,8 +80,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Sessions(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Statistics.cs b/LukeHagar/PlexAPI/SDK/Statistics.cs index 3932511..12d01c4 100644 --- a/LukeHagar/PlexAPI/SDK/Statistics.cs +++ b/LukeHagar/PlexAPI/SDK/Statistics.cs @@ -71,8 +71,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Statistics(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Updater.cs b/LukeHagar/PlexAPI/SDK/Updater.cs index 0532ebc..fb17b9e 100644 --- a/LukeHagar/PlexAPI/SDK/Updater.cs +++ b/LukeHagar/PlexAPI/SDK/Updater.cs @@ -74,8 +74,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Updater(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Users.cs b/LukeHagar/PlexAPI/SDK/Users.cs index 8bdd853..ebaa0ef 100644 --- a/LukeHagar/PlexAPI/SDK/Users.cs +++ b/LukeHagar/PlexAPI/SDK/Users.cs @@ -45,8 +45,8 @@ namespace LukeHagar.PlexAPI.SDK }; public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Users(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Video.cs b/LukeHagar/PlexAPI/SDK/Video.cs index 50f92a8..614671d 100644 --- a/LukeHagar/PlexAPI/SDK/Video.cs +++ b/LukeHagar/PlexAPI/SDK/Video.cs @@ -62,8 +62,8 @@ namespace LukeHagar.PlexAPI.SDK { public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Video(SDKConfig config) diff --git a/LukeHagar/PlexAPI/SDK/Watchlist.cs b/LukeHagar/PlexAPI/SDK/Watchlist.cs index 751e3a4..dfe5e66 100644 --- a/LukeHagar/PlexAPI/SDK/Watchlist.cs +++ b/LukeHagar/PlexAPI/SDK/Watchlist.cs @@ -59,8 +59,8 @@ namespace LukeHagar.PlexAPI.SDK }; public SDKConfig SDKConfiguration { get; private set; } private const string _language = "csharp"; - private const string _sdkVersion = "0.15.0"; - private const string _sdkGenVersion = "2.620.2"; + private const string _sdkVersion = "0.15.1"; + private const string _sdkGenVersion = "2.623.0"; private const string _openapiDocVersion = "0.0.3"; public Watchlist(SDKConfig config) diff --git a/RELEASES.md b/RELEASES.md index 6482006..217f230 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -594,4 +594,14 @@ Based on: ### Generated - [csharp v0.15.0] . ### Releases -- [NuGet v0.15.0] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.15.0 - . \ No newline at end of file +- [NuGet v0.15.0] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.15.0 - . + +## 2025-06-09 00:26:43 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.557.0 (2.623.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [csharp v0.15.1] . +### Releases +- [NuGet v0.15.1] https://www.nuget.org/packages/LukeHagar.PlexAPI.SDK/0.15.1 - . \ No newline at end of file diff --git a/docs/Models/Requests/EnableCreditsMarkerGeneration.md b/docs/Models/Requests/EnableCreditsMarkerGeneration.md deleted file mode 100644 index 28df8b2..0000000 --- a/docs/Models/Requests/EnableCreditsMarkerGeneration.md +++ /dev/null @@ -1,11 +0,0 @@ -# EnableCreditsMarkerGeneration - -Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - - -## Values - -| Name | Value | -| ---------------- | ---------------- | -| `LibraryDefault` | -1 | -| `Disabled` | 0 | \ No newline at end of file diff --git a/docs/Models/Requests/EpisodeSort.md b/docs/Models/Requests/EpisodeSort.md deleted file mode 100644 index efc3f8a..0000000 --- a/docs/Models/Requests/EpisodeSort.md +++ /dev/null @@ -1,12 +0,0 @@ -# EpisodeSort - -Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - - -## Values - -| Name | Value | -| ---------------- | ---------------- | -| `LibraryDefault` | -1 | -| `OldestFirst` | 0 | -| `NewestFirst` | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/FlattenSeasons.md b/docs/Models/Requests/FlattenSeasons.md index 87fde5d..de37200 100644 --- a/docs/Models/Requests/FlattenSeasons.md +++ b/docs/Models/Requests/FlattenSeasons.md @@ -3,6 +3,7 @@ Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). + ## Values | Name | Value | diff --git a/docs/Models/Requests/GetActorsLibraryMediaContainer.md b/docs/Models/Requests/GetActorsLibraryMediaContainer.md index 4faf185..dd85b4e 100644 --- a/docs/Models/Requests/GetActorsLibraryMediaContainer.md +++ b/docs/Models/Requests/GetActorsLibraryMediaContainer.md @@ -16,5 +16,5 @@ | `Title1` | *string* | :heavy_check_mark: | The primary title of the media container. | TV Series | | `Title2` | *string* | :heavy_check_mark: | The secondary title of the media container. | By Starring Actor | | `ViewGroup` | *string* | :heavy_check_mark: | Identifier for the view group layout. | secondary | -| `ViewMode` | *string* | :heavy_check_mark: | Identifier for the view mode. | 131131 | +| `ViewMode` | *string* | :heavy_minus_sign: | Identifier for the view mode. | 131131 | | `Directory` | List<[GetActorsLibraryDirectory](../../Models/Requests/GetActorsLibraryDirectory.md)> | :heavy_minus_sign: | An array of actor entries for media items. | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsCollection.md b/docs/Models/Requests/GetLibraryItemsCollection.md index 6d45d75..b844f00 100644 --- a/docs/Models/Requests/GetLibraryItemsCollection.md +++ b/docs/Models/Requests/GetLibraryItemsCollection.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | Working NL Subs | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `Tag` | *string* | :heavy_check_mark: | The user-made collection this media item belongs to | My Awesome Collection | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsCountry.md b/docs/Models/Requests/GetLibraryItemsCountry.md index ab054d4..b2d5c37 100644 --- a/docs/Models/Requests/GetLibraryItemsCountry.md +++ b/docs/Models/Requests/GetLibraryItemsCountry.md @@ -3,6 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | The unique identifier for the country.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsDirector.md b/docs/Models/Requests/GetLibraryItemsDirector.md index c4d7b1c..f6a0737 100644 --- a/docs/Models/Requests/GetLibraryItemsDirector.md +++ b/docs/Models/Requests/GetLibraryItemsDirector.md @@ -3,6 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | Unique identifier for the director. | 126522 | +| `Tag` | *string* | :heavy_check_mark: | The role of Director | Danny Boyle | +| `Thumb` | *string* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the director. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsFilter.md b/docs/Models/Requests/GetLibraryItemsFilter.md index f40b545..9585aa3 100644 --- a/docs/Models/Requests/GetLibraryItemsFilter.md +++ b/docs/Models/Requests/GetLibraryItemsFilter.md @@ -9,5 +9,4 @@ | `FilterType` | *string* | :heavy_check_mark: | N/A | string | | `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/genre?type=2 | | `Title` | *string* | :heavy_check_mark: | N/A | Genre | -| `Type` | *string* | :heavy_check_mark: | N/A | filter | -| `Advanced` | *bool* | :heavy_minus_sign: | N/A | true | \ No newline at end of file +| `Type` | *string* | :heavy_check_mark: | N/A | filter | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsGenre.md b/docs/Models/Requests/GetLibraryItemsGenre.md index 1ee9c1b..f87f6bc 100644 --- a/docs/Models/Requests/GetLibraryItemsGenre.md +++ b/docs/Models/Requests/GetLibraryItemsGenre.md @@ -3,6 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | Adventure | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | The unique identifier for the genre.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `Tag` | *string* | :heavy_check_mark: | The genre name of this media-item
| Crime | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsGuids.md b/docs/Models/Requests/GetLibraryItemsGuids.md new file mode 100644 index 0000000..780f0d5 --- /dev/null +++ b/docs/Models/Requests/GetLibraryItemsGuids.md @@ -0,0 +1,8 @@ +# GetLibraryItemsGuids + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Id` | *string* | :heavy_check_mark: | The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
| {
"imdbExample": {
"summary": "IMDB example",
"value": "imdb://tt13015952"
},
"tmdbExample": {
"summary": "TMDB example",
"value": "tmdb://2434012"
},
"tvdbExample": {
"summary": "TVDB example",
"value": "tvdb://7945991"
}
} | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsHasThumbnail.md b/docs/Models/Requests/GetLibraryItemsHasThumbnail.md index ae283db..5fe3536 100644 --- a/docs/Models/Requests/GetLibraryItemsHasThumbnail.md +++ b/docs/Models/Requests/GetLibraryItemsHasThumbnail.md @@ -1,5 +1,8 @@ # GetLibraryItemsHasThumbnail +Indicates if the part has a thumbnail. + + ## Values diff --git a/docs/Models/Requests/GetLibraryItemsImage.md b/docs/Models/Requests/GetLibraryItemsImage.md index 026c2ba..b9f509d 100644 --- a/docs/Models/Requests/GetLibraryItemsImage.md +++ b/docs/Models/Requests/GetLibraryItemsImage.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| `Alt` | *string* | :heavy_check_mark: | N/A | Episode 1 | -| `Type` | [GetLibraryItemsLibraryResponse200Type](../../Models/Requests/GetLibraryItemsLibraryResponse200Type.md) | :heavy_check_mark: | N/A | background | -| `Url` | *string* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `Alt` | *string* | :heavy_check_mark: | N/A | Episode 1 | +| `Type` | [GetLibraryItemsLibraryResponseType](../../Models/Requests/GetLibraryItemsLibraryResponseType.md) | :heavy_check_mark: | N/A | background | +| `Url` | *string* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryActiveDirection.md b/docs/Models/Requests/GetLibraryItemsLibraryActiveDirection.md deleted file mode 100644 index 82af157..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibraryActiveDirection.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetLibraryItemsLibraryActiveDirection - -The direction of the sort. Can be either `asc` or `desc`. - - - -## Values - -| Name | Value | -| ------------ | ------------ | -| `Ascending` | asc | -| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryDefaultDirection.md b/docs/Models/Requests/GetLibraryItemsLibraryDefaultDirection.md deleted file mode 100644 index d2535c6..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibraryDefaultDirection.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetLibraryItemsLibraryDefaultDirection - -The direction of the sort. Can be either `asc` or `desc`. - - - -## Values - -| Name | Value | -| ------------ | ------------ | -| `Ascending` | asc | -| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryField.md b/docs/Models/Requests/GetLibraryItemsLibraryField.md deleted file mode 100644 index 65210b9..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibraryField.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetLibraryItemsLibraryField - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Key` | *string* | :heavy_check_mark: | N/A | show.title | -| `Title` | *string* | :heavy_check_mark: | N/A | Show Title | -| `Type` | *string* | :heavy_check_mark: | N/A | string | -| `SubType` | *string* | :heavy_minus_sign: | N/A | rating | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryFieldType.md b/docs/Models/Requests/GetLibraryItemsLibraryFieldType.md deleted file mode 100644 index ac1b439..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibraryFieldType.md +++ /dev/null @@ -1,9 +0,0 @@ -# GetLibraryItemsLibraryFieldType - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| `Type` | *string* | :heavy_check_mark: | N/A | tag | -| `Operator` | List<[GetLibraryItemsLibraryOperator](../../Models/Requests/GetLibraryItemsLibraryOperator.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryFilter.md b/docs/Models/Requests/GetLibraryItemsLibraryFilter.md deleted file mode 100644 index 1bef622..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibraryFilter.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetLibraryItemsLibraryFilter - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -| `Filter` | *string* | :heavy_check_mark: | N/A | genre | -| `FilterType` | *string* | :heavy_check_mark: | N/A | string | -| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/genre?type=2 | -| `Title` | *string* | :heavy_check_mark: | N/A | Genre | -| `Type` | *string* | :heavy_check_mark: | N/A | filter | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryOperator.md b/docs/Models/Requests/GetLibraryItemsLibraryOperator.md deleted file mode 100644 index 78e18fd..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibraryOperator.md +++ /dev/null @@ -1,9 +0,0 @@ -# GetLibraryItemsLibraryOperator - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Key` | *string* | :heavy_check_mark: | N/A | = | -| `Title` | *string* | :heavy_check_mark: | N/A | is | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.md b/docs/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.md new file mode 100644 index 0000000..13d1849 --- /dev/null +++ b/docs/Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.md @@ -0,0 +1,19 @@ +# GetLibraryItemsLibraryOptimizedForStreaming + +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + + + +## Supported Types + +### GetLibraryItemsOptimizedForStreaming1 + +```csharp +GetLibraryItemsLibraryOptimizedForStreaming.CreateGetLibraryItemsOptimizedForStreaming1(/* values here */); +``` + +### Boolean + +```csharp +GetLibraryItemsLibraryOptimizedForStreaming.CreateBoolean(/* values here */); +``` diff --git a/docs/Models/Requests/GetLibraryItemsLibraryResponse200Type.md b/docs/Models/Requests/GetLibraryItemsLibraryResponse200Type.md deleted file mode 100644 index 5318a52..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibraryResponse200Type.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetLibraryItemsLibraryResponse200Type - - -## Values - -| Name | Value | -| ------------- | ------------- | -| `CoverPoster` | coverPoster | -| `Background` | background | -| `Snapshot` | snapshot | -| `ClearLogo` | clearLogo | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryResponseType.md b/docs/Models/Requests/GetLibraryItemsLibraryResponseType.md index 299c746..c74a08a 100644 --- a/docs/Models/Requests/GetLibraryItemsLibraryResponseType.md +++ b/docs/Models/Requests/GetLibraryItemsLibraryResponseType.md @@ -1,14 +1,11 @@ # GetLibraryItemsLibraryResponseType -## Fields +## Values -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 | -| `Type` | *string* | :heavy_check_mark: | N/A | show | -| `Title` | *string* | :heavy_check_mark: | N/A | TV Shows | -| `Active` | *bool* | :heavy_check_mark: | N/A | false | -| `Filter` | List<[GetLibraryItemsLibraryFilter](../../Models/Requests/GetLibraryItemsLibraryFilter.md)> | :heavy_minus_sign: | N/A | | -| `Sort` | List<[GetLibraryItemsLibrarySort](../../Models/Requests/GetLibraryItemsLibrarySort.md)> | :heavy_minus_sign: | N/A | | -| `Field` | List<[GetLibraryItemsLibraryField](../../Models/Requests/GetLibraryItemsLibraryField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Name | Value | +| ------------- | ------------- | +| `CoverPoster` | coverPoster | +| `Background` | background | +| `Snapshot` | snapshot | +| `ClearLogo` | clearLogo | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibrarySort.md b/docs/Models/Requests/GetLibraryItemsLibrarySort.md deleted file mode 100644 index 47757b8..0000000 --- a/docs/Models/Requests/GetLibraryItemsLibrarySort.md +++ /dev/null @@ -1,15 +0,0 @@ -# GetLibraryItemsLibrarySort - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `Default` | *string* | :heavy_minus_sign: | N/A | asc | -| `Active` | *bool* | :heavy_minus_sign: | N/A | false | -| `ActiveDirection` | [GetLibraryItemsLibraryActiveDirection](../../Models/Requests/GetLibraryItemsLibraryActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | -| `DefaultDirection` | [GetLibraryItemsLibraryDefaultDirection](../../Models/Requests/GetLibraryItemsLibraryDefaultDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | -| `DescKey` | *string* | :heavy_minus_sign: | N/A | titleSort:desc | -| `FirstCharacterKey` | *string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | -| `Key` | *string* | :heavy_check_mark: | N/A | titleSort | -| `Title` | *string* | :heavy_check_mark: | N/A | Title | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLibraryType.md b/docs/Models/Requests/GetLibraryItemsLibraryType.md index 0f6999d..bf680f4 100644 --- a/docs/Models/Requests/GetLibraryItemsLibraryType.md +++ b/docs/Models/Requests/GetLibraryItemsLibraryType.md @@ -1,20 +1,14 @@ # GetLibraryItemsLibraryType -The type of media content in the Plex library. This can represent videos, music, or photos. +## Fields - -## Values - -| Name | Value | -| ------------ | ------------ | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | -| `Artist` | artist | -| `Album` | album | -| `Track` | track | -| `PhotoAlbum` | photoalbum | -| `Photo` | photo | -| `Collection` | collection | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 | +| `Type` | *string* | :heavy_check_mark: | N/A | show | +| `Title` | *string* | :heavy_check_mark: | N/A | TV Shows | +| `Active` | *bool* | :heavy_check_mark: | N/A | false | +| `Filter` | List<[GetLibraryItemsFilter](../../Models/Requests/GetLibraryItemsFilter.md)> | :heavy_minus_sign: | N/A | | +| `Sort` | List<[GetLibraryItemsSort](../../Models/Requests/GetLibraryItemsSort.md)> | :heavy_minus_sign: | N/A | | +| `Field` | List<[GetLibraryItemsField](../../Models/Requests/GetLibraryItemsField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsLocation.md b/docs/Models/Requests/GetLibraryItemsLocation.md index f270643..9c290c9 100644 --- a/docs/Models/Requests/GetLibraryItemsLocation.md +++ b/docs/Models/Requests/GetLibraryItemsLocation.md @@ -1,8 +1,10 @@ # GetLibraryItemsLocation +The folder path for the media item. + ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Path` | *string* | :heavy_minus_sign: | N/A | /TV Shows/House | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `Path` | *string* | :heavy_check_mark: | N/A | /TV Shows/Clarkson's Farm | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsMedia.md b/docs/Models/Requests/GetLibraryItemsMedia.md index 612bc10..43f84b3 100644 --- a/docs/Models/Requests/GetLibraryItemsMedia.md +++ b/docs/Models/Requests/GetLibraryItemsMedia.md @@ -3,23 +3,24 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `Id` | *int* | :heavy_check_mark: | N/A | 119534 | -| `Duration` | *int* | :heavy_minus_sign: | N/A | 11558112 | -| `Bitrate` | *int* | :heavy_minus_sign: | N/A | 25025 | -| `Width` | *int* | :heavy_minus_sign: | N/A | 3840 | -| `Height` | *int* | :heavy_minus_sign: | N/A | 2072 | -| `AspectRatio` | *double* | :heavy_minus_sign: | N/A | 1.85 | -| `AudioProfile` | *string* | :heavy_minus_sign: | N/A | dts | -| `AudioChannels` | *int* | :heavy_minus_sign: | N/A | 6 | -| `AudioCodec` | *string* | :heavy_minus_sign: | N/A | eac3 | -| `VideoCodec` | *string* | :heavy_minus_sign: | N/A | hevc | -| `VideoResolution` | *string* | :heavy_minus_sign: | N/A | 4k | -| `Container` | *string* | :heavy_check_mark: | N/A | mkv | -| `VideoFrameRate` | *string* | :heavy_minus_sign: | N/A | 24p | -| `VideoProfile` | *string* | :heavy_minus_sign: | N/A | main 10 | -| `HasVoiceActivity` | *bool* | :heavy_minus_sign: | N/A | false | -| `OptimizedForStreaming` | [GetLibraryItemsOptimizedForStreaming](../../Models/Requests/GetLibraryItemsOptimizedForStreaming.md) | :heavy_minus_sign: | N/A | 1 | -| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | -| `Part` | List<[GetLibraryItemsPart](../../Models/Requests/GetLibraryItemsPart.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `Duration` | *int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `Width` | *int* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `Height` | *int* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `AspectRatio` | *float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `AudioChannels` | *int* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `DisplayOffset` | *int* | :heavy_minus_sign: | N/A | 50 | +| `AudioCodec` | *string* | :heavy_minus_sign: | Audio codec used. | aac | +| `VideoCodec` | *string* | :heavy_minus_sign: | Video codec used. | hevc | +| `VideoResolution` | *string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `Container` | *string* | :heavy_minus_sign: | Container format of the media. | mp4 | +| `VideoFrameRate` | *string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `VideoProfile` | *string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `HasVoiceActivity` | *bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `AudioProfile` | *string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `OptimizedForStreaming` | [GetLibraryItemsOptimizedForStreaming](../../Models/Requests/GetLibraryItemsOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | Indicates whether the media has 64-bit offsets.
This is relevant for media files that may require larger offsets than what 32-bit integers can provide.
| false | +| `Part` | List<[GetLibraryItemsPart](../../Models/Requests/GetLibraryItemsPart.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsMediaContainer.md b/docs/Models/Requests/GetLibraryItemsMediaContainer.md index 1075c05..e18bea6 100644 --- a/docs/Models/Requests/GetLibraryItemsMediaContainer.md +++ b/docs/Models/Requests/GetLibraryItemsMediaContainer.md @@ -1,33 +1,28 @@ # GetLibraryItemsMediaContainer -The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. - - ## Fields | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| `Type` | List<[GetLibraryItemsType](../../Models/Requests/GetLibraryItemsType.md)> | :heavy_minus_sign: | N/A | | -| `FieldType` | List<[GetLibraryItemsFieldType](../../Models/Requests/GetLibraryItemsFieldType.md)> | :heavy_minus_sign: | N/A | | -| `Size` | *int* | :heavy_check_mark: | N/A | 70 | -| `TotalSize` | *int* | :heavy_check_mark: | N/A | 170 | -| `Offset` | *int* | :heavy_check_mark: | N/A | 0 | -| `Content` | *string* | :heavy_check_mark: | N/A | secondary | -| `AllowSync` | *bool* | :heavy_check_mark: | N/A | true | -| `Nocache` | *bool* | :heavy_minus_sign: | N/A | true | -| `Art` | *string* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg | -| `Identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library | -| `LibrarySectionID` | *long* | :heavy_check_mark: | N/A | 1 | -| `LibrarySectionTitle` | *string* | :heavy_check_mark: | N/A | Movies | -| `LibrarySectionUUID` | *string* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | -| `MediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ | -| `MediaTagVersion` | *int* | :heavy_check_mark: | N/A | 1701731894 | -| `Thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/movie.png | -| `Title1` | *string* | :heavy_check_mark: | N/A | Movies | -| `Title2` | *string* | :heavy_check_mark: | N/A | Recently Released | -| `ViewGroup` | *string* | :heavy_check_mark: | N/A | movie | -| `ViewMode` | *int* | :heavy_minus_sign: | N/A | 65592 | -| `MixedParents` | *bool* | :heavy_minus_sign: | N/A | true | -| `Metadata` | List<[GetLibraryItemsMetadata](../../Models/Requests/GetLibraryItemsMetadata.md)> | :heavy_minus_sign: | N/A | | +| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `TotalSize` | *int* | :heavy_check_mark: | Total number of media items in the library. | 50 | +| `Offset` | *long* | :heavy_check_mark: | Offset value for pagination. | 0 | +| `Content` | *string* | :heavy_check_mark: | The content type or mode. | secondary | +| `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | +| `Nocache` | *bool* | :heavy_check_mark: | Specifies whether caching is disabled. | true | +| `Art` | *string* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg | +| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The unique identifier for the library section. | 2 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | TV Series | +| `LibrarySectionUUID` | *string* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 | +| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `MediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 | +| `Thumb` | *string* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png | +| `Title1` | *string* | :heavy_check_mark: | The primary title of the media container. | TV Series | +| `Title2` | *string* | :heavy_check_mark: | The secondary title of the media container. | By Starring Actor | +| `ViewGroup` | *string* | :heavy_check_mark: | Identifier for the view group layout. | secondary | +| `ViewMode` | *string* | :heavy_minus_sign: | Identifier for the view mode. | 131131 | +| `MixedParents` | *bool* | :heavy_minus_sign: | Indicates if the media container has mixed parents. | true | +| `Metadata` | List<[GetLibraryItemsMetadata](../../Models/Requests/GetLibraryItemsMetadata.md)> | :heavy_check_mark: | An array of metadata items. | | | `Meta` | [GetLibraryItemsMeta](../../Models/Requests/GetLibraryItemsMeta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
| | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsMeta.md b/docs/Models/Requests/GetLibraryItemsMeta.md index ecb6c8c..933cb14 100644 --- a/docs/Models/Requests/GetLibraryItemsMeta.md +++ b/docs/Models/Requests/GetLibraryItemsMeta.md @@ -6,7 +6,7 @@ The Meta object is only included in the response if the `includeMeta` parameter ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| `Type` | List<[GetLibraryItemsLibraryResponseType](../../Models/Requests/GetLibraryItemsLibraryResponseType.md)> | :heavy_minus_sign: | N/A | -| `FieldType` | List<[GetLibraryItemsLibraryFieldType](../../Models/Requests/GetLibraryItemsLibraryFieldType.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `Type` | List<[GetLibraryItemsLibraryType](../../Models/Requests/GetLibraryItemsLibraryType.md)> | :heavy_minus_sign: | N/A | +| `FieldType` | List<[GetLibraryItemsFieldType](../../Models/Requests/GetLibraryItemsFieldType.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsMetadata.md b/docs/Models/Requests/GetLibraryItemsMetadata.md index a11aeb4..6cd80a2 100644 --- a/docs/Models/Requests/GetLibraryItemsMetadata.md +++ b/docs/Models/Requests/GetLibraryItemsMetadata.md @@ -1,83 +1,88 @@ # GetLibraryItemsMetadata +Unknown + + ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `RatingKey` | *string* | :heavy_check_mark: | The rating key (Media ID) of this media item.
Note: This is always an integer, but is represented as a string in the API.
| 58683 | -| `Key` | *string* | :heavy_check_mark: | N/A | /library/metadata/58683 | -| `Guid` | *string* | :heavy_check_mark: | N/A | plex://movie/5d7768ba96b655001fdc0408 | -| `Studio` | *string* | :heavy_minus_sign: | N/A | 20th Century Studios | -| `SkipChildren` | *bool* | :heavy_minus_sign: | N/A | false | -| `LibrarySectionID` | *long* | :heavy_minus_sign: | N/A | 1 | -| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | N/A | Movies | -| `LibrarySectionKey` | *string* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `Type` | [GetLibraryItemsLibraryType](../../Models/Requests/GetLibraryItemsLibraryType.md) | :heavy_check_mark: | The type of media content in the Plex library. This can represent videos, music, or photos.
| movie | -| `Title` | *string* | :heavy_check_mark: | N/A | Avatar: The Way of Water | -| `Slug` | *string* | :heavy_minus_sign: | N/A | 4-for-texas | -| `ContentRating` | *string* | :heavy_minus_sign: | N/A | PG-13 | -| `Summary` | *string* | :heavy_check_mark: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. | -| `Rating` | *double* | :heavy_minus_sign: | N/A | 7.6 | -| `AudienceRating` | *double* | :heavy_minus_sign: | N/A | 9.2 | -| `Year` | *int* | :heavy_minus_sign: | N/A | 2022 | -| `SeasonCount` | *int* | :heavy_minus_sign: | N/A | 2022 | -| `Tagline` | *string* | :heavy_minus_sign: | N/A | Return to Pandora. | -| `FlattenSeasons` | [FlattenSeasons](../../Models/Requests/FlattenSeasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 | -| `EpisodeSort` | [EpisodeSort](../../Models/Requests/EpisodeSort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 | -| `EnableCreditsMarkerGeneration` | [EnableCreditsMarkerGeneration](../../Models/Requests/EnableCreditsMarkerGeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | -| `ShowOrdering` | [ShowOrdering](../../Models/Requests/ShowOrdering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| absolute | -| `Thumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | -| `Art` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | -| `Banner` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | -| `Duration` | *int* | :heavy_minus_sign: | N/A | 11558112 | -| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC | -| `AddedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | -| `UpdatedAt` | *long* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | -| `AudienceRatingImage` | *string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | -| `ChapterSource` | *string* | :heavy_minus_sign: | N/A | media | -| `PrimaryExtraKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58684 | -| `RatingImage` | *string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | -| `GrandparentRatingKey` | *string* | :heavy_minus_sign: | N/A | 66 | -| `GrandparentGuid` | *string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `GrandparentKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `GrandparentTitle` | *string* | :heavy_minus_sign: | N/A | Caprica | -| `GrandparentThumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `ParentSlug` | *string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `GrandparentSlug` | *string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `GrandparentArt` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 | -| `GrandparentTheme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | -| `Media` | List<[GetLibraryItemsMedia](../../Models/Requests/GetLibraryItemsMedia.md)> | :heavy_minus_sign: | The Media object is only included when type query is `4` or higher.
| | -| `Genre` | List<[GetLibraryItemsGenre](../../Models/Requests/GetLibraryItemsGenre.md)> | :heavy_minus_sign: | N/A | | -| `Country` | List<[GetLibraryItemsCountry](../../Models/Requests/GetLibraryItemsCountry.md)> | :heavy_minus_sign: | N/A | | -| `Director` | List<[GetLibraryItemsDirector](../../Models/Requests/GetLibraryItemsDirector.md)> | :heavy_minus_sign: | N/A | | -| `Writer` | List<[GetLibraryItemsWriter](../../Models/Requests/GetLibraryItemsWriter.md)> | :heavy_minus_sign: | N/A | | -| `Collection` | List<[GetLibraryItemsCollection](../../Models/Requests/GetLibraryItemsCollection.md)> | :heavy_minus_sign: | N/A | | -| `Role` | List<[GetLibraryItemsRole](../../Models/Requests/GetLibraryItemsRole.md)> | :heavy_minus_sign: | N/A | | -| `Location` | List<[GetLibraryItemsLocation](../../Models/Requests/GetLibraryItemsLocation.md)> | :heavy_minus_sign: | N/A | | -| `MediaGuid` | List<[MediaGuid](../../Models/Requests/MediaGuid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | -| `UltraBlurColors` | [GetLibraryItemsUltraBlurColors](../../Models/Requests/GetLibraryItemsUltraBlurColors.md) | :heavy_minus_sign: | N/A | | -| `MetaDataRating` | List<[MetaDataRating](../../Models/Requests/MetaDataRating.md)> | :heavy_minus_sign: | N/A | | -| `Image` | List<[GetLibraryItemsImage](../../Models/Requests/GetLibraryItemsImage.md)> | :heavy_minus_sign: | N/A | | -| `TitleSort` | *string* | :heavy_minus_sign: | N/A | Whale | -| `ViewCount` | *int* | :heavy_minus_sign: | N/A | 1 | -| `LastViewedAt` | *int* | :heavy_minus_sign: | N/A | 1682752242 | -| `OriginalTitle` | *string* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 | -| `ViewOffset` | *int* | :heavy_minus_sign: | N/A | 5222500 | -| `SkipCount` | *int* | :heavy_minus_sign: | N/A | 1 | -| `Index` | *int* | :heavy_minus_sign: | N/A | 1 | -| `Theme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 | -| `LeafCount` | *int* | :heavy_minus_sign: | N/A | 14 | -| `ViewedLeafCount` | *int* | :heavy_minus_sign: | N/A | 0 | -| `ChildCount` | *int* | :heavy_minus_sign: | N/A | 1 | -| `HasPremiumExtras` | *string* | :heavy_minus_sign: | N/A | 1 | -| `HasPremiumPrimaryExtra` | *string* | :heavy_minus_sign: | N/A | 1 | -| `ParentRatingKey` | *string* | :heavy_minus_sign: | The rating key of the parent item.
| 66 | -| `ParentGuid` | *string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `ParentStudio` | *string* | :heavy_minus_sign: | N/A | UCP | -| `ParentKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `ParentTitle` | *string* | :heavy_minus_sign: | N/A | Caprica | -| `ParentIndex` | *int* | :heavy_minus_sign: | N/A | 1 | -| `ParentYear` | *int* | :heavy_minus_sign: | N/A | 2010 | -| `ParentThumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `ParentTheme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `RatingKey` | *string* | :heavy_check_mark: | The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. | 58683 | +| `Key` | *string* | :heavy_check_mark: | The unique key for the media item. | /library/metadata/58683 | +| `Guid` | *string* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 | +| `Slug` | *string* | :heavy_check_mark: | A URL‐friendly version of the media title. | 4-for-texas | +| `Studio` | *string* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios | +| `Type` | [GetLibraryItemsType](../../Models/Requests/GetLibraryItemsType.md) | :heavy_check_mark: | N/A | movie | +| `Title` | *string* | :heavy_check_mark: | The title of the media item. | Avatar: The Way of Water | +| `Banner` | *string* | :heavy_check_mark: | The banner image URL for the media item. | /library/metadata/58683/banner/1703239236 | +| `TitleSort` | *string* | :heavy_check_mark: | The sort title used for ordering media items. | Whale | +| `ContentRating` | *string* | :heavy_minus_sign: | The content rating for the media item. | PG-13 | +| `Summary` | *string* | :heavy_check_mark: | A synopsis of the media item. | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.
Once a familiar threat returns to finish what was previously started, Jake must
work with Neytiri and the army of the Na'vi race to protect their home.
| +| `Rating` | *float* | :heavy_check_mark: | The critic rating for the media item. | 7.6 | +| `AudienceRating` | *double* | :heavy_check_mark: | The audience rating for the media item. | 9.2 | +| `Year` | *int* | :heavy_minus_sign: | The release year of the media item. | 2022 | +| `Tagline` | *string* | :heavy_check_mark: | A brief tagline for the media item. | Return to Pandora. | +| `Thumb` | *string* | :heavy_check_mark: | The thumbnail image URL for the media item. | /library/metadata/58683/thumb/1703239236 | +| `Art` | *string* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 | +| `Theme` | *string* | :heavy_check_mark: | The theme URL for the media item. | /library/metadata/1/theme/1705636920 | +| `Index` | *int* | :heavy_check_mark: | The index position of the media item. | 1 | +| `LeafCount` | *int* | :heavy_minus_sign: | The number of leaf items (end nodes) under this media item. | 14 | +| `ViewedLeafCount` | *int* | :heavy_minus_sign: | The number of leaf items that have been viewed. | 0 | +| `ChildCount` | *int* | :heavy_check_mark: | The number of child items associated with this media item. | 1 | +| `SeasonCount` | *int* | :heavy_check_mark: | The total number of seasons (for TV shows). | 2022 | +| `Duration` | *int* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 | +| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | The original release date of the media item. | 2022-12-14 | +| `AddedAt` | *long* | :heavy_check_mark: | N/A | 1556281940 | +| `UpdatedAt` | *long* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | +| `AudienceRatingImage` | *string* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright | +| `ChapterSource` | *string* | :heavy_minus_sign: | The source from which chapter data is derived. | media | +| `PrimaryExtraKey` | *string* | :heavy_minus_sign: | The primary extra key associated with this media item. | /library/metadata/58684 | +| `OriginalTitle` | *string* | :heavy_minus_sign: | The original title of the media item (if different). | 映画 ブラッククローバー 魔法帝の剣 | +| `ParentRatingKey` | *string* | :heavy_minus_sign: | The rating key of the parent media item. | 66 | +| `GrandparentRatingKey` | *string* | :heavy_minus_sign: | The rating key of the grandparent media item. | 66 | +| `ParentGuid` | *string* | :heavy_minus_sign: | The GUID of the parent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `GrandparentGuid` | *string* | :heavy_minus_sign: | The GUID of the grandparent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `GrandparentSlug` | *string* | :heavy_minus_sign: | The slug for the grandparent media item. | alice-in-borderland-2020 | +| `GrandparentKey` | *string* | :heavy_minus_sign: | The key of the grandparent media item. | /library/metadata/66 | +| `ParentKey` | *string* | :heavy_minus_sign: | The key of the parent media item. | /library/metadata/66 | +| `GrandparentTitle` | *string* | :heavy_minus_sign: | The title of the grandparent media item. | Caprica | +| `GrandparentThumb` | *string* | :heavy_minus_sign: | The thumbnail URL for the grandparent media item. | /library/metadata/66/thumb/1705716261 | +| `GrandparentTheme` | *string* | :heavy_minus_sign: | The theme URL for the grandparent media item. | /library/metadata/66/theme/1705716261 | +| `GrandparentArt` | *string* | :heavy_minus_sign: | The art URL for the grandparent media item. | /library/metadata/66/art/1705716261 | +| `ParentTitle` | *string* | :heavy_minus_sign: | The title of the parent media item. | Caprica | +| `ParentIndex` | *int* | :heavy_minus_sign: | The index position of the parent media item. | 1 | +| `ParentThumb` | *string* | :heavy_minus_sign: | The thumbnail URL for the parent media item. | /library/metadata/66/thumb/1705716261 | +| `RatingImage` | *string* | :heavy_minus_sign: | The URL for the rating image. | rottentomatoes://image.rating.ripe | +| `ViewCount` | *int* | :heavy_minus_sign: | The number of times this media item has been viewed. | 1 | +| `ViewOffset` | *int* | :heavy_minus_sign: | The current playback offset (in milliseconds). | 5222500 | +| `SkipCount` | *int* | :heavy_minus_sign: | The number of times this media item has been skipped. | 1 | +| `Subtype` | *string* | :heavy_minus_sign: | A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. | clip | +| `LastRatedAt` | *long* | :heavy_minus_sign: | The Unix timestamp representing the last time the item was rated. | 1721813113 | +| `CreatedAtAccuracy` | *string* | :heavy_minus_sign: | The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). | epoch,local | +| `CreatedAtTZOffset` | *string* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 | +| `LastViewedAt` | *int* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 | +| `UserRating` | *float* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 | +| `Image` | List<[GetLibraryItemsImage](../../Models/Requests/GetLibraryItemsImage.md)> | :heavy_minus_sign: | N/A | | +| `UltraBlurColors` | [GetLibraryItemsUltraBlurColors](../../Models/Requests/GetLibraryItemsUltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `Guids` | List<[GetLibraryItemsGuids](../../Models/Requests/GetLibraryItemsGuids.md)> | :heavy_minus_sign: | N/A | | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The identifier for the library section. | 1 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | Movies | +| `LibrarySectionKey` | *string* | :heavy_minus_sign: | The key corresponding to the library section. | /library/sections/1 | +| `ShowOrdering` | [ShowOrdering](../../Models/Requests/ShowOrdering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.
Options:
- None = Library default
- tmdbAiring = The Movie Database (Aired)
- aired = TheTVDB (Aired)
- dvd = TheTVDB (DVD)
- absolute = TheTVDB (Absolute)
| absolute | +| `FlattenSeasons` | [FlattenSeasons](../../Models/Requests/FlattenSeasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
| 1 | +| `SkipChildren` | *bool* | :heavy_minus_sign: | Indicates whether child items should be skipped. | false | +| `Media` | List<[GetLibraryItemsMedia](../../Models/Requests/GetLibraryItemsMedia.md)> | :heavy_minus_sign: | N/A | | +| `Genre` | List<[GetLibraryItemsGenre](../../Models/Requests/GetLibraryItemsGenre.md)> | :heavy_minus_sign: | N/A | | +| `Country` | List<[GetLibraryItemsCountry](../../Models/Requests/GetLibraryItemsCountry.md)> | :heavy_minus_sign: | N/A | | +| `Director` | List<[GetLibraryItemsDirector](../../Models/Requests/GetLibraryItemsDirector.md)> | :heavy_minus_sign: | N/A | | +| `Writer` | List<[GetLibraryItemsWriter](../../Models/Requests/GetLibraryItemsWriter.md)> | :heavy_minus_sign: | N/A | | +| `Producer` | List<[GetLibraryItemsProducer](../../Models/Requests/GetLibraryItemsProducer.md)> | :heavy_minus_sign: | N/A | | +| `Collection` | List<[GetLibraryItemsCollection](../../Models/Requests/GetLibraryItemsCollection.md)> | :heavy_minus_sign: | N/A | | +| `Role` | List<[GetLibraryItemsRole](../../Models/Requests/GetLibraryItemsRole.md)> | :heavy_minus_sign: | N/A | | +| `Ratings` | List<[Ratings](../../Models/Requests/Ratings.md)> | :heavy_minus_sign: | N/A | | +| `Similar` | List<[GetLibraryItemsSimilar](../../Models/Requests/GetLibraryItemsSimilar.md)> | :heavy_minus_sign: | N/A | | +| `Location` | List<[GetLibraryItemsLocation](../../Models/Requests/GetLibraryItemsLocation.md)> | :heavy_minus_sign: | N/A | | +| `Chapter` | List<[Chapter](../../Models/Requests/Chapter.md)> | :heavy_minus_sign: | N/A | | +| `Marker` | List<[Marker](../../Models/Requests/Marker.md)> | :heavy_minus_sign: | N/A | | +| `Extras` | [Extras](../../Models/Requests/Extras.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsOptimizedForStreaming.md b/docs/Models/Requests/GetLibraryItemsOptimizedForStreaming.md index 8075b9e..e2379bd 100644 --- a/docs/Models/Requests/GetLibraryItemsOptimizedForStreaming.md +++ b/docs/Models/Requests/GetLibraryItemsOptimizedForStreaming.md @@ -1,9 +1,18 @@ # GetLibraryItemsOptimizedForStreaming +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true -## Values -| Name | Value | -| --------- | --------- | -| `Disable` | 0 | -| `Enable` | 1 | \ No newline at end of file +## Supported Types + +### OptimizedForStreaming1 + +```csharp +GetLibraryItemsOptimizedForStreaming.CreateOptimizedForStreaming1(/* values here */); +``` + +### Boolean + +```csharp +GetLibraryItemsOptimizedForStreaming.CreateBoolean(/* values here */); +``` diff --git a/docs/Models/Requests/GetLibraryItemsOptimizedForStreaming1.md b/docs/Models/Requests/GetLibraryItemsOptimizedForStreaming1.md new file mode 100644 index 0000000..6a83310 --- /dev/null +++ b/docs/Models/Requests/GetLibraryItemsOptimizedForStreaming1.md @@ -0,0 +1,9 @@ +# GetLibraryItemsOptimizedForStreaming1 + + +## Values + +| Name | Value | +| ------ | ------ | +| `Zero` | 0 | +| `One` | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsPart.md b/docs/Models/Requests/GetLibraryItemsPart.md index 94eee00..3b66db6 100644 --- a/docs/Models/Requests/GetLibraryItemsPart.md +++ b/docs/Models/Requests/GetLibraryItemsPart.md @@ -3,18 +3,20 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `Id` | *int* | :heavy_check_mark: | N/A | 119542 | -| `Key` | *string* | :heavy_check_mark: | N/A | /library/parts/119542/1680457526/file.mkv | -| `Duration` | *int* | :heavy_minus_sign: | N/A | 11558112 | -| `File` | *string* | :heavy_check_mark: | N/A | /movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv | -| `Size` | *long* | :heavy_check_mark: | N/A | 36158371307 | -| `Container` | *string* | :heavy_check_mark: | The container format of the media file.
| mkv | -| `AudioProfile` | *string* | :heavy_minus_sign: | N/A | dts | -| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | -| `OptimizedForStreaming` | *bool* | :heavy_minus_sign: | N/A | false | -| `VideoProfile` | *string* | :heavy_minus_sign: | N/A | main 10 | -| `Indexes` | *string* | :heavy_minus_sign: | N/A | sd | -| `HasThumbnail` | [GetLibraryItemsHasThumbnail](../../Models/Requests/GetLibraryItemsHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | -| `Stream` | List<[GetLibraryItemsStream](../../Models/Requests/GetLibraryItemsStream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `Accessible` | *bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `Exists` | *bool* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `Id` | *long* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `Key` | *string* | :heavy_minus_sign: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `Indexes` | *string* | :heavy_minus_sign: | N/A | sd | +| `Duration` | *int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | +| `File` | *string* | :heavy_minus_sign: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `Size` | *long* | :heavy_minus_sign: | File size in bytes. | 30649952104 | +| `PacketLength` | *int* | :heavy_minus_sign: | N/A | 188 | +| `Container` | *string* | :heavy_minus_sign: | Container format of the part. | mkv | +| `VideoProfile` | *string* | :heavy_minus_sign: | Video profile for the part. | main 10 | +| `AudioProfile` | *string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | +| `OptimizedForStreaming` | [GetLibraryItemsLibraryOptimizedForStreaming](../../Models/Requests/GetLibraryItemsLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
| | +| `HasThumbnail` | [GetLibraryItemsHasThumbnail](../../Models/Requests/GetLibraryItemsHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsProducer.md b/docs/Models/Requests/GetLibraryItemsProducer.md new file mode 100644 index 0000000..36a1320 --- /dev/null +++ b/docs/Models/Requests/GetLibraryItemsProducer.md @@ -0,0 +1,13 @@ +# GetLibraryItemsProducer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | The unique role identifier. | 109501 | +| `Filter` | *string* | :heavy_check_mark: | The filter string for the role. | actor=109501 | +| `Tag` | *string* | :heavy_check_mark: | The actor's name. | Bob Odenkirk | +| `TagKey` | *string* | :heavy_check_mark: | A key associated with the actor tag. | 5d77683254f42c001f8c3f69 | +| `Role` | *string* | :heavy_minus_sign: | The character name or role. | Jimmy McGill | +| `Thumb` | *string* | :heavy_minus_sign: | URL for the role thumbnail image. | https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsRole.md b/docs/Models/Requests/GetLibraryItemsRole.md index 41872c4..91f1a33 100644 --- a/docs/Models/Requests/GetLibraryItemsRole.md +++ b/docs/Models/Requests/GetLibraryItemsRole.md @@ -3,11 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `Id` | *long* | :heavy_minus_sign: | The ID of the tag or actor. | 294129 | -| `Filter` | *string* | :heavy_minus_sign: | The filter used to find the actor or tag. | actor=294129 | -| `Thumb` | *string* | :heavy_minus_sign: | The thumbnail of the actor | https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg | -| `Tag` | *string* | :heavy_minus_sign: | The name of the tag or actor. | Mike Smith | -| `TagKey` | *string* | :heavy_minus_sign: | Unique identifier for the tag. | 668e7e7b22bcad9064350c91 | -| `Role` | *string* | :heavy_minus_sign: | The role of the actor or tag in the media. | Self | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | The unique identifier for the role.
NOTE: This is different for each Plex server and is not globally unique.
| 126522 | +| `Tag` | *string* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | +| `Role` | *string* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | +| `Thumb` | *string* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsSimilar.md b/docs/Models/Requests/GetLibraryItemsSimilar.md new file mode 100644 index 0000000..cf38699 --- /dev/null +++ b/docs/Models/Requests/GetLibraryItemsSimilar.md @@ -0,0 +1,10 @@ +# GetLibraryItemsSimilar + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | The unique similar item identifier. | 26 | +| `Filter` | *string* | :heavy_check_mark: | The filter string for similar items. | similar=26 | +| `Tag` | *string* | :heavy_check_mark: | The tag or title of the similar content. | Breaking Bad | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsStream.md b/docs/Models/Requests/GetLibraryItemsStream.md deleted file mode 100644 index 582daff..0000000 --- a/docs/Models/Requests/GetLibraryItemsStream.md +++ /dev/null @@ -1,45 +0,0 @@ -# GetLibraryItemsStream - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -| `Id` | *long* | :heavy_check_mark: | N/A | 272796 | -| `StreamType` | *long* | :heavy_check_mark: | Type of stream (1 = video, 2 = audio, 3 = subtitle) | 1 | -| `Default` | *bool* | :heavy_minus_sign: | Indicates if this is the default stream | true | -| `Selected` | *bool* | :heavy_minus_sign: | Indicates if the stream is selected | true | -| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream | h264 | -| `Index` | *long* | :heavy_check_mark: | The index of the stream | 0 | -| `Bitrate` | *long* | :heavy_minus_sign: | The bitrate of the stream in kbps | 6273 | -| `ColorPrimaries` | *string* | :heavy_minus_sign: | The color primaries of the video stream | bt709 | -| `ColorRange` | *string* | :heavy_minus_sign: | The color range of the video stream | tv | -| `ColorSpace` | *string* | :heavy_minus_sign: | The color space of the video stream | bt709 | -| `ColorTrc` | *string* | :heavy_minus_sign: | The transfer characteristics (TRC) of the video stream | bt709 | -| `BitDepth` | *long* | :heavy_minus_sign: | The bit depth of the video stream | 8 | -| `ChromaLocation` | *string* | :heavy_minus_sign: | The chroma location of the video stream | left | -| `StreamIdentifier` | *string* | :heavy_minus_sign: | The identifier of the video stream | 2 | -| `ChromaSubsampling` | *string* | :heavy_minus_sign: | The chroma subsampling format | 4:2:0 | -| `CodedHeight` | *long* | :heavy_minus_sign: | The coded height of the video stream | 1088 | -| `CodedWidth` | *long* | :heavy_minus_sign: | The coded width of the video stream | 1920 | -| `FrameRate` | *double* | :heavy_minus_sign: | The frame rate of the video stream | 29.97 | -| `HasScalingMatrix` | *bool* | :heavy_minus_sign: | Indicates if the stream has a scaling matrix | false | -| `HearingImpaired` | *bool* | :heavy_minus_sign: | N/A | false | -| `ClosedCaptions` | *bool* | :heavy_minus_sign: | N/A | false | -| `EmbeddedInVideo` | *string* | :heavy_minus_sign: | N/A | 1 | -| `Height` | *long* | :heavy_minus_sign: | The height of the video stream | 1080 | -| `Level` | *long* | :heavy_minus_sign: | The level of the video codec | 40 | -| `Profile` | *string* | :heavy_minus_sign: | The profile of the video codec | main | -| `RefFrames` | *long* | :heavy_minus_sign: | Number of reference frames | 4 | -| `ScanType` | *string* | :heavy_minus_sign: | The scan type (progressive or interlaced) | progressive | -| `Width` | *long* | :heavy_minus_sign: | The width of the video stream | 1920 | -| `DisplayTitle` | *string* | :heavy_minus_sign: | Display title of the stream | 1080p (H.264) | -| `ExtendedDisplayTitle` | *string* | :heavy_minus_sign: | Extended display title of the stream | 1080p (H.264) | -| `Channels` | *long* | :heavy_minus_sign: | Number of audio channels (for audio streams) | 2 | -| `Language` | *string* | :heavy_minus_sign: | The language of the stream (for audio/subtitle streams) | English | -| `LanguageTag` | *string* | :heavy_minus_sign: | Language tag of the stream | en | -| `LanguageCode` | *string* | :heavy_minus_sign: | Language code of the stream | eng | -| `AudioChannelLayout` | *string* | :heavy_minus_sign: | The audio channel layout | stereo | -| `SamplingRate` | *long* | :heavy_minus_sign: | Sampling rate of the audio stream in Hz | 48000 | -| `Title` | *string* | :heavy_minus_sign: | Title of the subtitle track (for subtitle streams) | English | -| `CanAutoSync` | *bool* | :heavy_minus_sign: | Indicates if the subtitle stream can auto-sync | false | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsType.md b/docs/Models/Requests/GetLibraryItemsType.md index f30cbe3..d2d39f5 100644 --- a/docs/Models/Requests/GetLibraryItemsType.md +++ b/docs/Models/Requests/GetLibraryItemsType.md @@ -1,15 +1,20 @@ # GetLibraryItemsType +The type of media content in the Plex library. This can represent videos, music, or photos. -## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `Key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 | -| `Type` | *string* | :heavy_check_mark: | N/A | filter | -| `Subtype` | *string* | :heavy_minus_sign: | N/A | clip | -| `Title` | *string* | :heavy_check_mark: | N/A | TV Shows | -| `Active` | *bool* | :heavy_check_mark: | N/A | false | -| `Filter` | List<[GetLibraryItemsFilter](../../Models/Requests/GetLibraryItemsFilter.md)> | :heavy_minus_sign: | N/A | | -| `Sort` | List<[GetLibraryItemsSort](../../Models/Requests/GetLibraryItemsSort.md)> | :heavy_minus_sign: | N/A | | -| `Field` | List<[GetLibraryItemsField](../../Models/Requests/GetLibraryItemsField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | +| `Artist` | artist | +| `Album` | album | +| `Track` | track | +| `PhotoAlbum` | photoalbum | +| `Photo` | photo | +| `Collection` | collection | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibraryItemsWriter.md b/docs/Models/Requests/GetLibraryItemsWriter.md index 4fc777a..22d168a 100644 --- a/docs/Models/Requests/GetLibraryItemsWriter.md +++ b/docs/Models/Requests/GetLibraryItemsWriter.md @@ -3,6 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | +| `Tag` | *string* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | +| `Thumb` | *string* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the writer. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.md b/docs/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.md index 1851ab0..13cc0a3 100644 --- a/docs/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.md +++ b/docs/Models/Requests/GetLibrarySectionsAllLibraryOptimizedForStreaming.md @@ -5,10 +5,10 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### GetLibrarySectionsAllOptimizedForStreaming1 +### GetLibrarySectionsAllOptimizedForStreamingLibrary1 ```csharp -GetLibrarySectionsAllLibraryOptimizedForStreaming.CreateGetLibrarySectionsAllOptimizedForStreaming1(/* values here */); +GetLibrarySectionsAllLibraryOptimizedForStreaming.CreateGetLibrarySectionsAllOptimizedForStreamingLibrary1(/* values here */); ``` ### Boolean diff --git a/docs/Models/Requests/GetLibrarySectionsAllMediaContainer.md b/docs/Models/Requests/GetLibrarySectionsAllMediaContainer.md index 4e81b8a..f6d3413 100644 --- a/docs/Models/Requests/GetLibrarySectionsAllMediaContainer.md +++ b/docs/Models/Requests/GetLibrarySectionsAllMediaContainer.md @@ -12,8 +12,8 @@ | `Art` | *string* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg | | `Content` | *string* | :heavy_check_mark: | The content type or mode. | secondary | | `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | -| `LibrarySectionID` | *long* | :heavy_check_mark: | The unique identifier for the library section. | 2 | -| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | TV Series | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The unique identifier for the library section. | 2 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | TV Series | | `LibrarySectionUUID` | *string* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 | | `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | | `MediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 | diff --git a/docs/Models/Requests/GetLibrarySectionsAllMetadata.md b/docs/Models/Requests/GetLibrarySectionsAllMetadata.md index 4fe8037..47739da 100644 --- a/docs/Models/Requests/GetLibrarySectionsAllMetadata.md +++ b/docs/Models/Requests/GetLibrarySectionsAllMetadata.md @@ -31,7 +31,7 @@ Unknown | `ChildCount` | *int* | :heavy_check_mark: | The number of child items associated with this media item. | 1 | | `SeasonCount` | *int* | :heavy_check_mark: | The total number of seasons (for TV shows). | 2022 | | `Duration` | *int* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 | -| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_check_mark: | The original release date of the media item. | 2022-12-14 | +| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | The original release date of the media item. | 2022-12-14 | | `AddedAt` | *long* | :heavy_check_mark: | N/A | 1556281940 | | `UpdatedAt` | *long* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | | `AudienceRatingImage` | *string* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright | diff --git a/docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.md b/docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.md index e13234c..10afb84 100644 --- a/docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.md +++ b/docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreaming.md @@ -5,10 +5,10 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or tr ## Supported Types -### OptimizedForStreaming1 +### GetLibrarySectionsAllOptimizedForStreaming1 ```csharp -GetLibrarySectionsAllOptimizedForStreaming.CreateOptimizedForStreaming1(/* values here */); +GetLibrarySectionsAllOptimizedForStreaming.CreateGetLibrarySectionsAllOptimizedForStreaming1(/* values here */); ``` ### Boolean diff --git a/docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.md b/docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.md new file mode 100644 index 0000000..ebe4787 --- /dev/null +++ b/docs/Models/Requests/GetLibrarySectionsAllOptimizedForStreamingLibrary1.md @@ -0,0 +1,9 @@ +# GetLibrarySectionsAllOptimizedForStreamingLibrary1 + + +## Values + +| Name | Value | +| ------ | ------ | +| `Zero` | 0 | +| `One` | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibrarySectionsAllStream.md b/docs/Models/Requests/GetLibrarySectionsAllStream.md index b1f322a..1db66c5 100644 --- a/docs/Models/Requests/GetLibrarySectionsAllStream.md +++ b/docs/Models/Requests/GetLibrarySectionsAllStream.md @@ -3,56 +3,56 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `Id` | *long* | :heavy_check_mark: | Unique stream identifier. | 1002625 | -| `StreamType` | [GetLibrarySectionsAllStreamType](../../Models/Requests/GetLibrarySectionsAllStreamType.md) | :heavy_check_mark: | Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
| 1 | -| `Format` | *string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt | -| `Default` | *bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | -| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | -| `Index` | *int* | :heavy_minus_sign: | Index of the stream. | 0 | -| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | -| `Language` | *string* | :heavy_minus_sign: | Language of the stream. | English | -| `LanguageTag` | *string* | :heavy_minus_sign: | Language tag (e.g., en). | en | -| `LanguageCode` | *string* | :heavy_minus_sign: | ISO language code. | eng | -| `HeaderCompression` | *bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | -| `DOVIBLCompatID` | *int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | -| `DOVIBLPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | -| `DOVIELPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | -| `DOVILevel` | *int* | :heavy_minus_sign: | Dolby Vision level. | 6 | -| `DOVIPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | -| `DOVIProfile` | *int* | :heavy_minus_sign: | Dolby Vision profile. | 8 | -| `DOVIRPUPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | -| `DOVIVersion` | *string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | -| `BitDepth` | *int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | -| `ChromaLocation` | *string* | :heavy_minus_sign: | Chroma sample location. | topleft | -| `ChromaSubsampling` | *string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | -| `CodedHeight` | *int* | :heavy_minus_sign: | Coded video height. | 1608 | -| `CodedWidth` | *int* | :heavy_minus_sign: | Coded video width. | 3840 | -| `ClosedCaptions` | *bool* | :heavy_minus_sign: | N/A | true | -| `ColorPrimaries` | *string* | :heavy_minus_sign: | Color primaries used. | bt2020 | -| `ColorRange` | *string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | -| `ColorSpace` | *string* | :heavy_minus_sign: | Color space. | bt2020nc | -| `ColorTrc` | *string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | -| `FrameRate` | *float* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | -| `Key` | *string* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 | -| `Height` | *int* | :heavy_minus_sign: | Height of the video stream. | 1602 | -| `Level` | *int* | :heavy_minus_sign: | Video level. | 150 | -| `Original` | *bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | -| `HasScalingMatrix` | *bool* | :heavy_minus_sign: | N/A | false | -| `Profile` | *string* | :heavy_minus_sign: | Video profile. | main 10 | -| `ScanType` | *string* | :heavy_minus_sign: | N/A | progressive | -| `EmbeddedInVideo` | *string* | :heavy_minus_sign: | N/A | progressive | -| `RefFrames` | *int* | :heavy_minus_sign: | Number of reference frames. | 1 | -| `Width` | *int* | :heavy_minus_sign: | Width of the video stream. | 3840 | -| `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | -| `ExtendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | -| `Selected` | *bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | -| `Forced` | *bool* | :heavy_minus_sign: | N/A | true | -| `Channels` | *int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | -| `AudioChannelLayout` | *string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | -| `SamplingRate` | *int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | -| `CanAutoSync` | *bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | -| `HearingImpaired` | *bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | -| `Dub` | *bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | -| `Title` | *string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | Unique stream identifier. | 1002625 | +| `StreamType` | *long* | :heavy_check_mark: | Stream type:
- VIDEO = 1
- AUDIO = 2
- SUBTITLE = 3
| | +| `Format` | *string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt | +| `Default` | *bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | +| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | +| `Index` | *int* | :heavy_minus_sign: | Index of the stream. | 0 | +| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | +| `Language` | *string* | :heavy_minus_sign: | Language of the stream. | English | +| `LanguageTag` | *string* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `LanguageCode` | *string* | :heavy_minus_sign: | ISO language code. | eng | +| `HeaderCompression` | *bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | +| `DOVIBLCompatID` | *int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | +| `DOVIBLPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | +| `DOVIELPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | +| `DOVILevel` | *int* | :heavy_minus_sign: | Dolby Vision level. | 6 | +| `DOVIPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | +| `DOVIProfile` | *int* | :heavy_minus_sign: | Dolby Vision profile. | 8 | +| `DOVIRPUPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | +| `DOVIVersion` | *string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | +| `BitDepth` | *int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | +| `ChromaLocation` | *string* | :heavy_minus_sign: | Chroma sample location. | topleft | +| `ChromaSubsampling` | *string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | +| `CodedHeight` | *int* | :heavy_minus_sign: | Coded video height. | 1608 | +| `CodedWidth` | *int* | :heavy_minus_sign: | Coded video width. | 3840 | +| `ClosedCaptions` | *bool* | :heavy_minus_sign: | N/A | true | +| `ColorPrimaries` | *string* | :heavy_minus_sign: | Color primaries used. | bt2020 | +| `ColorRange` | *string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | +| `ColorSpace` | *string* | :heavy_minus_sign: | Color space. | bt2020nc | +| `ColorTrc` | *string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | +| `FrameRate` | *float* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | +| `Key` | *string* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 | +| `Height` | *int* | :heavy_minus_sign: | Height of the video stream. | 1602 | +| `Level` | *int* | :heavy_minus_sign: | Video level. | 150 | +| `Original` | *bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | +| `HasScalingMatrix` | *bool* | :heavy_minus_sign: | N/A | false | +| `Profile` | *string* | :heavy_minus_sign: | Video profile. | main 10 | +| `ScanType` | *string* | :heavy_minus_sign: | N/A | progressive | +| `EmbeddedInVideo` | *string* | :heavy_minus_sign: | N/A | progressive | +| `RefFrames` | *int* | :heavy_minus_sign: | Number of reference frames. | 1 | +| `Width` | *int* | :heavy_minus_sign: | Width of the video stream. | 3840 | +| `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `ExtendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `Selected` | *bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | +| `Forced` | *bool* | :heavy_minus_sign: | N/A | true | +| `Channels` | *int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | +| `AudioChannelLayout` | *string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | +| `SamplingRate` | *int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | +| `CanAutoSync` | *bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | +| `HearingImpaired` | *bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | +| `Dub` | *bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | +| `Title` | *string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | \ No newline at end of file diff --git a/docs/Models/Requests/GetLibrarySectionsAllStreamType.md b/docs/Models/Requests/GetLibrarySectionsAllStreamType.md deleted file mode 100644 index 07e5345..0000000 --- a/docs/Models/Requests/GetLibrarySectionsAllStreamType.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetLibrarySectionsAllStreamType - -Stream type: - - 1 = video - - 2 = audio - - 3 = subtitle - - - -## Values - -| Name | Value | -| ---------- | ---------- | -| `Video` | 1 | -| `Audio` | 2 | -| `Subtitle` | 3 | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataAttributes.md b/docs/Models/Requests/GetMediaMetaDataAttributes.md new file mode 100644 index 0000000..b4db61e --- /dev/null +++ b/docs/Models/Requests/GetMediaMetaDataAttributes.md @@ -0,0 +1,11 @@ +# GetMediaMetaDataAttributes + +Attributes associated with the marker. + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | The identifier for the attributes. | 306970 | +| `Version` | *long* | :heavy_minus_sign: | The version number of the marker attributes. | 4 | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataChapter.md b/docs/Models/Requests/GetMediaMetaDataChapter.md new file mode 100644 index 0000000..a9a8154 --- /dev/null +++ b/docs/Models/Requests/GetMediaMetaDataChapter.md @@ -0,0 +1,15 @@ +# GetMediaMetaDataChapter + +The thumbnail for the chapter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `Id` | *long* | :heavy_check_mark: | N/A | 4 | +| `Filter` | *string* | :heavy_check_mark: | N/A | thumb=4 | +| `Index` | *long* | :heavy_check_mark: | N/A | 1 | +| `StartTimeOffset` | *long* | :heavy_check_mark: | N/A | 0 | +| `EndTimeOffset` | *long* | :heavy_check_mark: | N/A | 100100 | +| `Thumb` | *string* | :heavy_check_mark: | N/A | /library/media/46883/chapterImages/1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataExtras.md b/docs/Models/Requests/GetMediaMetaDataExtras.md new file mode 100644 index 0000000..09e1a99 --- /dev/null +++ b/docs/Models/Requests/GetMediaMetaDataExtras.md @@ -0,0 +1,8 @@ +# GetMediaMetaDataExtras + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `Size` | *long* | :heavy_minus_sign: | The size of the extras. | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataHasThumbnail.md b/docs/Models/Requests/GetMediaMetaDataHasThumbnail.md index 94483bc..fc2814d 100644 --- a/docs/Models/Requests/GetMediaMetaDataHasThumbnail.md +++ b/docs/Models/Requests/GetMediaMetaDataHasThumbnail.md @@ -3,6 +3,7 @@ Indicates if the part has a thumbnail. + ## Values | Name | Value | diff --git a/docs/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.md b/docs/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.md index 2d51150..87f1f95 100644 --- a/docs/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.md +++ b/docs/Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.md @@ -3,6 +3,7 @@ Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + ## Supported Types ### GetMediaMetaDataOptimizedForStreamingLibrary1 diff --git a/docs/Models/Requests/GetMediaMetaDataMarker.md b/docs/Models/Requests/GetMediaMetaDataMarker.md new file mode 100644 index 0000000..77fc0bc --- /dev/null +++ b/docs/Models/Requests/GetMediaMetaDataMarker.md @@ -0,0 +1,15 @@ +# GetMediaMetaDataMarker + +The final status of the marker + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | N/A | 306970 | +| `Type` | *string* | :heavy_check_mark: | N/A | credits | +| `StartTimeOffset` | *long* | :heavy_check_mark: | N/A | 4176050 | +| `EndTimeOffset` | *long* | :heavy_check_mark: | N/A | 4393389 | +| `Final` | *bool* | :heavy_minus_sign: | N/A | true | +| `Attributes` | [GetMediaMetaDataAttributes](../../Models/Requests/GetMediaMetaDataAttributes.md) | :heavy_minus_sign: | Attributes associated with the marker. | | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataMedia.md b/docs/Models/Requests/GetMediaMetaDataMedia.md index c3e10b2..b1a960d 100644 --- a/docs/Models/Requests/GetMediaMetaDataMedia.md +++ b/docs/Models/Requests/GetMediaMetaDataMedia.md @@ -3,24 +3,24 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| `Id` | *long* | :heavy_check_mark: | Unique media identifier. | 387322 | -| `Duration` | *int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | -| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | -| `Width` | *int* | :heavy_minus_sign: | Video width in pixels. | 3840 | -| `Height` | *int* | :heavy_minus_sign: | Video height in pixels. | 1602 | -| `AspectRatio` | *float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | -| `AudioChannels` | *int* | :heavy_minus_sign: | Number of audio channels. | 6 | -| `DisplayOffset` | *int* | :heavy_minus_sign: | N/A | 50 | -| `AudioCodec` | *string* | :heavy_minus_sign: | Audio codec used. | eac3 | -| `VideoCodec` | *string* | :heavy_minus_sign: | Video codec used. | hevc | -| `VideoResolution` | *string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | -| `Container` | *string* | :heavy_minus_sign: | File container type. | mkv | -| `VideoFrameRate` | *string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | -| `VideoProfile` | *string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | -| `HasVoiceActivity` | *bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | -| `AudioProfile` | *string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | -| `OptimizedForStreaming` | [GetMediaMetaDataOptimizedForStreaming](../../Models/Requests/GetMediaMetaDataOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | -| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | -| `Part` | List<[GetMediaMetaDataPart](../../Models/Requests/GetMediaMetaDataPart.md)> | :heavy_minus_sign: | An array of parts for this media item. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `Duration` | *int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `Width` | *int* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `Height` | *int* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `AspectRatio` | *float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `AudioChannels` | *int* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `DisplayOffset` | *int* | :heavy_minus_sign: | N/A | 50 | +| `AudioCodec` | *string* | :heavy_minus_sign: | Audio codec used. | aac | +| `VideoCodec` | *string* | :heavy_minus_sign: | Video codec used. | hevc | +| `VideoResolution` | *string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `Container` | *string* | :heavy_minus_sign: | Container format of the media. | mp4 | +| `VideoFrameRate` | *string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `VideoProfile` | *string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `HasVoiceActivity` | *bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `AudioProfile` | *string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `OptimizedForStreaming` | [GetMediaMetaDataOptimizedForStreaming](../../Models/Requests/GetMediaMetaDataOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | Indicates whether the media has 64-bit offsets.
This is relevant for media files that may require larger offsets than what 32-bit integers can provide.
| false | +| `Part` | List<[GetMediaMetaDataPart](../../Models/Requests/GetMediaMetaDataPart.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataMediaContainer.md b/docs/Models/Requests/GetMediaMetaDataMediaContainer.md index b1e3765..76d5ba1 100644 --- a/docs/Models/Requests/GetMediaMetaDataMediaContainer.md +++ b/docs/Models/Requests/GetMediaMetaDataMediaContainer.md @@ -8,8 +8,8 @@ | `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 | | `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | | `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | -| `LibrarySectionID` | *long* | :heavy_check_mark: | The unique identifier for the library section. | 2 | -| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | TV Series | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The unique identifier for the library section. | 2 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | TV Series | | `LibrarySectionUUID` | *string* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 | | `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | | `MediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 | diff --git a/docs/Models/Requests/GetMediaMetaDataMetadata.md b/docs/Models/Requests/GetMediaMetaDataMetadata.md index c9ee9dc..afd7aaf 100644 --- a/docs/Models/Requests/GetMediaMetaDataMetadata.md +++ b/docs/Models/Requests/GetMediaMetaDataMetadata.md @@ -31,7 +31,7 @@ Unknown | `ChildCount` | *int* | :heavy_check_mark: | The number of child items associated with this media item. | 1 | | `SeasonCount` | *int* | :heavy_check_mark: | The total number of seasons (for TV shows). | 2022 | | `Duration` | *int* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 | -| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_check_mark: | The original release date of the media item. | 2022-12-14 | +| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | The original release date of the media item. | 2022-12-14 | | `AddedAt` | *long* | :heavy_check_mark: | N/A | 1556281940 | | `UpdatedAt` | *long* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | | `AudienceRatingImage` | *string* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright | @@ -64,9 +64,9 @@ Unknown | `UserRating` | *float* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 | | `Image` | List<[GetMediaMetaDataImage](../../Models/Requests/GetMediaMetaDataImage.md)> | :heavy_minus_sign: | N/A | | | `UltraBlurColors` | [GetMediaMetaDataUltraBlurColors](../../Models/Requests/GetMediaMetaDataUltraBlurColors.md) | :heavy_minus_sign: | N/A | | -| `LibrarySectionID` | *long* | :heavy_check_mark: | The identifier for the library section. | 1 | -| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | Movies | -| `LibrarySectionKey` | *string* | :heavy_check_mark: | The key corresponding to the library section. | /library/sections/1 | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The identifier for the library section. | 1 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | Movies | +| `LibrarySectionKey` | *string* | :heavy_minus_sign: | The key corresponding to the library section. | /library/sections/1 | | `Guids` | List<[GetMediaMetaDataGuids](../../Models/Requests/GetMediaMetaDataGuids.md)> | :heavy_minus_sign: | N/A | | | `Media` | List<[GetMediaMetaDataMedia](../../Models/Requests/GetMediaMetaDataMedia.md)> | :heavy_minus_sign: | N/A | | | `Genre` | List<[GetMediaMetaDataGenre](../../Models/Requests/GetMediaMetaDataGenre.md)> | :heavy_minus_sign: | N/A | | @@ -75,9 +75,9 @@ Unknown | `Writer` | List<[GetMediaMetaDataWriter](../../Models/Requests/GetMediaMetaDataWriter.md)> | :heavy_minus_sign: | N/A | | | `Producer` | List<[GetMediaMetaDataProducer](../../Models/Requests/GetMediaMetaDataProducer.md)> | :heavy_minus_sign: | N/A | | | `Role` | List<[GetMediaMetaDataRole](../../Models/Requests/GetMediaMetaDataRole.md)> | :heavy_minus_sign: | N/A | | -| `Ratings` | List<[Ratings](../../Models/Requests/Ratings.md)> | :heavy_minus_sign: | N/A | | +| `Ratings` | List<[GetMediaMetaDataRatings](../../Models/Requests/GetMediaMetaDataRatings.md)> | :heavy_minus_sign: | N/A | | | `Similar` | List<[GetMediaMetaDataSimilar](../../Models/Requests/GetMediaMetaDataSimilar.md)> | :heavy_minus_sign: | N/A | | | `Location` | List<[GetMediaMetaDataLocation](../../Models/Requests/GetMediaMetaDataLocation.md)> | :heavy_minus_sign: | N/A | | -| `Chapter` | List<[Chapter](../../Models/Requests/Chapter.md)> | :heavy_minus_sign: | N/A | | -| `Marker` | List<[Marker](../../Models/Requests/Marker.md)> | :heavy_minus_sign: | N/A | | -| `Extras` | [Extras](../../Models/Requests/Extras.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `Chapter` | List<[GetMediaMetaDataChapter](../../Models/Requests/GetMediaMetaDataChapter.md)> | :heavy_minus_sign: | N/A | | +| `Marker` | List<[GetMediaMetaDataMarker](../../Models/Requests/GetMediaMetaDataMarker.md)> | :heavy_minus_sign: | N/A | | +| `Extras` | [GetMediaMetaDataExtras](../../Models/Requests/GetMediaMetaDataExtras.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataPart.md b/docs/Models/Requests/GetMediaMetaDataPart.md index 8ff2043..b6a7a7a 100644 --- a/docs/Models/Requests/GetMediaMetaDataPart.md +++ b/docs/Models/Requests/GetMediaMetaDataPart.md @@ -8,16 +8,16 @@ | `Accessible` | *bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true | | `Exists` | *bool* | :heavy_minus_sign: | Indicates if the part exists. | true | | `Id` | *long* | :heavy_check_mark: | Unique part identifier. | 418385 | -| `Key` | *string* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `Key` | *string* | :heavy_minus_sign: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | | `Indexes` | *string* | :heavy_minus_sign: | N/A | sd | | `Duration` | *int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | -| `File` | *string* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | -| `Size` | *long* | :heavy_check_mark: | File size in bytes. | 30649952104 | +| `File` | *string* | :heavy_minus_sign: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `Size` | *long* | :heavy_minus_sign: | File size in bytes. | 30649952104 | | `PacketLength` | *int* | :heavy_minus_sign: | N/A | 188 | | `Container` | *string* | :heavy_minus_sign: | Container format of the part. | mkv | | `VideoProfile` | *string* | :heavy_minus_sign: | Video profile for the part. | main 10 | | `AudioProfile` | *string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | | `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | -| `OptimizedForStreaming` | [GetMediaMetaDataLibraryOptimizedForStreaming](../../Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `OptimizedForStreaming` | [GetMediaMetaDataLibraryOptimizedForStreaming](../../Models/Requests/GetMediaMetaDataLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
| | | `HasThumbnail` | [GetMediaMetaDataHasThumbnail](../../Models/Requests/GetMediaMetaDataHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | -| `Stream` | List<[GetMediaMetaDataStream](../../Models/Requests/GetMediaMetaDataStream.md)> | :heavy_minus_sign: | An array of streams for this part. | | \ No newline at end of file +| `Stream` | List<[GetMediaMetaDataStream](../../Models/Requests/GetMediaMetaDataStream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/MetaDataRating.md b/docs/Models/Requests/GetMediaMetaDataRatings.md similarity index 83% rename from docs/Models/Requests/MetaDataRating.md rename to docs/Models/Requests/GetMediaMetaDataRatings.md index 34f4814..17083fa 100644 --- a/docs/Models/Requests/MetaDataRating.md +++ b/docs/Models/Requests/GetMediaMetaDataRatings.md @@ -1,10 +1,10 @@ -# MetaDataRating +# GetMediaMetaDataRatings ## Fields | Field | Type | Required | Description | Example | | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `Image` | *string* | :heavy_check_mark: | A URI or path to the rating image. | themoviedb://image.rating | -| `Value` | *float* | :heavy_check_mark: | The value of the rating. | 3 | +| `Image` | *string* | :heavy_check_mark: | The image or reference for the rating. | imdb://image.rating | +| `Value` | *float* | :heavy_check_mark: | The rating value. | 9 | | `Type` | *string* | :heavy_check_mark: | The type of rating (e.g., audience, critic). | audience | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataStream.md b/docs/Models/Requests/GetMediaMetaDataStream.md index 3c0cf7e..d85bd71 100644 --- a/docs/Models/Requests/GetMediaMetaDataStream.md +++ b/docs/Models/Requests/GetMediaMetaDataStream.md @@ -3,56 +3,56 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `Id` | *long* | :heavy_check_mark: | Unique stream identifier. | 1002625 | -| `StreamType` | [GetMediaMetaDataStreamType](../../Models/Requests/GetMediaMetaDataStreamType.md) | :heavy_check_mark: | Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
| 1 | -| `Format` | *string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt | -| `Default` | *bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | -| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | -| `Index` | *int* | :heavy_minus_sign: | Index of the stream. | 0 | -| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | -| `Language` | *string* | :heavy_minus_sign: | Language of the stream. | English | -| `LanguageTag` | *string* | :heavy_minus_sign: | Language tag (e.g., en). | en | -| `LanguageCode` | *string* | :heavy_minus_sign: | ISO language code. | eng | -| `HeaderCompression` | *bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | -| `DOVIBLCompatID` | *int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | -| `DOVIBLPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | -| `DOVIELPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | -| `DOVILevel` | *int* | :heavy_minus_sign: | Dolby Vision level. | 6 | -| `DOVIPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | -| `DOVIProfile` | *int* | :heavy_minus_sign: | Dolby Vision profile. | 8 | -| `DOVIRPUPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | -| `DOVIVersion` | *string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | -| `BitDepth` | *int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | -| `ChromaLocation` | *string* | :heavy_minus_sign: | Chroma sample location. | topleft | -| `ChromaSubsampling` | *string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | -| `CodedHeight` | *int* | :heavy_minus_sign: | Coded video height. | 1608 | -| `CodedWidth` | *int* | :heavy_minus_sign: | Coded video width. | 3840 | -| `ClosedCaptions` | *bool* | :heavy_minus_sign: | N/A | true | -| `ColorPrimaries` | *string* | :heavy_minus_sign: | Color primaries used. | bt2020 | -| `ColorRange` | *string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | -| `ColorSpace` | *string* | :heavy_minus_sign: | Color space. | bt2020nc | -| `ColorTrc` | *string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | -| `FrameRate` | *float* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | -| `Key` | *string* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 | -| `Height` | *int* | :heavy_minus_sign: | Height of the video stream. | 1602 | -| `Level` | *int* | :heavy_minus_sign: | Video level. | 150 | -| `Original` | *bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | -| `HasScalingMatrix` | *bool* | :heavy_minus_sign: | N/A | false | -| `Profile` | *string* | :heavy_minus_sign: | Video profile. | main 10 | -| `ScanType` | *string* | :heavy_minus_sign: | N/A | progressive | -| `EmbeddedInVideo` | *string* | :heavy_minus_sign: | N/A | progressive | -| `RefFrames` | *int* | :heavy_minus_sign: | Number of reference frames. | 1 | -| `Width` | *int* | :heavy_minus_sign: | Width of the video stream. | 3840 | -| `DisplayTitle` | *string* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | -| `ExtendedDisplayTitle` | *string* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | -| `Selected` | *bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | -| `Forced` | *bool* | :heavy_minus_sign: | N/A | true | -| `Channels` | *int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | -| `AudioChannelLayout` | *string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | -| `SamplingRate` | *int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | -| `CanAutoSync` | *bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | -| `HearingImpaired` | *bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | -| `Dub` | *bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | -| `Title` | *string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | Unique stream identifier. | 1002625 | +| `StreamType` | *long* | :heavy_check_mark: | Stream type:
- VIDEO = 1
- AUDIO = 2
- SUBTITLE = 3
| | +| `Format` | *string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt | +| `Default` | *bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | +| `Codec` | *string* | :heavy_minus_sign: | Codec used by the stream. | hevc | +| `Index` | *int* | :heavy_minus_sign: | Index of the stream. | 0 | +| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | +| `Language` | *string* | :heavy_minus_sign: | Language of the stream. | English | +| `LanguageTag` | *string* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `LanguageCode` | *string* | :heavy_minus_sign: | ISO language code. | eng | +| `HeaderCompression` | *bool* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | +| `DOVIBLCompatID` | *int* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | +| `DOVIBLPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | +| `DOVIELPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | +| `DOVILevel` | *int* | :heavy_minus_sign: | Dolby Vision level. | 6 | +| `DOVIPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | +| `DOVIProfile` | *int* | :heavy_minus_sign: | Dolby Vision profile. | 8 | +| `DOVIRPUPresent` | *bool* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | +| `DOVIVersion` | *string* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | +| `BitDepth` | *int* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | +| `ChromaLocation` | *string* | :heavy_minus_sign: | Chroma sample location. | topleft | +| `ChromaSubsampling` | *string* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | +| `CodedHeight` | *int* | :heavy_minus_sign: | Coded video height. | 1608 | +| `CodedWidth` | *int* | :heavy_minus_sign: | Coded video width. | 3840 | +| `ClosedCaptions` | *bool* | :heavy_minus_sign: | N/A | true | +| `ColorPrimaries` | *string* | :heavy_minus_sign: | Color primaries used. | bt2020 | +| `ColorRange` | *string* | :heavy_minus_sign: | Color range (e.g., tv). | tv | +| `ColorSpace` | *string* | :heavy_minus_sign: | Color space. | bt2020nc | +| `ColorTrc` | *string* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | +| `FrameRate` | *float* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | +| `Key` | *string* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 | +| `Height` | *int* | :heavy_minus_sign: | Height of the video stream. | 1602 | +| `Level` | *int* | :heavy_minus_sign: | Video level. | 150 | +| `Original` | *bool* | :heavy_minus_sign: | Indicates if this is the original stream. | true | +| `HasScalingMatrix` | *bool* | :heavy_minus_sign: | N/A | false | +| `Profile` | *string* | :heavy_minus_sign: | Video profile. | main 10 | +| `ScanType` | *string* | :heavy_minus_sign: | N/A | progressive | +| `EmbeddedInVideo` | *string* | :heavy_minus_sign: | N/A | progressive | +| `RefFrames` | *int* | :heavy_minus_sign: | Number of reference frames. | 1 | +| `Width` | *int* | :heavy_minus_sign: | Width of the video stream. | 3840 | +| `DisplayTitle` | *string* | :heavy_minus_sign: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `ExtendedDisplayTitle` | *string* | :heavy_minus_sign: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `Selected` | *bool* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | +| `Forced` | *bool* | :heavy_minus_sign: | N/A | true | +| `Channels` | *int* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | +| `AudioChannelLayout` | *string* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | +| `SamplingRate` | *int* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | +| `CanAutoSync` | *bool* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | +| `HearingImpaired` | *bool* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | +| `Dub` | *bool* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | +| `Title` | *string* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | \ No newline at end of file diff --git a/docs/Models/Requests/GetMediaMetaDataStreamType.md b/docs/Models/Requests/GetMediaMetaDataStreamType.md deleted file mode 100644 index fa56e9b..0000000 --- a/docs/Models/Requests/GetMediaMetaDataStreamType.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetMediaMetaDataStreamType - -Stream type: - - 1 = video - - 2 = audio - - 3 = subtitle - - - -## Values - -| Name | Value | -| ---------- | ---------- | -| `Video` | 1 | -| `Audio` | 2 | -| `Subtitle` | 3 | \ No newline at end of file diff --git a/docs/Models/Requests/GetRecentlyAddedMetadata.md b/docs/Models/Requests/GetRecentlyAddedMetadata.md index 12d935a..58df3eb 100644 --- a/docs/Models/Requests/GetRecentlyAddedMetadata.md +++ b/docs/Models/Requests/GetRecentlyAddedMetadata.md @@ -32,11 +32,11 @@ Unknown | `LastRatedAt` | *long* | :heavy_minus_sign: | The Unix timestamp representing the last time the item was rated. | 1721813113 | | `LastViewedAt` | *int* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 | | `LeafCount` | *int* | :heavy_minus_sign: | The number of leaf items (end nodes) under this media item. | 14 | -| `LibrarySectionID` | *long* | :heavy_check_mark: | The identifier for the library section. | 1 | -| `LibrarySectionKey` | *string* | :heavy_check_mark: | The key corresponding to the library section. | /library/sections/1 | -| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | Movies | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The identifier for the library section. | 1 | +| `LibrarySectionKey` | *string* | :heavy_minus_sign: | The key corresponding to the library section. | /library/sections/1 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | Movies | | `OriginalTitle` | *string* | :heavy_minus_sign: | The original title of the media item (if different). | 映画 ブラッククローバー 魔法帝の剣 | -| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_check_mark: | The original release date of the media item. | 2022-12-14 | +| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | The original release date of the media item. | 2022-12-14 | | `ParentGuid` | *string* | :heavy_minus_sign: | The GUID of the parent media item. | plex://show/5d9c081b170e24001f2a7be4 | | `ParentIndex` | *int* | :heavy_minus_sign: | The index position of the parent media item. | 1 | | `ParentKey` | *string* | :heavy_minus_sign: | The key of the parent media item. | /library/metadata/66 | diff --git a/docs/Models/Requests/GetSearchAllLibrariesCollection.md b/docs/Models/Requests/GetSearchAllLibrariesCollection.md deleted file mode 100644 index c6274d0..0000000 --- a/docs/Models/Requests/GetSearchAllLibrariesCollection.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetSearchAllLibrariesCollection - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | Working NL Subs | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesCountry.md b/docs/Models/Requests/GetSearchAllLibrariesCountry.md index 82fb2fe..f7f4f94 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesCountry.md +++ b/docs/Models/Requests/GetSearchAllLibrariesCountry.md @@ -3,6 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | The unique identifier for the country.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `Tag` | *string* | :heavy_check_mark: | The country of origin of this media item | United States of America | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesDirector.md b/docs/Models/Requests/GetSearchAllLibrariesDirector.md index 61373f0..e4c5337 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesDirector.md +++ b/docs/Models/Requests/GetSearchAllLibrariesDirector.md @@ -3,6 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | Unique identifier for the director. | 126522 | +| `Tag` | *string* | :heavy_check_mark: | The role of Director | Danny Boyle | +| `Thumb` | *string* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the director. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesDirectory.md b/docs/Models/Requests/GetSearchAllLibrariesDirectory.md new file mode 100644 index 0000000..a77cb4f --- /dev/null +++ b/docs/Models/Requests/GetSearchAllLibrariesDirectory.md @@ -0,0 +1,20 @@ +# GetSearchAllLibrariesDirectory + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Key` | *string* | :heavy_check_mark: | The unique identifier path for the search result item. | /library/sections/3/all?actor=197429 | +| `LibrarySectionID` | *long* | :heavy_check_mark: | The identifier for the library section. | 1 | +| `LibrarySectionKey` | *string* | :heavy_check_mark: | The key corresponding to the library section. | /library/sections/1 | +| `LibrarySectionTitle` | *string* | :heavy_check_mark: | The title of the library section. | Movies | +| `LibrarySectionType` | *long* | :heavy_minus_sign: | N/A | | +| `Type` | *string* | :heavy_check_mark: | The type of the directory. | tag | +| `Id` | *long* | :heavy_check_mark: | N/A | 197429 | +| `Filter` | *string* | :heavy_minus_sign: | The filter string used to query this specific item in the library. | actor=197429 | +| `Tag` | *string* | :heavy_check_mark: | N/A | Ben Stiller | +| `TagType` | *long* | :heavy_minus_sign: | The type of tag associated with this search result (e.g., Director, Actor). | | +| `TagKey` | *string* | :heavy_minus_sign: | The unique identifier for the tag associated with this search result. | 5d776826999c64001ec2c606 | +| `Thumb` | *string* | :heavy_minus_sign: | The URL to the thumbnail image associated with this search result. | https://metadata-static.plex.tv/5/people/57bd7c7d6c5c9e2881251b30e5603d3d.jpg | +| `Count` | *long* | :heavy_minus_sign: | The number of items associated with this search result. | 10 | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.md b/docs/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.md deleted file mode 100644 index fe38091..0000000 --- a/docs/Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetSearchAllLibrariesEnableCreditsMarkerGeneration - -Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). - - -## Values - -| Name | Value | -| ---------------- | ---------------- | -| `LibraryDefault` | -1 | -| `Disabled` | 0 | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesEpisodeSort.md b/docs/Models/Requests/GetSearchAllLibrariesEpisodeSort.md deleted file mode 100644 index 34698ab..0000000 --- a/docs/Models/Requests/GetSearchAllLibrariesEpisodeSort.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetSearchAllLibrariesEpisodeSort - -Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). - - -## Values - -| Name | Value | -| ---------------- | ---------------- | -| `LibraryDefault` | -1 | -| `OldestFirst` | 0 | -| `NewestFirst` | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesFlattenSeasons.md b/docs/Models/Requests/GetSearchAllLibrariesFlattenSeasons.md index dda35de..00be6ad 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesFlattenSeasons.md +++ b/docs/Models/Requests/GetSearchAllLibrariesFlattenSeasons.md @@ -3,6 +3,7 @@ Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). + ## Values | Name | Value | diff --git a/docs/Models/Requests/GetSearchAllLibrariesGenre.md b/docs/Models/Requests/GetSearchAllLibrariesGenre.md index 3bb520f..7c5e26a 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesGenre.md +++ b/docs/Models/Requests/GetSearchAllLibrariesGenre.md @@ -3,6 +3,7 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | Adventure | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | The unique identifier for the genre.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `Tag` | *string* | :heavy_check_mark: | The genre name of this media-item
| Crime | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesGuids.md b/docs/Models/Requests/GetSearchAllLibrariesGuids.md new file mode 100644 index 0000000..5999993 --- /dev/null +++ b/docs/Models/Requests/GetSearchAllLibrariesGuids.md @@ -0,0 +1,8 @@ +# GetSearchAllLibrariesGuids + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Id` | *string* | :heavy_check_mark: | The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
| {
"imdbExample": {
"summary": "IMDB example",
"value": "imdb://tt13015952"
},
"tmdbExample": {
"summary": "TMDB example",
"value": "tmdb://2434012"
},
"tvdbExample": {
"summary": "TVDB example",
"value": "tvdb://7945991"
}
} | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesHasThumbnail.md b/docs/Models/Requests/GetSearchAllLibrariesHasThumbnail.md index bfdb151..b5f9278 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesHasThumbnail.md +++ b/docs/Models/Requests/GetSearchAllLibrariesHasThumbnail.md @@ -1,5 +1,8 @@ # GetSearchAllLibrariesHasThumbnail +Indicates if the part has a thumbnail. + + ## Values diff --git a/docs/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.md b/docs/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.md new file mode 100644 index 0000000..94bfc80 --- /dev/null +++ b/docs/Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.md @@ -0,0 +1,19 @@ +# GetSearchAllLibrariesLibraryOptimizedForStreaming + +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true + + + +## Supported Types + +### GetSearchAllLibrariesOptimizedForStreamingLibrary1 + +```csharp +GetSearchAllLibrariesLibraryOptimizedForStreaming.CreateGetSearchAllLibrariesOptimizedForStreamingLibrary1(/* values here */); +``` + +### Boolean + +```csharp +GetSearchAllLibrariesLibraryOptimizedForStreaming.CreateBoolean(/* values here */); +``` diff --git a/docs/Models/Requests/GetSearchAllLibrariesLocation.md b/docs/Models/Requests/GetSearchAllLibrariesLocation.md index 6956983..520d682 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesLocation.md +++ b/docs/Models/Requests/GetSearchAllLibrariesLocation.md @@ -1,8 +1,10 @@ # GetSearchAllLibrariesLocation +The folder path for the media item. + ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Path` | *string* | :heavy_minus_sign: | N/A | /TV Shows/House | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `Path` | *string* | :heavy_check_mark: | N/A | /TV Shows/Clarkson's Farm | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesMedia.md b/docs/Models/Requests/GetSearchAllLibrariesMedia.md index 5141b9c..1c3a7bd 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesMedia.md +++ b/docs/Models/Requests/GetSearchAllLibrariesMedia.md @@ -3,23 +3,24 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `Id` | *int* | :heavy_check_mark: | N/A | 119534 | -| `Duration` | *int* | :heavy_minus_sign: | N/A | 11558112 | -| `Bitrate` | *int* | :heavy_minus_sign: | N/A | 25025 | -| `Width` | *int* | :heavy_minus_sign: | N/A | 3840 | -| `Height` | *int* | :heavy_minus_sign: | N/A | 2072 | -| `AspectRatio` | *double* | :heavy_minus_sign: | N/A | 1.85 | -| `AudioProfile` | *string* | :heavy_minus_sign: | N/A | dts | -| `AudioChannels` | *int* | :heavy_minus_sign: | N/A | 6 | -| `AudioCodec` | *string* | :heavy_minus_sign: | N/A | eac3 | -| `VideoCodec` | *string* | :heavy_minus_sign: | N/A | hevc | -| `VideoResolution` | *string* | :heavy_minus_sign: | N/A | 4k | -| `Container` | *string* | :heavy_check_mark: | N/A | mkv | -| `VideoFrameRate` | *string* | :heavy_minus_sign: | N/A | 24p | -| `VideoProfile` | *string* | :heavy_minus_sign: | N/A | main 10 | -| `HasVoiceActivity` | *bool* | :heavy_minus_sign: | N/A | false | -| `OptimizedForStreaming` | [GetSearchAllLibrariesOptimizedForStreaming](../../Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.md) | :heavy_minus_sign: | N/A | 1 | -| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | -| `Part` | List<[GetSearchAllLibrariesPart](../../Models/Requests/GetSearchAllLibrariesPart.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Id` | *long* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `Duration` | *int* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `Bitrate` | *int* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `Width` | *int* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `Height` | *int* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `AspectRatio` | *float* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `AudioChannels` | *int* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `DisplayOffset` | *int* | :heavy_minus_sign: | N/A | 50 | +| `AudioCodec` | *string* | :heavy_minus_sign: | Audio codec used. | aac | +| `VideoCodec` | *string* | :heavy_minus_sign: | Video codec used. | hevc | +| `VideoResolution` | *string* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `Container` | *string* | :heavy_minus_sign: | Container format of the media. | mp4 | +| `VideoFrameRate` | *string* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `VideoProfile` | *string* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `HasVoiceActivity` | *bool* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `AudioProfile` | *string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `OptimizedForStreaming` | [GetSearchAllLibrariesOptimizedForStreaming](../../Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | Indicates whether the media has 64-bit offsets.
This is relevant for media files that may require larger offsets than what 32-bit integers can provide.
| false | +| `Part` | List<[GetSearchAllLibrariesPart](../../Models/Requests/GetSearchAllLibrariesPart.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesMediaContainer.md b/docs/Models/Requests/GetSearchAllLibrariesMediaContainer.md index 487a67a..c3857f0 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesMediaContainer.md +++ b/docs/Models/Requests/GetSearchAllLibrariesMediaContainer.md @@ -3,7 +3,14 @@ ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | -| `Size` | *double* | :heavy_check_mark: | N/A | -| `SearchResult` | List<[SearchResult](../../Models/Requests/SearchResult.md)> | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `Size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `AllowSync` | *bool* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | +| `Identifier` | *string* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The unique identifier for the library section. | 2 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | TV Series | +| `LibrarySectionUUID` | *string* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 | +| `MediaTagPrefix` | *string* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `MediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 | +| `SearchResult` | List<[SearchResult](../../Models/Requests/SearchResult.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesMediaGuid.md b/docs/Models/Requests/GetSearchAllLibrariesMediaGuid.md deleted file mode 100644 index 284be1b..0000000 --- a/docs/Models/Requests/GetSearchAllLibrariesMediaGuid.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetSearchAllLibrariesMediaGuid - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `Id` | *string* | :heavy_check_mark: | Can be one of the following formats:
imdb://tt13015952, tmdb://2434012, tvdb://7945991
| imdb://tt13015952 | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesMetaDataRating.md b/docs/Models/Requests/GetSearchAllLibrariesMetaDataRating.md deleted file mode 100644 index d10c72f..0000000 --- a/docs/Models/Requests/GetSearchAllLibrariesMetaDataRating.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetSearchAllLibrariesMetaDataRating - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `Image` | *string* | :heavy_check_mark: | A URI or path to the rating image. | themoviedb://image.rating | -| `Value` | *float* | :heavy_check_mark: | The value of the rating. | 3 | -| `Type` | *string* | :heavy_check_mark: | The type of rating (e.g., audience, critic). | audience | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesMetadata.md b/docs/Models/Requests/GetSearchAllLibrariesMetadata.md index fc60f13..1f99ebf 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesMetadata.md +++ b/docs/Models/Requests/GetSearchAllLibrariesMetadata.md @@ -1,83 +1,82 @@ # GetSearchAllLibrariesMetadata +Unknown + + ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `RatingKey` | *string* | :heavy_check_mark: | The rating key (Media ID) of this media item.
Note: This is always an integer, but is represented as a string in the API.
| 58683 | -| `Key` | *string* | :heavy_check_mark: | N/A | /library/metadata/58683 | -| `Guid` | *string* | :heavy_check_mark: | N/A | plex://movie/5d7768ba96b655001fdc0408 | -| `Studio` | *string* | :heavy_minus_sign: | N/A | 20th Century Studios | -| `SkipChildren` | *bool* | :heavy_minus_sign: | N/A | false | -| `LibrarySectionID` | *long* | :heavy_minus_sign: | N/A | 1 | -| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | N/A | Movies | -| `LibrarySectionKey` | *string* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `Type` | [GetSearchAllLibrariesType](../../Models/Requests/GetSearchAllLibrariesType.md) | :heavy_check_mark: | The type of media content in the Plex library. This can represent videos, music, or photos.
| movie | -| `Title` | *string* | :heavy_check_mark: | N/A | Avatar: The Way of Water | -| `Slug` | *string* | :heavy_minus_sign: | N/A | 4-for-texas | -| `ContentRating` | *string* | :heavy_minus_sign: | N/A | PG-13 | -| `Summary` | *string* | :heavy_check_mark: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. | -| `Rating` | *double* | :heavy_minus_sign: | N/A | 7.6 | -| `AudienceRating` | *double* | :heavy_minus_sign: | N/A | 9.2 | -| `Year` | *int* | :heavy_minus_sign: | N/A | 2022 | -| `SeasonCount` | *int* | :heavy_minus_sign: | N/A | 2022 | -| `Tagline` | *string* | :heavy_minus_sign: | N/A | Return to Pandora. | -| `FlattenSeasons` | [GetSearchAllLibrariesFlattenSeasons](../../Models/Requests/GetSearchAllLibrariesFlattenSeasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show). | 1 | -| `EpisodeSort` | [GetSearchAllLibrariesEpisodeSort](../../Models/Requests/GetSearchAllLibrariesEpisodeSort.md) | :heavy_minus_sign: | Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first). | 0 | -| `EnableCreditsMarkerGeneration` | [GetSearchAllLibrariesEnableCreditsMarkerGeneration](../../Models/Requests/GetSearchAllLibrariesEnableCreditsMarkerGeneration.md) | :heavy_minus_sign: | Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled). | -1 | -| `ShowOrdering` | [GetSearchAllLibrariesShowOrdering](../../Models/Requests/GetSearchAllLibrariesShowOrdering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| absolute | -| `Thumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | -| `Art` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | -| `Banner` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | -| `Duration` | *int* | :heavy_minus_sign: | N/A | 11558112 | -| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC | -| `AddedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | -| `UpdatedAt` | *long* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | -| `AudienceRatingImage` | *string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | -| `ChapterSource` | *string* | :heavy_minus_sign: | N/A | media | -| `PrimaryExtraKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/58684 | -| `RatingImage` | *string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | -| `GrandparentRatingKey` | *string* | :heavy_minus_sign: | N/A | 66 | -| `GrandparentGuid` | *string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `GrandparentKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `GrandparentTitle` | *string* | :heavy_minus_sign: | N/A | Caprica | -| `GrandparentThumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `ParentSlug` | *string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `GrandparentSlug` | *string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | -| `GrandparentArt` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 | -| `GrandparentTheme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | -| `Media` | List<[GetSearchAllLibrariesMedia](../../Models/Requests/GetSearchAllLibrariesMedia.md)> | :heavy_minus_sign: | The Media object is only included when type query is `4` or higher.
| | -| `Genre` | List<[GetSearchAllLibrariesGenre](../../Models/Requests/GetSearchAllLibrariesGenre.md)> | :heavy_minus_sign: | N/A | | -| `Country` | List<[GetSearchAllLibrariesCountry](../../Models/Requests/GetSearchAllLibrariesCountry.md)> | :heavy_minus_sign: | N/A | | -| `Director` | List<[GetSearchAllLibrariesDirector](../../Models/Requests/GetSearchAllLibrariesDirector.md)> | :heavy_minus_sign: | N/A | | -| `Writer` | List<[GetSearchAllLibrariesWriter](../../Models/Requests/GetSearchAllLibrariesWriter.md)> | :heavy_minus_sign: | N/A | | -| `Collection` | List<[GetSearchAllLibrariesCollection](../../Models/Requests/GetSearchAllLibrariesCollection.md)> | :heavy_minus_sign: | N/A | | -| `Role` | List<[GetSearchAllLibrariesRole](../../Models/Requests/GetSearchAllLibrariesRole.md)> | :heavy_minus_sign: | N/A | | -| `Location` | List<[GetSearchAllLibrariesLocation](../../Models/Requests/GetSearchAllLibrariesLocation.md)> | :heavy_minus_sign: | N/A | | -| `MediaGuid` | List<[GetSearchAllLibrariesMediaGuid](../../Models/Requests/GetSearchAllLibrariesMediaGuid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | -| `UltraBlurColors` | [GetSearchAllLibrariesUltraBlurColors](../../Models/Requests/GetSearchAllLibrariesUltraBlurColors.md) | :heavy_minus_sign: | N/A | | -| `MetaDataRating` | List<[GetSearchAllLibrariesMetaDataRating](../../Models/Requests/GetSearchAllLibrariesMetaDataRating.md)> | :heavy_minus_sign: | N/A | | -| `Image` | List<[GetSearchAllLibrariesImage](../../Models/Requests/GetSearchAllLibrariesImage.md)> | :heavy_minus_sign: | N/A | | -| `TitleSort` | *string* | :heavy_minus_sign: | N/A | Whale | -| `ViewCount` | *int* | :heavy_minus_sign: | N/A | 1 | -| `LastViewedAt` | *int* | :heavy_minus_sign: | N/A | 1682752242 | -| `OriginalTitle` | *string* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 | -| `ViewOffset` | *int* | :heavy_minus_sign: | N/A | 5222500 | -| `SkipCount` | *int* | :heavy_minus_sign: | N/A | 1 | -| `Index` | *int* | :heavy_minus_sign: | N/A | 1 | -| `Theme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 | -| `LeafCount` | *int* | :heavy_minus_sign: | N/A | 14 | -| `ViewedLeafCount` | *int* | :heavy_minus_sign: | N/A | 0 | -| `ChildCount` | *int* | :heavy_minus_sign: | N/A | 1 | -| `HasPremiumExtras` | *string* | :heavy_minus_sign: | N/A | 1 | -| `HasPremiumPrimaryExtra` | *string* | :heavy_minus_sign: | N/A | 1 | -| `ParentRatingKey` | *string* | :heavy_minus_sign: | The rating key of the parent item.
| 66 | -| `ParentGuid` | *string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | -| `ParentStudio` | *string* | :heavy_minus_sign: | N/A | UCP | -| `ParentKey` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66 | -| `ParentTitle` | *string* | :heavy_minus_sign: | N/A | Caprica | -| `ParentIndex` | *int* | :heavy_minus_sign: | N/A | 1 | -| `ParentYear` | *int* | :heavy_minus_sign: | N/A | 2010 | -| `ParentThumb` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | -| `ParentTheme` | *string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `RatingKey` | *string* | :heavy_check_mark: | The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. | 58683 | +| `Key` | *string* | :heavy_check_mark: | The unique key for the media item. | /library/metadata/58683 | +| `Guid` | *string* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 | +| `Slug` | *string* | :heavy_check_mark: | A URL‐friendly version of the media title. | 4-for-texas | +| `Studio` | *string* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios | +| `Type` | [GetSearchAllLibrariesType](../../Models/Requests/GetSearchAllLibrariesType.md) | :heavy_check_mark: | N/A | movie | +| `Title` | *string* | :heavy_check_mark: | The title of the media item. | Avatar: The Way of Water | +| `Banner` | *string* | :heavy_check_mark: | The banner image URL for the media item. | /library/metadata/58683/banner/1703239236 | +| `TitleSort` | *string* | :heavy_check_mark: | The sort title used for ordering media items. | Whale | +| `ContentRating` | *string* | :heavy_minus_sign: | The content rating for the media item. | PG-13 | +| `Summary` | *string* | :heavy_check_mark: | A synopsis of the media item. | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.
Once a familiar threat returns to finish what was previously started, Jake must
work with Neytiri and the army of the Na'vi race to protect their home.
| +| `Rating` | *float* | :heavy_check_mark: | The critic rating for the media item. | 7.6 | +| `AudienceRating` | *double* | :heavy_check_mark: | The audience rating for the media item. | 9.2 | +| `Year` | *int* | :heavy_minus_sign: | The release year of the media item. | 2022 | +| `Tagline` | *string* | :heavy_check_mark: | A brief tagline for the media item. | Return to Pandora. | +| `Thumb` | *string* | :heavy_check_mark: | The thumbnail image URL for the media item. | /library/metadata/58683/thumb/1703239236 | +| `Art` | *string* | :heavy_check_mark: | The art image URL for the media item. | /library/metadata/58683/art/1703239236 | +| `Theme` | *string* | :heavy_check_mark: | The theme URL for the media item. | /library/metadata/1/theme/1705636920 | +| `Index` | *int* | :heavy_check_mark: | The index position of the media item. | 1 | +| `LeafCount` | *int* | :heavy_minus_sign: | The number of leaf items (end nodes) under this media item. | 14 | +| `ViewedLeafCount` | *int* | :heavy_minus_sign: | The number of leaf items that have been viewed. | 0 | +| `ChildCount` | *int* | :heavy_check_mark: | The number of child items associated with this media item. | 1 | +| `SeasonCount` | *int* | :heavy_check_mark: | The total number of seasons (for TV shows). | 2022 | +| `Duration` | *int* | :heavy_check_mark: | The duration of the media item in milliseconds. | 11558112 | +| `OriginallyAvailableAt` | [LocalDate](https://nodatime.org/3.1.x/api/NodaTime.LocalDate.html) | :heavy_minus_sign: | The original release date of the media item. | 2022-12-14 | +| `AddedAt` | *long* | :heavy_check_mark: | N/A | 1556281940 | +| `UpdatedAt` | *long* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | +| `ParentYear` | *int* | :heavy_minus_sign: | The release year of the parent media item. | 2010 | +| `AudienceRatingImage` | *string* | :heavy_minus_sign: | The URL for the audience rating image. | rottentomatoes://image.rating.upright | +| `ChapterSource` | *string* | :heavy_minus_sign: | The source from which chapter data is derived. | media | +| `PrimaryExtraKey` | *string* | :heavy_minus_sign: | The primary extra key associated with this media item. | /library/metadata/58684 | +| `OriginalTitle` | *string* | :heavy_minus_sign: | The original title of the media item (if different). | 映画 ブラッククローバー 魔法帝の剣 | +| `ParentRatingKey` | *string* | :heavy_minus_sign: | The rating key of the parent media item. | 66 | +| `GrandparentRatingKey` | *string* | :heavy_minus_sign: | The rating key of the grandparent media item. | 66 | +| `ParentGuid` | *string* | :heavy_minus_sign: | The GUID of the parent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `GrandparentGuid` | *string* | :heavy_minus_sign: | The GUID of the grandparent media item. | plex://show/5d9c081b170e24001f2a7be4 | +| `GrandparentSlug` | *string* | :heavy_minus_sign: | The slug for the grandparent media item. | alice-in-borderland-2020 | +| `GrandparentKey` | *string* | :heavy_minus_sign: | The key of the grandparent media item. | /library/metadata/66 | +| `ParentKey` | *string* | :heavy_minus_sign: | The key of the parent media item. | /library/metadata/66 | +| `GrandparentTitle` | *string* | :heavy_minus_sign: | The title of the grandparent media item. | Caprica | +| `GrandparentThumb` | *string* | :heavy_minus_sign: | The thumbnail URL for the grandparent media item. | /library/metadata/66/thumb/1705716261 | +| `GrandparentTheme` | *string* | :heavy_minus_sign: | The theme URL for the grandparent media item. | /library/metadata/66/theme/1705716261 | +| `GrandparentArt` | *string* | :heavy_minus_sign: | The art URL for the grandparent media item. | /library/metadata/66/art/1705716261 | +| `ParentTitle` | *string* | :heavy_minus_sign: | The title of the parent media item. | Caprica | +| `ParentIndex` | *int* | :heavy_minus_sign: | The index position of the parent media item. | 1 | +| `ParentThumb` | *string* | :heavy_minus_sign: | The thumbnail URL for the parent media item. | /library/metadata/66/thumb/1705716261 | +| `RatingImage` | *string* | :heavy_minus_sign: | The URL for the rating image. | rottentomatoes://image.rating.ripe | +| `ViewCount` | *int* | :heavy_minus_sign: | The number of times this media item has been viewed. | 1 | +| `ViewOffset` | *int* | :heavy_minus_sign: | The current playback offset (in milliseconds). | 5222500 | +| `SkipCount` | *int* | :heavy_minus_sign: | The number of times this media item has been skipped. | 1 | +| `Subtype` | *string* | :heavy_minus_sign: | A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. | clip | +| `LastRatedAt` | *long* | :heavy_minus_sign: | The Unix timestamp representing the last time the item was rated. | 1721813113 | +| `CreatedAtAccuracy` | *string* | :heavy_minus_sign: | The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). | epoch,local | +| `CreatedAtTZOffset` | *string* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 | +| `LastViewedAt` | *int* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 | +| `UserRating` | *float* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 | +| `Image` | List<[GetSearchAllLibrariesImage](../../Models/Requests/GetSearchAllLibrariesImage.md)> | :heavy_minus_sign: | N/A | | +| `UltraBlurColors` | [GetSearchAllLibrariesUltraBlurColors](../../Models/Requests/GetSearchAllLibrariesUltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `Guids` | List<[GetSearchAllLibrariesGuids](../../Models/Requests/GetSearchAllLibrariesGuids.md)> | :heavy_minus_sign: | N/A | | +| `LibrarySectionID` | *long* | :heavy_minus_sign: | The identifier for the library section. | 1 | +| `LibrarySectionTitle` | *string* | :heavy_minus_sign: | The title of the library section. | Movies | +| `LibrarySectionKey` | *string* | :heavy_minus_sign: | The key corresponding to the library section. | /library/sections/1 | +| `ShowOrdering` | [GetSearchAllLibrariesShowOrdering](../../Models/Requests/GetSearchAllLibrariesShowOrdering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show.
Options:
- None = Library default
- tmdbAiring = The Movie Database (Aired)
- aired = TheTVDB (Aired)
- dvd = TheTVDB (DVD)
- absolute = TheTVDB (Absolute)
| absolute | +| `FlattenSeasons` | [GetSearchAllLibrariesFlattenSeasons](../../Models/Requests/GetSearchAllLibrariesFlattenSeasons.md) | :heavy_minus_sign: | Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
| 1 | +| `SkipChildren` | *bool* | :heavy_minus_sign: | Indicates whether child items should be skipped. | false | +| `Media` | List<[GetSearchAllLibrariesMedia](../../Models/Requests/GetSearchAllLibrariesMedia.md)> | :heavy_minus_sign: | N/A | | +| `Genre` | List<[GetSearchAllLibrariesGenre](../../Models/Requests/GetSearchAllLibrariesGenre.md)> | :heavy_minus_sign: | N/A | | +| `Country` | List<[GetSearchAllLibrariesCountry](../../Models/Requests/GetSearchAllLibrariesCountry.md)> | :heavy_minus_sign: | N/A | | +| `Director` | List<[GetSearchAllLibrariesDirector](../../Models/Requests/GetSearchAllLibrariesDirector.md)> | :heavy_minus_sign: | N/A | | +| `Writer` | List<[GetSearchAllLibrariesWriter](../../Models/Requests/GetSearchAllLibrariesWriter.md)> | :heavy_minus_sign: | N/A | | +| `Role` | List<[GetSearchAllLibrariesRole](../../Models/Requests/GetSearchAllLibrariesRole.md)> | :heavy_minus_sign: | N/A | | +| `Location` | List<[GetSearchAllLibrariesLocation](../../Models/Requests/GetSearchAllLibrariesLocation.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.md b/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.md index 0011a0e..69a6052 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.md +++ b/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming.md @@ -1,9 +1,18 @@ # GetSearchAllLibrariesOptimizedForStreaming +Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true -## Values -| Name | Value | -| --------- | --------- | -| `Disable` | 0 | -| `Enable` | 1 | \ No newline at end of file +## Supported Types + +### GetSearchAllLibrariesOptimizedForStreaming1 + +```csharp +GetSearchAllLibrariesOptimizedForStreaming.CreateGetSearchAllLibrariesOptimizedForStreaming1(/* values here */); +``` + +### Boolean + +```csharp +GetSearchAllLibrariesOptimizedForStreaming.CreateBoolean(/* values here */); +``` diff --git a/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.md b/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.md new file mode 100644 index 0000000..8199eae --- /dev/null +++ b/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreaming1.md @@ -0,0 +1,9 @@ +# GetSearchAllLibrariesOptimizedForStreaming1 + + +## Values + +| Name | Value | +| ------ | ------ | +| `Zero` | 0 | +| `One` | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.md b/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.md new file mode 100644 index 0000000..aa01319 --- /dev/null +++ b/docs/Models/Requests/GetSearchAllLibrariesOptimizedForStreamingLibrary1.md @@ -0,0 +1,9 @@ +# GetSearchAllLibrariesOptimizedForStreamingLibrary1 + + +## Values + +| Name | Value | +| ------ | ------ | +| `Zero` | 0 | +| `One` | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesPart.md b/docs/Models/Requests/GetSearchAllLibrariesPart.md index 9ff80b6..0220ee6 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesPart.md +++ b/docs/Models/Requests/GetSearchAllLibrariesPart.md @@ -3,18 +3,20 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `Id` | *int* | :heavy_check_mark: | N/A | 119542 | -| `Key` | *string* | :heavy_check_mark: | N/A | /library/parts/119542/1680457526/file.mkv | -| `Duration` | *int* | :heavy_minus_sign: | N/A | 11558112 | -| `File` | *string* | :heavy_check_mark: | N/A | /movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv | -| `Size` | *long* | :heavy_check_mark: | N/A | 36158371307 | -| `Container` | *string* | :heavy_check_mark: | The container format of the media file.
| mkv | -| `AudioProfile` | *string* | :heavy_minus_sign: | N/A | dts | -| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | -| `OptimizedForStreaming` | *bool* | :heavy_minus_sign: | N/A | false | -| `VideoProfile` | *string* | :heavy_minus_sign: | N/A | main 10 | -| `Indexes` | *string* | :heavy_minus_sign: | N/A | sd | -| `HasThumbnail` | [GetSearchAllLibrariesHasThumbnail](../../Models/Requests/GetSearchAllLibrariesHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | -| `Stream` | List<[GetSearchAllLibrariesStream](../../Models/Requests/GetSearchAllLibrariesStream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `Accessible` | *bool* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `Exists` | *bool* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `Id` | *long* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `Key` | *string* | :heavy_minus_sign: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `Indexes` | *string* | :heavy_minus_sign: | N/A | sd | +| `Duration` | *int* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | +| `File` | *string* | :heavy_minus_sign: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `Size` | *long* | :heavy_minus_sign: | File size in bytes. | 30649952104 | +| `PacketLength` | *int* | :heavy_minus_sign: | N/A | 188 | +| `Container` | *string* | :heavy_minus_sign: | Container format of the part. | mkv | +| `VideoProfile` | *string* | :heavy_minus_sign: | Video profile for the part. | main 10 | +| `AudioProfile` | *string* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `Has64bitOffsets` | *bool* | :heavy_minus_sign: | N/A | false | +| `OptimizedForStreaming` | [GetSearchAllLibrariesLibraryOptimizedForStreaming](../../Models/Requests/GetSearchAllLibrariesLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
| | +| `HasThumbnail` | [GetSearchAllLibrariesHasThumbnail](../../Models/Requests/GetSearchAllLibrariesHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesRole.md b/docs/Models/Requests/GetSearchAllLibrariesRole.md index 2413aa4..ba389d7 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesRole.md +++ b/docs/Models/Requests/GetSearchAllLibrariesRole.md @@ -3,11 +3,9 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `Id` | *long* | :heavy_minus_sign: | The ID of the tag or actor. | 294129 | -| `Filter` | *string* | :heavy_minus_sign: | The filter used to find the actor or tag. | actor=294129 | -| `Thumb` | *string* | :heavy_minus_sign: | The thumbnail of the actor | https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg | -| `Tag` | *string* | :heavy_minus_sign: | The name of the tag or actor. | Mike Smith | -| `TagKey` | *string* | :heavy_minus_sign: | Unique identifier for the tag. | 668e7e7b22bcad9064350c91 | -| `Role` | *string* | :heavy_minus_sign: | The role of the actor or tag in the media. | Self | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | The unique identifier for the role.
NOTE: This is different for each Plex server and is not globally unique.
| 126522 | +| `Tag` | *string* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | +| `Role` | *string* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | +| `Thumb` | *string* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesShowOrdering.md b/docs/Models/Requests/GetSearchAllLibrariesShowOrdering.md index a33274e..6331527 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesShowOrdering.md +++ b/docs/Models/Requests/GetSearchAllLibrariesShowOrdering.md @@ -1,11 +1,12 @@ # GetSearchAllLibrariesShowOrdering Setting that indicates the episode ordering for the show. -None = Library default, -tmdbAiring = The Movie Database (Aired), -aired = TheTVDB (Aired), -dvd = TheTVDB (DVD), -absolute = TheTVDB (Absolute)). +Options: + - None = Library default + - tmdbAiring = The Movie Database (Aired) + - aired = TheTVDB (Aired) + - dvd = TheTVDB (DVD) + - absolute = TheTVDB (Absolute) diff --git a/docs/Models/Requests/GetSearchAllLibrariesStream.md b/docs/Models/Requests/GetSearchAllLibrariesStream.md deleted file mode 100644 index 5d5335d..0000000 --- a/docs/Models/Requests/GetSearchAllLibrariesStream.md +++ /dev/null @@ -1,45 +0,0 @@ -# GetSearchAllLibrariesStream - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -| `Id` | *long* | :heavy_check_mark: | N/A | 272796 | -| `StreamType` | *long* | :heavy_check_mark: | Type of stream (1 = video, 2 = audio, 3 = subtitle) | 1 | -| `Default` | *bool* | :heavy_minus_sign: | Indicates if this is the default stream | true | -| `Selected` | *bool* | :heavy_minus_sign: | Indicates if the stream is selected | true | -| `Codec` | *string* | :heavy_check_mark: | Codec used by the stream | h264 | -| `Index` | *long* | :heavy_check_mark: | The index of the stream | 0 | -| `Bitrate` | *long* | :heavy_minus_sign: | The bitrate of the stream in kbps | 6273 | -| `ColorPrimaries` | *string* | :heavy_minus_sign: | The color primaries of the video stream | bt709 | -| `ColorRange` | *string* | :heavy_minus_sign: | The color range of the video stream | tv | -| `ColorSpace` | *string* | :heavy_minus_sign: | The color space of the video stream | bt709 | -| `ColorTrc` | *string* | :heavy_minus_sign: | The transfer characteristics (TRC) of the video stream | bt709 | -| `BitDepth` | *long* | :heavy_minus_sign: | The bit depth of the video stream | 8 | -| `ChromaLocation` | *string* | :heavy_minus_sign: | The chroma location of the video stream | left | -| `StreamIdentifier` | *string* | :heavy_minus_sign: | The identifier of the video stream | 2 | -| `ChromaSubsampling` | *string* | :heavy_minus_sign: | The chroma subsampling format | 4:2:0 | -| `CodedHeight` | *long* | :heavy_minus_sign: | The coded height of the video stream | 1088 | -| `CodedWidth` | *long* | :heavy_minus_sign: | The coded width of the video stream | 1920 | -| `FrameRate` | *double* | :heavy_minus_sign: | The frame rate of the video stream | 29.97 | -| `HasScalingMatrix` | *bool* | :heavy_minus_sign: | Indicates if the stream has a scaling matrix | false | -| `HearingImpaired` | *bool* | :heavy_minus_sign: | N/A | false | -| `ClosedCaptions` | *bool* | :heavy_minus_sign: | N/A | false | -| `EmbeddedInVideo` | *string* | :heavy_minus_sign: | N/A | 1 | -| `Height` | *long* | :heavy_minus_sign: | The height of the video stream | 1080 | -| `Level` | *long* | :heavy_minus_sign: | The level of the video codec | 40 | -| `Profile` | *string* | :heavy_minus_sign: | The profile of the video codec | main | -| `RefFrames` | *long* | :heavy_minus_sign: | Number of reference frames | 4 | -| `ScanType` | *string* | :heavy_minus_sign: | The scan type (progressive or interlaced) | progressive | -| `Width` | *long* | :heavy_minus_sign: | The width of the video stream | 1920 | -| `DisplayTitle` | *string* | :heavy_minus_sign: | Display title of the stream | 1080p (H.264) | -| `ExtendedDisplayTitle` | *string* | :heavy_minus_sign: | Extended display title of the stream | 1080p (H.264) | -| `Channels` | *long* | :heavy_minus_sign: | Number of audio channels (for audio streams) | 2 | -| `Language` | *string* | :heavy_minus_sign: | The language of the stream (for audio/subtitle streams) | English | -| `LanguageTag` | *string* | :heavy_minus_sign: | Language tag of the stream | en | -| `LanguageCode` | *string* | :heavy_minus_sign: | Language code of the stream | eng | -| `AudioChannelLayout` | *string* | :heavy_minus_sign: | The audio channel layout | stereo | -| `SamplingRate` | *long* | :heavy_minus_sign: | Sampling rate of the audio stream in Hz | 48000 | -| `Title` | *string* | :heavy_minus_sign: | Title of the subtitle track (for subtitle streams) | English | -| `CanAutoSync` | *bool* | :heavy_minus_sign: | Indicates if the subtitle stream can auto-sync | false | \ No newline at end of file diff --git a/docs/Models/Requests/GetSearchAllLibrariesWriter.md b/docs/Models/Requests/GetSearchAllLibrariesWriter.md index e655303..c3ab087 100644 --- a/docs/Models/Requests/GetSearchAllLibrariesWriter.md +++ b/docs/Models/Requests/GetSearchAllLibrariesWriter.md @@ -3,6 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `Tag` | *string* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `Id` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | +| `Tag` | *string* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | +| `Thumb` | *string* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the writer. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file diff --git a/docs/Models/Requests/MediaGuid.md b/docs/Models/Requests/MediaGuid.md deleted file mode 100644 index f86ed3f..0000000 --- a/docs/Models/Requests/MediaGuid.md +++ /dev/null @@ -1,8 +0,0 @@ -# MediaGuid - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `Id` | *string* | :heavy_check_mark: | Can be one of the following formats:
imdb://tt13015952, tmdb://2434012, tvdb://7945991
| imdb://tt13015952 | \ No newline at end of file diff --git a/docs/Models/Requests/SearchResult.md b/docs/Models/Requests/SearchResult.md index 67bbb8c..d2ebc37 100644 --- a/docs/Models/Requests/SearchResult.md +++ b/docs/Models/Requests/SearchResult.md @@ -3,7 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `Score` | *float* | :heavy_check_mark: | N/A | -| `Metadata` | [GetSearchAllLibrariesMetadata](../../Models/Requests/GetSearchAllLibrariesMetadata.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `Score` | *float* | :heavy_check_mark: | The score of the search result, typically a float value between 0 and 1. | 0.92 | +| `Directory` | [GetSearchAllLibrariesDirectory](../../Models/Requests/GetSearchAllLibrariesDirectory.md) | :heavy_minus_sign: | N/A | | +| `Metadata` | [GetSearchAllLibrariesMetadata](../../Models/Requests/GetSearchAllLibrariesMetadata.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Requests/ShowOrdering.md b/docs/Models/Requests/ShowOrdering.md index b0ee15c..2965ddf 100644 --- a/docs/Models/Requests/ShowOrdering.md +++ b/docs/Models/Requests/ShowOrdering.md @@ -1,11 +1,12 @@ # ShowOrdering Setting that indicates the episode ordering for the show. -None = Library default, -tmdbAiring = The Movie Database (Aired), -aired = TheTVDB (Aired), -dvd = TheTVDB (DVD), -absolute = TheTVDB (Absolute)). +Options: + - None = Library default + - tmdbAiring = The Movie Database (Aired) + - aired = TheTVDB (Aired) + - dvd = TheTVDB (DVD) + - absolute = TheTVDB (Absolute) diff --git a/docs/Models/Requests/Stream.md b/docs/Models/Requests/Stream.md index 1788724..739e042 100644 --- a/docs/Models/Requests/Stream.md +++ b/docs/Models/Requests/Stream.md @@ -6,7 +6,7 @@ | Field | Type | Required | Description | Example | | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | | `Id` | *long* | :heavy_check_mark: | Unique stream identifier. | 1002625 | -| `StreamType` | [StreamType](../../Models/Requests/StreamType.md) | :heavy_check_mark: | Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
| 1 | +| `StreamType` | *long* | :heavy_check_mark: | Stream type:
- VIDEO = 1
- AUDIO = 2
- SUBTITLE = 3
| | | `Format` | *string* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt | | `Default` | *bool* | :heavy_minus_sign: | Indicates if this stream is default. | true | | `Codec` | *string* | :heavy_check_mark: | Codec used by the stream. | hevc | diff --git a/docs/Models/Requests/StreamType.md b/docs/Models/Requests/StreamType.md deleted file mode 100644 index d953ced..0000000 --- a/docs/Models/Requests/StreamType.md +++ /dev/null @@ -1,16 +0,0 @@ -# StreamType - -Stream type: - - 1 = video - - 2 = audio - - 3 = subtitle - - - -## Values - -| Name | Value | -| ---------- | ---------- | -| `Video` | 1 | -| `Audio` | 2 | -| `Subtitle` | 3 | \ No newline at end of file