From 8ef7dbc7bcd35740d9b664b73b309584af1a3251 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Sun, 3 Mar 2024 00:44:55 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc 0.0.3, Speakeasy CLI 1.200.0 --- .gitattributes | 12 + .gitignore | 14 +- .speakeasy/gen.lock | 864 ++++++++++++++++++ README.md | 68 ++ RELEASES.md | 9 + USAGE.md | 30 + docs/models/operations/Account.md | 15 + docs/models/operations/Activity.md | 15 + .../operations/AddPlaylistContentsErrors.md | 10 + .../AddPlaylistContentsMediaContainer.md | 11 + .../operations/AddPlaylistContentsMetadata.md | 20 + ...ddPlaylistContentsPlaylistsResponseBody.md | 10 + .../operations/AddPlaylistContentsRequest.md | 10 + .../operations/AddPlaylistContentsResponse.md | 12 + .../AddPlaylistContentsResponseBody.md | 10 + docs/models/operations/ApplyUpdatesErrors.md | 10 + docs/models/operations/ApplyUpdatesRequest.md | 9 + .../models/operations/ApplyUpdatesResponse.md | 11 + .../operations/ApplyUpdatesResponseBody.md | 10 + docs/models/operations/ButlerTask.md | 13 + docs/models/operations/ButlerTasks.md | 8 + .../CancelServerActivitiesErrors.md | 10 + .../CancelServerActivitiesRequest.md | 8 + .../CancelServerActivitiesResponse.md | 11 + .../CancelServerActivitiesResponseBody.md | 10 + .../operations/CheckForUpdatesErrors.md | 10 + .../operations/CheckForUpdatesRequest.md | 8 + .../operations/CheckForUpdatesResponse.md | 11 + .../operations/CheckForUpdatesResponseBody.md | 10 + .../operations/ClearPlaylistContentsErrors.md | 10 + .../ClearPlaylistContentsRequest.md | 8 + .../ClearPlaylistContentsResponse.md | 11 + .../ClearPlaylistContentsResponseBody.md | 10 + docs/models/operations/Context.md | 8 + docs/models/operations/Country.md | 8 + .../models/operations/CreatePlaylistErrors.md | 10 + .../CreatePlaylistMediaContainer.md | 9 + .../operations/CreatePlaylistMetadata.md | 23 + .../CreatePlaylistPlaylistsResponseBody.md | 10 + .../operations/CreatePlaylistRequest.md | 12 + .../operations/CreatePlaylistResponse.md | 12 + .../operations/CreatePlaylistResponseBody.md | 10 + docs/models/operations/DeleteLibraryErrors.md | 10 + .../models/operations/DeleteLibraryRequest.md | 8 + .../operations/DeleteLibraryResponse.md | 11 + .../operations/DeleteLibraryResponseBody.md | 10 + .../models/operations/DeletePlaylistErrors.md | 10 + .../operations/DeletePlaylistRequest.md | 8 + .../operations/DeletePlaylistResponse.md | 11 + .../operations/DeletePlaylistResponseBody.md | 10 + docs/models/operations/Device.md | 12 + docs/models/operations/Director.md | 8 + docs/models/operations/Directory.md | 10 + docs/models/operations/Download.md | 11 + .../operations/EnablePaperTrailErrors.md | 10 + .../operations/EnablePaperTrailResponse.md | 11 + .../EnablePaperTrailResponseBody.md | 10 + docs/models/operations/Errors.md | 10 + docs/models/operations/Field.md | 11 + docs/models/operations/FieldType.md | 9 + docs/models/operations/Filter.md | 12 + docs/models/operations/Force.md | 15 + docs/models/operations/Genre.md | 8 + .../operations/GetAvailableClientsErrors.md | 10 + .../GetAvailableClientsMediaContainer.md | 9 + .../operations/GetAvailableClientsResponse.md | 12 + .../GetAvailableClientsResponseBody.md | 10 + .../GetAvailableClientsServerResponseBody.md | 10 + .../GetButlerTasksButlerResponseBody.md | 10 + .../models/operations/GetButlerTasksErrors.md | 10 + .../operations/GetButlerTasksResponse.md | 12 + .../operations/GetButlerTasksResponseBody.md | 10 + docs/models/operations/GetDevicesErrors.md | 10 + .../operations/GetDevicesMediaContainer.md | 10 + docs/models/operations/GetDevicesResponse.md | 12 + .../operations/GetDevicesResponseBody.md | 10 + .../GetDevicesServerResponseBody.md | 10 + docs/models/operations/GetFileHashErrors.md | 10 + docs/models/operations/GetFileHashRequest.md | 9 + docs/models/operations/GetFileHashResponse.md | 11 + .../operations/GetFileHashResponseBody.md | 10 + docs/models/operations/GetGlobalHubsErrors.md | 10 + .../GetGlobalHubsHubsResponseBody.md | 10 + .../operations/GetGlobalHubsMediaContainer.md | 11 + .../operations/GetGlobalHubsMetadata.md | 24 + .../models/operations/GetGlobalHubsRequest.md | 9 + .../operations/GetGlobalHubsResponse.md | 12 + .../operations/GetGlobalHubsResponseBody.md | 10 + .../operations/GetLibrariesDirectory.md | 28 + docs/models/operations/GetLibrariesErrors.md | 10 + .../GetLibrariesLibraryResponseBody.md | 10 + .../models/operations/GetLibrariesLocation.md | 9 + .../operations/GetLibrariesMediaContainer.md | 11 + .../models/operations/GetLibrariesResponse.md | 12 + .../operations/GetLibrariesResponseBody.md | 10 + docs/models/operations/GetLibraryDirectory.md | 12 + docs/models/operations/GetLibraryErrors.md | 10 + .../operations/GetLibraryHubsCountry.md | 8 + .../operations/GetLibraryHubsDirector.md | 8 + .../models/operations/GetLibraryHubsErrors.md | 10 + docs/models/operations/GetLibraryHubsGenre.md | 8 + docs/models/operations/GetLibraryHubsHub.md | 19 + .../GetLibraryHubsHubsResponseBody.md | 10 + docs/models/operations/GetLibraryHubsMedia.md | 24 + .../GetLibraryHubsMediaContainer.md | 14 + .../operations/GetLibraryHubsMetadata.md | 41 + docs/models/operations/GetLibraryHubsPart.md | 17 + .../operations/GetLibraryHubsRequest.md | 10 + .../operations/GetLibraryHubsResponse.md | 12 + .../operations/GetLibraryHubsResponseBody.md | 10 + docs/models/operations/GetLibraryHubsRole.md | 8 + .../models/operations/GetLibraryHubsWriter.md | 8 + .../operations/GetLibraryItemsCountry.md | 8 + .../operations/GetLibraryItemsDirector.md | 8 + .../models/operations/GetLibraryItemsGenre.md | 8 + .../models/operations/GetLibraryItemsMedia.md | 21 + .../GetLibraryItemsMediaContainer.md | 23 + .../operations/GetLibraryItemsMetadata.md | 64 ++ docs/models/operations/GetLibraryItemsPart.md | 14 + .../operations/GetLibraryItemsRequest.md | 9 + .../operations/GetLibraryItemsResponse.md | 11 + .../operations/GetLibraryItemsResponseBody.md | 10 + docs/models/operations/GetLibraryItemsRole.md | 8 + .../operations/GetLibraryItemsWriter.md | 8 + .../GetLibraryLibraryResponseBody.md | 10 + .../operations/GetLibraryMediaContainer.md | 22 + docs/models/operations/GetLibraryRequest.md | 9 + docs/models/operations/GetLibraryResponse.md | 12 + .../operations/GetLibraryResponseBody.md | 10 + docs/models/operations/GetLibraryType.md | 14 + .../GetMetadataChildrenDirectory.md | 12 + .../operations/GetMetadataChildrenErrors.md | 10 + .../GetMetadataChildrenLibraryResponseBody.md | 10 + .../GetMetadataChildrenMediaContainer.md | 30 + .../operations/GetMetadataChildrenMetadata.md | 34 + .../operations/GetMetadataChildrenRequest.md | 8 + .../operations/GetMetadataChildrenResponse.md | 12 + .../GetMetadataChildrenResponseBody.md | 10 + docs/models/operations/GetMetadataCountry.md | 10 + docs/models/operations/GetMetadataDirector.md | 12 + docs/models/operations/GetMetadataErrors.md | 10 + docs/models/operations/GetMetadataGenre.md | 10 + .../GetMetadataLibraryResponseBody.md | 10 + docs/models/operations/GetMetadataMedia.md | 24 + .../operations/GetMetadataMediaContainer.md | 16 + docs/models/operations/GetMetadataMetadata.md | 40 + docs/models/operations/GetMetadataPart.md | 18 + docs/models/operations/GetMetadataRequest.md | 8 + docs/models/operations/GetMetadataResponse.md | 12 + .../operations/GetMetadataResponseBody.md | 10 + docs/models/operations/GetMetadataRole.md | 13 + docs/models/operations/GetMetadataWriter.md | 12 + .../operations/GetMyPlexAccountErrors.md | 10 + .../operations/GetMyPlexAccountResponse.md | 12 + .../GetMyPlexAccountResponseBody.md | 10 + .../GetMyPlexAccountServerResponseBody.md | 10 + docs/models/operations/GetOnDeckErrors.md | 10 + docs/models/operations/GetOnDeckGuids.md | 8 + .../GetOnDeckLibraryResponseBody.md | 10 + docs/models/operations/GetOnDeckMedia.md | 22 + .../operations/GetOnDeckMediaContainer.md | 14 + docs/models/operations/GetOnDeckMetadata.md | 43 + docs/models/operations/GetOnDeckPart.md | 16 + docs/models/operations/GetOnDeckResponse.md | 12 + .../operations/GetOnDeckResponseBody.md | 10 + docs/models/operations/GetOnDeckStream.md | 30 + docs/models/operations/GetPinErrors.md | 10 + .../operations/GetPinPlexResponseBody.md | 10 + docs/models/operations/GetPinRequest.md | 9 + docs/models/operations/GetPinResponse.md | 12 + docs/models/operations/GetPinResponseBody.md | 21 + .../operations/GetPlaylistContentsCountry.md | 8 + .../operations/GetPlaylistContentsDirector.md | 8 + .../operations/GetPlaylistContentsErrors.md | 10 + .../operations/GetPlaylistContentsGenre.md | 8 + .../operations/GetPlaylistContentsMedia.md | 24 + .../GetPlaylistContentsMediaContainer.md | 16 + .../operations/GetPlaylistContentsMetadata.md | 39 + .../operations/GetPlaylistContentsPart.md | 17 + ...etPlaylistContentsPlaylistsResponseBody.md | 10 + .../operations/GetPlaylistContentsRequest.md | 9 + .../operations/GetPlaylistContentsResponse.md | 12 + .../GetPlaylistContentsResponseBody.md | 10 + .../operations/GetPlaylistContentsRole.md | 8 + .../operations/GetPlaylistContentsWriter.md | 8 + docs/models/operations/GetPlaylistErrors.md | 10 + .../operations/GetPlaylistMediaContainer.md | 9 + docs/models/operations/GetPlaylistMetadata.md | 22 + .../GetPlaylistPlaylistsResponseBody.md | 10 + docs/models/operations/GetPlaylistRequest.md | 8 + docs/models/operations/GetPlaylistResponse.md | 12 + .../operations/GetPlaylistResponseBody.md | 10 + docs/models/operations/GetPlaylistsErrors.md | 10 + .../operations/GetPlaylistsMediaContainer.md | 9 + .../models/operations/GetPlaylistsMetadata.md | 23 + .../GetPlaylistsPlaylistsResponseBody.md | 10 + docs/models/operations/GetPlaylistsRequest.md | 9 + .../models/operations/GetPlaylistsResponse.md | 12 + .../operations/GetPlaylistsResponseBody.md | 10 + .../operations/GetRecentlyAddedErrors.md | 10 + .../GetRecentlyAddedLibraryResponseBody.md | 10 + .../GetRecentlyAddedMediaContainer.md | 14 + .../operations/GetRecentlyAddedResponse.md | 12 + .../GetRecentlyAddedResponseBody.md | 10 + .../operations/GetResizedPhotoErrors.md | 10 + .../operations/GetResizedPhotoRequest.md | 14 + .../operations/GetResizedPhotoResponse.md | 11 + .../operations/GetResizedPhotoResponseBody.md | 10 + .../operations/GetSearchResultsCountry.md | 8 + .../operations/GetSearchResultsDirector.md | 8 + .../operations/GetSearchResultsErrors.md | 10 + .../operations/GetSearchResultsGenre.md | 8 + .../operations/GetSearchResultsMedia.md | 22 + .../GetSearchResultsMediaContainer.md | 13 + .../operations/GetSearchResultsMetadata.md | 41 + .../models/operations/GetSearchResultsPart.md | 15 + .../operations/GetSearchResultsRequest.md | 8 + .../operations/GetSearchResultsResponse.md | 12 + .../GetSearchResultsResponseBody.md | 10 + .../models/operations/GetSearchResultsRole.md | 8 + .../GetSearchResultsSearchResponseBody.md | 10 + .../operations/GetSearchResultsWriter.md | 8 + ...tServerActivitiesActivitiesResponseBody.md | 10 + .../operations/GetServerActivitiesErrors.md | 10 + .../GetServerActivitiesMediaContainer.md | 9 + .../operations/GetServerActivitiesResponse.md | 12 + .../GetServerActivitiesResponseBody.md | 10 + .../GetServerCapabilitiesResponse.md | 12 + .../GetServerCapabilitiesResponseBody.md | 10 + ...GetServerCapabilitiesServerResponseBody.md | 10 + .../operations/GetServerIdentityErrors.md | 10 + .../GetServerIdentityMediaContainer.md | 11 + .../operations/GetServerIdentityResponse.md | 12 + .../GetServerIdentityResponseBody.md | 10 + .../GetServerIdentityServerResponseBody.md | 10 + docs/models/operations/GetServerListErrors.md | 10 + .../operations/GetServerListMediaContainer.md | 9 + .../operations/GetServerListResponse.md | 12 + .../operations/GetServerListResponseBody.md | 10 + docs/models/operations/GetServerListServer.md | 13 + .../GetServerListServerResponseBody.md | 10 + .../operations/GetServerPreferencesErrors.md | 10 + .../GetServerPreferencesMediaContainer.md | 9 + .../GetServerPreferencesResponse.md | 12 + .../GetServerPreferencesResponseBody.md | 10 + .../GetServerPreferencesServerResponseBody.md | 10 + .../operations/GetSessionHistoryErrors.md | 10 + .../GetSessionHistoryMediaContainer.md | 9 + .../operations/GetSessionHistoryMetadata.md | 26 + .../operations/GetSessionHistoryResponse.md | 12 + .../GetSessionHistoryResponseBody.md | 10 + .../GetSessionHistorySessionsResponseBody.md | 10 + docs/models/operations/GetSessionsErrors.md | 10 + docs/models/operations/GetSessionsMedia.md | 15 + .../operations/GetSessionsMediaContainer.md | 9 + docs/models/operations/GetSessionsMetadata.md | 44 + docs/models/operations/GetSessionsPart.md | 17 + docs/models/operations/GetSessionsResponse.md | 12 + .../operations/GetSessionsResponseBody.md | 10 + .../GetSessionsSessionsResponseBody.md | 10 + docs/models/operations/GetSessionsStream.md | 27 + .../GetSourceConnectionInformationErrors.md | 10 + .../GetSourceConnectionInformationRequest.md | 8 + .../GetSourceConnectionInformationResponse.md | 11 + ...SourceConnectionInformationResponseBody.md | 10 + docs/models/operations/GetStatisticsDevice.md | 12 + docs/models/operations/GetStatisticsErrors.md | 10 + .../operations/GetStatisticsMediaContainer.md | 11 + .../models/operations/GetStatisticsRequest.md | 8 + .../operations/GetStatisticsResponse.md | 12 + .../operations/GetStatisticsResponseBody.md | 10 + .../GetStatisticsStatisticsResponseBody.md | 10 + docs/models/operations/GetTimelineErrors.md | 10 + docs/models/operations/GetTimelineRequest.md | 17 + docs/models/operations/GetTimelineResponse.md | 11 + .../operations/GetTimelineResponseBody.md | 10 + docs/models/operations/GetTokenErrors.md | 10 + docs/models/operations/GetTokenRequest.md | 9 + docs/models/operations/GetTokenResponse.md | 11 + .../models/operations/GetTokenResponseBody.md | 10 + .../operations/GetTranscodeSessionsErrors.md | 10 + .../GetTranscodeSessionsMediaContainer.md | 9 + .../GetTranscodeSessionsResponse.md | 12 + .../GetTranscodeSessionsResponseBody.md | 10 + ...etTranscodeSessionsSessionsResponseBody.md | 10 + .../operations/GetTransientTokenErrors.md | 10 + .../GetTransientTokenQueryParamType.md | 10 + .../operations/GetTransientTokenRequest.md | 9 + .../operations/GetTransientTokenResponse.md | 11 + .../GetTransientTokenResponseBody.md | 10 + .../operations/GetUpdateStatusErrors.md | 10 + .../GetUpdateStatusMediaContainer.md | 13 + .../operations/GetUpdateStatusResponse.md | 12 + .../operations/GetUpdateStatusResponseBody.md | 10 + .../GetUpdateStatusUpdaterResponseBody.md | 10 + docs/models/operations/Guids.md | 8 + docs/models/operations/Hub.md | 18 + docs/models/operations/IncludeDetails.md | 13 + docs/models/operations/Level.md | 20 + docs/models/operations/Location.md | 17 + docs/models/operations/LogLineErrors.md | 10 + docs/models/operations/LogLineRequest.md | 10 + docs/models/operations/LogLineResponse.md | 11 + docs/models/operations/LogLineResponseBody.md | 10 + docs/models/operations/LogMultiLineErrors.md | 10 + .../models/operations/LogMultiLineResponse.md | 11 + .../operations/LogMultiLineResponseBody.md | 10 + docs/models/operations/MarkPlayedErrors.md | 10 + docs/models/operations/MarkPlayedRequest.md | 8 + docs/models/operations/MarkPlayedResponse.md | 11 + .../operations/MarkPlayedResponseBody.md | 10 + docs/models/operations/MarkUnplayedErrors.md | 10 + docs/models/operations/MarkUnplayedRequest.md | 8 + .../models/operations/MarkUnplayedResponse.md | 11 + .../operations/MarkUnplayedResponseBody.md | 10 + docs/models/operations/Media.md | 23 + docs/models/operations/MediaContainer.md | 58 ++ docs/models/operations/Metadata.md | 39 + docs/models/operations/MinSize.md | 11 + docs/models/operations/MyPlex.md | 19 + docs/models/operations/OnlyTransient.md | 11 + docs/models/operations/Operator.md | 9 + docs/models/operations/Part.md | 17 + docs/models/operations/PathParamTaskName.md | 23 + docs/models/operations/PerformSearchErrors.md | 10 + .../models/operations/PerformSearchRequest.md | 10 + .../operations/PerformSearchResponse.md | 11 + .../operations/PerformSearchResponseBody.md | 10 + .../operations/PerformVoiceSearchErrors.md | 10 + .../operations/PerformVoiceSearchRequest.md | 10 + .../operations/PerformVoiceSearchResponse.md | 11 + .../PerformVoiceSearchResponseBody.md | 10 + docs/models/operations/Player.md | 22 + docs/models/operations/PlaylistType.md | 12 + docs/models/operations/Producer.md | 12 + docs/models/operations/Provider.md | 10 + .../operations/QueryParamOnlyTransient.md | 11 + docs/models/operations/QueryParamSmart.md | 11 + docs/models/operations/QueryParamType.md | 12 + docs/models/operations/Ratings.md | 10 + .../models/operations/RefreshLibraryErrors.md | 10 + .../operations/RefreshLibraryRequest.md | 8 + .../operations/RefreshLibraryResponse.md | 11 + .../operations/RefreshLibraryResponseBody.md | 10 + docs/models/operations/Release.md | 13 + docs/models/operations/Role.md | 8 + docs/models/operations/Scope.md | 10 + .../operations/SearchLibraryMediaContainer.md | 20 + .../operations/SearchLibraryMetadata.md | 27 + .../models/operations/SearchLibraryRequest.md | 9 + .../operations/SearchLibraryResponse.md | 11 + .../operations/SearchLibraryResponseBody.md | 10 + docs/models/operations/Server.md | 18 + docs/models/operations/Session.md | 10 + docs/models/operations/Setting.md | 17 + docs/models/operations/Skip.md | 11 + docs/models/operations/Smart.md | 11 + docs/models/operations/Sort.md | 13 + docs/models/operations/StartAllTasksErrors.md | 10 + .../operations/StartAllTasksResponse.md | 11 + .../operations/StartAllTasksResponseBody.md | 10 + docs/models/operations/StartTaskErrors.md | 10 + docs/models/operations/StartTaskRequest.md | 8 + docs/models/operations/StartTaskResponse.md | 11 + .../operations/StartTaskResponseBody.md | 10 + .../StartUniversalTranscodeErrors.md | 10 + .../StartUniversalTranscodeRequest.md | 23 + .../StartUniversalTranscodeResponse.md | 11 + .../StartUniversalTranscodeResponseBody.md | 10 + docs/models/operations/State.md | 12 + docs/models/operations/StatisticsMedia.md | 14 + docs/models/operations/StopAllTasksErrors.md | 10 + .../models/operations/StopAllTasksResponse.md | 11 + .../operations/StopAllTasksResponseBody.md | 10 + docs/models/operations/StopTaskErrors.md | 10 + docs/models/operations/StopTaskRequest.md | 8 + docs/models/operations/StopTaskResponse.md | 11 + .../models/operations/StopTaskResponseBody.md | 10 + .../operations/StopTranscodeSessionErrors.md | 10 + .../operations/StopTranscodeSessionRequest.md | 8 + .../StopTranscodeSessionResponse.md | 11 + .../StopTranscodeSessionResponseBody.md | 10 + docs/models/operations/Stream.md | 39 + docs/models/operations/Tag.md | 28 + docs/models/operations/TaskName.md | 23 + docs/models/operations/Tonight.md | 11 + docs/models/operations/TranscodeSession.md | 31 + docs/models/operations/Type.md | 13 + .../operations/UpdatePlayProgressErrors.md | 10 + .../operations/UpdatePlayProgressRequest.md | 10 + .../operations/UpdatePlayProgressResponse.md | 11 + .../UpdatePlayProgressResponseBody.md | 10 + .../models/operations/UpdatePlaylistErrors.md | 10 + .../operations/UpdatePlaylistRequest.md | 10 + .../operations/UpdatePlaylistResponse.md | 11 + .../operations/UpdatePlaylistResponseBody.md | 10 + .../models/operations/UploadPlaylistErrors.md | 10 + .../operations/UploadPlaylistRequest.md | 9 + .../operations/UploadPlaylistResponse.md | 11 + .../operations/UploadPlaylistResponseBody.md | 10 + docs/models/operations/Upscale.md | 11 + docs/models/operations/User.md | 10 + docs/models/operations/Writer.md | 8 + docs/models/shared/Security.md | 8 + gen.yaml | 2 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 240 +++++ gradlew.bat | 91 ++ lib/build.gradle | 120 +++ .../lukehagar/plexapi/plexapi/Activities.java | 122 +++ .../plexapi/plexapi/Authentication.java | 128 +++ .../lukehagar/plexapi/plexapi/Butler.java | 251 +++++ .../java/lukehagar/plexapi/plexapi/Hubs.java | 218 +++++ .../lukehagar/plexapi/plexapi/Library.java | 709 ++++++++++++++ .../java/lukehagar/plexapi/plexapi/Log.java | 193 ++++ .../java/lukehagar/plexapi/plexapi/Media.java | 176 ++++ .../lukehagar/plexapi/plexapi/Playlists.java | 598 ++++++++++++ .../java/lukehagar/plexapi/plexapi/Plex.java | 237 +++++ .../lukehagar/plexapi/plexapi/PlexAPI.java | 310 +++++++ .../plexapi/plexapi/SDKConfiguration.java | 37 + .../lukehagar/plexapi/plexapi/Search.java | 283 ++++++ .../lukehagar/plexapi/plexapi/Server.java | 410 +++++++++ .../lukehagar/plexapi/plexapi/Sessions.java | 212 +++++ .../lukehagar/plexapi/plexapi/Statistics.java | 96 ++ .../lukehagar/plexapi/plexapi/Updater.java | 223 +++++ .../java/lukehagar/plexapi/plexapi/Video.java | 120 +++ .../plexapi/models/operations/Account.java | 86 ++ .../plexapi/models/operations/Activity.java | 86 ++ .../operations/AddPlaylistContentsErrors.java | 41 + .../AddPlaylistContentsMediaContainer.java | 50 + .../AddPlaylistContentsMetadata.java | 131 +++ ...PlaylistContentsPlaylistsResponseBody.java | 26 + .../AddPlaylistContentsRequest.java | 49 + .../AddPlaylistContentsResponse.java | 72 ++ .../AddPlaylistContentsResponseBody.java | 26 + .../models/operations/ApplyUpdatesErrors.java | 41 + .../operations/ApplyUpdatesRequest.java | 34 + .../operations/ApplyUpdatesResponse.java | 61 ++ .../operations/ApplyUpdatesResponseBody.java | 26 + .../plexapi/models/operations/ButlerTask.java | 68 ++ .../models/operations/ButlerTasks.java | 23 + .../CancelServerActivitiesErrors.java | 41 + .../CancelServerActivitiesRequest.java | 26 + .../CancelServerActivitiesResponse.java | 61 ++ .../CancelServerActivitiesResponseBody.java | 26 + .../operations/CheckForUpdatesErrors.java | 41 + .../operations/CheckForUpdatesRequest.java | 23 + .../operations/CheckForUpdatesResponse.java | 61 ++ .../CheckForUpdatesResponseBody.java | 26 + .../ClearPlaylistContentsErrors.java | 41 + .../ClearPlaylistContentsRequest.java | 26 + .../ClearPlaylistContentsResponse.java | 61 ++ .../ClearPlaylistContentsResponseBody.java | 26 + .../plexapi/models/operations/Context.java | 23 + .../plexapi/models/operations/Country.java | 23 + .../operations/CreatePlaylistErrors.java | 41 + .../CreatePlaylistMediaContainer.java | 32 + .../operations/CreatePlaylistMetadata.java | 158 ++++ .../CreatePlaylistPlaylistsResponseBody.java | 26 + .../operations/CreatePlaylistRequest.java | 73 ++ .../operations/CreatePlaylistResponse.java | 72 ++ .../CreatePlaylistResponseBody.java | 26 + .../operations/DeleteLibraryErrors.java | 41 + .../operations/DeleteLibraryRequest.java | 26 + .../operations/DeleteLibraryResponse.java | 61 ++ .../operations/DeleteLibraryResponseBody.java | 26 + .../operations/DeletePlaylistErrors.java | 41 + .../operations/DeletePlaylistRequest.java | 26 + .../operations/DeletePlaylistResponse.java | 61 ++ .../DeletePlaylistResponseBody.java | 26 + .../plexapi/models/operations/Device.java | 59 ++ .../plexapi/models/operations/Director.java | 23 + .../plexapi/models/operations/Directory.java | 41 + .../plexapi/models/operations/Download.java | 22 + .../operations/EnablePaperTrailErrors.java | 41 + .../operations/EnablePaperTrailResponse.java | 61 ++ .../EnablePaperTrailResponseBody.java | 26 + .../plexapi/models/operations/Errors.java | 41 + .../plexapi/models/operations/Field.java | 50 + .../plexapi/models/operations/FieldType.java | 32 + .../plexapi/models/operations/Filter.java | 59 ++ .../plexapi/models/operations/Force.java | 26 + .../plexapi/models/operations/Genre.java | 23 + .../operations/GetAvailableClientsErrors.java | 41 + .../GetAvailableClientsMediaContainer.java | 32 + .../GetAvailableClientsResponse.java | 72 ++ .../GetAvailableClientsResponseBody.java | 26 + ...GetAvailableClientsServerResponseBody.java | 26 + .../GetButlerTasksButlerResponseBody.java | 26 + .../operations/GetButlerTasksErrors.java | 41 + .../operations/GetButlerTasksResponse.java | 72 ++ .../GetButlerTasksResponseBody.java | 26 + .../models/operations/GetDevicesErrors.java | 41 + .../operations/GetDevicesMediaContainer.java | 41 + .../models/operations/GetDevicesResponse.java | 72 ++ .../operations/GetDevicesResponseBody.java | 26 + .../GetDevicesServerResponseBody.java | 26 + .../models/operations/GetFileHashErrors.java | 41 + .../models/operations/GetFileHashRequest.java | 37 + .../operations/GetFileHashResponse.java | 61 ++ .../operations/GetFileHashResponseBody.java | 26 + .../operations/GetGlobalHubsErrors.java | 41 + .../GetGlobalHubsHubsResponseBody.java | 26 + .../GetGlobalHubsMediaContainer.java | 50 + .../operations/GetGlobalHubsMetadata.java | 167 ++++ .../operations/GetGlobalHubsRequest.java | 34 + .../operations/GetGlobalHubsResponse.java | 72 ++ .../operations/GetGlobalHubsResponseBody.java | 26 + .../operations/GetLibrariesDirectory.java | 203 ++++ .../models/operations/GetLibrariesErrors.java | 41 + .../GetLibrariesLibraryResponseBody.java | 26 + .../operations/GetLibrariesLocation.java | 32 + .../GetLibrariesMediaContainer.java | 50 + .../operations/GetLibrariesResponse.java | 72 ++ .../operations/GetLibrariesResponseBody.java | 26 + .../operations/GetLibraryDirectory.java | 59 ++ .../models/operations/GetLibraryErrors.java | 41 + .../operations/GetLibraryHubsCountry.java | 23 + .../operations/GetLibraryHubsDirector.java | 23 + .../operations/GetLibraryHubsErrors.java | 41 + .../operations/GetLibraryHubsGenre.java | 23 + .../models/operations/GetLibraryHubsHub.java | 122 +++ .../GetLibraryHubsHubsResponseBody.java | 26 + .../operations/GetLibraryHubsMedia.java | 167 ++++ .../GetLibraryHubsMediaContainer.java | 77 ++ .../operations/GetLibraryHubsMetadata.java | 323 +++++++ .../models/operations/GetLibraryHubsPart.java | 104 +++ .../operations/GetLibraryHubsRequest.java | 48 + .../operations/GetLibraryHubsResponse.java | 72 ++ .../GetLibraryHubsResponseBody.java | 26 + .../models/operations/GetLibraryHubsRole.java | 23 + .../operations/GetLibraryHubsWriter.java | 23 + .../operations/GetLibraryItemsCountry.java | 23 + .../operations/GetLibraryItemsDirector.java | 23 + .../operations/GetLibraryItemsGenre.java | 23 + .../operations/GetLibraryItemsMedia.java | 140 +++ .../GetLibraryItemsMediaContainer.java | 158 ++++ .../operations/GetLibraryItemsMetadata.java | 530 +++++++++++ .../operations/GetLibraryItemsPart.java | 77 ++ .../operations/GetLibraryItemsRequest.java | 38 + .../operations/GetLibraryItemsResponse.java | 61 ++ .../GetLibraryItemsResponseBody.java | 26 + .../operations/GetLibraryItemsRole.java | 23 + .../operations/GetLibraryItemsWriter.java | 23 + .../GetLibraryLibraryResponseBody.java | 26 + .../operations/GetLibraryMediaContainer.java | 149 +++ .../models/operations/GetLibraryRequest.java | 39 + .../models/operations/GetLibraryResponse.java | 72 ++ .../operations/GetLibraryResponseBody.java | 26 + .../models/operations/GetLibraryType.java | 77 ++ .../GetMetadataChildrenDirectory.java | 59 ++ .../operations/GetMetadataChildrenErrors.java | 41 + ...etMetadataChildrenLibraryResponseBody.java | 26 + .../GetMetadataChildrenMediaContainer.java | 221 +++++ .../GetMetadataChildrenMetadata.java | 257 ++++++ .../GetMetadataChildrenRequest.java | 26 + .../GetMetadataChildrenResponse.java | 72 ++ .../GetMetadataChildrenResponseBody.java | 26 + .../models/operations/GetMetadataCountry.java | 41 + .../operations/GetMetadataDirector.java | 59 ++ .../models/operations/GetMetadataErrors.java | 41 + .../models/operations/GetMetadataGenre.java | 41 + .../GetMetadataLibraryResponseBody.java | 26 + .../models/operations/GetMetadataMedia.java | 167 ++++ .../operations/GetMetadataMediaContainer.java | 95 ++ .../operations/GetMetadataMetadata.java | 314 +++++++ .../models/operations/GetMetadataPart.java | 113 +++ .../models/operations/GetMetadataRequest.java | 26 + .../operations/GetMetadataResponse.java | 72 ++ .../operations/GetMetadataResponseBody.java | 26 + .../models/operations/GetMetadataRole.java | 68 ++ .../models/operations/GetMetadataWriter.java | 59 ++ .../operations/GetMyPlexAccountErrors.java | 41 + .../operations/GetMyPlexAccountResponse.java | 72 ++ .../GetMyPlexAccountResponseBody.java | 26 + .../GetMyPlexAccountServerResponseBody.java | 26 + .../models/operations/GetOnDeckErrors.java | 41 + .../models/operations/GetOnDeckGuids.java | 23 + .../GetOnDeckLibraryResponseBody.java | 26 + .../models/operations/GetOnDeckMedia.java | 149 +++ .../operations/GetOnDeckMediaContainer.java | 77 ++ .../models/operations/GetOnDeckMetadata.java | 345 +++++++ .../models/operations/GetOnDeckPart.java | 95 ++ .../models/operations/GetOnDeckResponse.java | 72 ++ .../operations/GetOnDeckResponseBody.java | 26 + .../models/operations/GetOnDeckStream.java | 221 +++++ .../models/operations/GetPinErrors.java | 41 + .../operations/GetPinPlexResponseBody.java | 26 + .../models/operations/GetPinRequest.java | 43 + .../models/operations/GetPinResponse.java | 72 ++ .../models/operations/GetPinResponseBody.java | 143 +++ .../GetPlaylistContentsCountry.java | 23 + .../GetPlaylistContentsDirector.java | 23 + .../operations/GetPlaylistContentsErrors.java | 41 + .../operations/GetPlaylistContentsGenre.java | 23 + .../operations/GetPlaylistContentsMedia.java | 167 ++++ .../GetPlaylistContentsMediaContainer.java | 95 ++ .../GetPlaylistContentsMetadata.java | 305 +++++++ .../operations/GetPlaylistContentsPart.java | 104 +++ ...PlaylistContentsPlaylistsResponseBody.java | 26 + .../GetPlaylistContentsRequest.java | 38 + .../GetPlaylistContentsResponse.java | 72 ++ .../GetPlaylistContentsResponseBody.java | 26 + .../operations/GetPlaylistContentsRole.java | 23 + .../operations/GetPlaylistContentsWriter.java | 23 + .../models/operations/GetPlaylistErrors.java | 41 + .../operations/GetPlaylistMediaContainer.java | 32 + .../operations/GetPlaylistMetadata.java | 149 +++ .../GetPlaylistPlaylistsResponseBody.java | 26 + .../models/operations/GetPlaylistRequest.java | 26 + .../operations/GetPlaylistResponse.java | 72 ++ .../operations/GetPlaylistResponseBody.java | 26 + .../models/operations/GetPlaylistsErrors.java | 41 + .../GetPlaylistsMediaContainer.java | 32 + .../operations/GetPlaylistsMetadata.java | 158 ++++ .../GetPlaylistsPlaylistsResponseBody.java | 26 + .../operations/GetPlaylistsRequest.java | 34 + .../operations/GetPlaylistsResponse.java | 72 ++ .../operations/GetPlaylistsResponseBody.java | 26 + .../operations/GetRecentlyAddedErrors.java | 41 + .../GetRecentlyAddedLibraryResponseBody.java | 26 + .../GetRecentlyAddedMediaContainer.java | 77 ++ .../operations/GetRecentlyAddedResponse.java | 72 ++ .../GetRecentlyAddedResponseBody.java | 26 + .../operations/GetResizedPhotoErrors.java | 41 + .../operations/GetResizedPhotoRequest.java | 98 ++ .../operations/GetResizedPhotoResponse.java | 61 ++ .../GetResizedPhotoResponseBody.java | 26 + .../operations/GetSearchResultsCountry.java | 23 + .../operations/GetSearchResultsDirector.java | 23 + .../operations/GetSearchResultsErrors.java | 41 + .../operations/GetSearchResultsGenre.java | 23 + .../operations/GetSearchResultsMedia.java | 149 +++ .../GetSearchResultsMediaContainer.java | 68 ++ .../operations/GetSearchResultsMetadata.java | 327 +++++++ .../operations/GetSearchResultsPart.java | 86 ++ .../operations/GetSearchResultsRequest.java | 26 + .../operations/GetSearchResultsResponse.java | 72 ++ .../GetSearchResultsResponseBody.java | 26 + .../operations/GetSearchResultsRole.java | 23 + .../GetSearchResultsSearchResponseBody.java | 26 + .../operations/GetSearchResultsWriter.java | 23 + ...erverActivitiesActivitiesResponseBody.java | 26 + .../operations/GetServerActivitiesErrors.java | 41 + .../GetServerActivitiesMediaContainer.java | 32 + .../GetServerActivitiesResponse.java | 72 ++ .../GetServerActivitiesResponseBody.java | 26 + .../GetServerCapabilitiesResponse.java | 72 ++ .../GetServerCapabilitiesResponseBody.java | 26 + ...tServerCapabilitiesServerResponseBody.java | 26 + .../operations/GetServerIdentityErrors.java | 41 + .../GetServerIdentityMediaContainer.java | 50 + .../operations/GetServerIdentityResponse.java | 72 ++ .../GetServerIdentityResponseBody.java | 26 + .../GetServerIdentityServerResponseBody.java | 26 + .../operations/GetServerListErrors.java | 41 + .../GetServerListMediaContainer.java | 32 + .../operations/GetServerListResponse.java | 72 ++ .../operations/GetServerListResponseBody.java | 26 + .../operations/GetServerListServer.java | 68 ++ .../GetServerListServerResponseBody.java | 26 + .../GetServerPreferencesErrors.java | 41 + .../GetServerPreferencesMediaContainer.java | 32 + .../GetServerPreferencesResponse.java | 72 ++ .../GetServerPreferencesResponseBody.java | 26 + ...etServerPreferencesServerResponseBody.java | 26 + .../operations/GetSessionHistoryErrors.java | 41 + .../GetSessionHistoryMediaContainer.java | 32 + .../operations/GetSessionHistoryMetadata.java | 188 ++++ .../operations/GetSessionHistoryResponse.java | 72 ++ .../GetSessionHistoryResponseBody.java | 26 + ...GetSessionHistorySessionsResponseBody.java | 26 + .../models/operations/GetSessionsErrors.java | 41 + .../models/operations/GetSessionsMedia.java | 86 ++ .../operations/GetSessionsMediaContainer.java | 32 + .../operations/GetSessionsMetadata.java | 347 +++++++ .../models/operations/GetSessionsPart.java | 104 +++ .../operations/GetSessionsResponse.java | 72 ++ .../operations/GetSessionsResponseBody.java | 26 + .../GetSessionsSessionsResponseBody.java | 26 + .../models/operations/GetSessionsStream.java | 194 ++++ .../GetSourceConnectionInformationErrors.java | 41 + ...GetSourceConnectionInformationRequest.java | 26 + ...etSourceConnectionInformationResponse.java | 61 ++ ...urceConnectionInformationResponseBody.java | 26 + .../operations/GetStatisticsDevice.java | 59 ++ .../operations/GetStatisticsErrors.java | 41 + .../GetStatisticsMediaContainer.java | 50 + .../operations/GetStatisticsRequest.java | 25 + .../operations/GetStatisticsResponse.java | 72 ++ .../operations/GetStatisticsResponseBody.java | 26 + .../GetStatisticsStatisticsResponseBody.java | 26 + .../models/operations/GetTimelineErrors.java | 41 + .../models/operations/GetTimelineRequest.java | 134 +++ .../operations/GetTimelineResponse.java | 61 ++ .../operations/GetTimelineResponseBody.java | 26 + .../models/operations/GetTokenErrors.java | 41 + .../models/operations/GetTokenRequest.java | 41 + .../models/operations/GetTokenResponse.java | 61 ++ .../operations/GetTokenResponseBody.java | 26 + .../GetTranscodeSessionsErrors.java | 41 + .../GetTranscodeSessionsMediaContainer.java | 32 + .../GetTranscodeSessionsResponse.java | 72 ++ .../GetTranscodeSessionsResponseBody.java | 26 + ...TranscodeSessionsSessionsResponseBody.java | 26 + .../operations/GetTransientTokenErrors.java | 41 + .../GetTransientTokenQueryParamType.java | 21 + .../operations/GetTransientTokenRequest.java | 38 + .../operations/GetTransientTokenResponse.java | 61 ++ .../GetTransientTokenResponseBody.java | 26 + .../operations/GetUpdateStatusErrors.java | 41 + .../GetUpdateStatusMediaContainer.java | 68 ++ .../operations/GetUpdateStatusResponse.java | 72 ++ .../GetUpdateStatusResponseBody.java | 26 + .../GetUpdateStatusUpdaterResponseBody.java | 26 + .../plexapi/models/operations/Guids.java | 23 + .../plexapi/models/operations/Hub.java | 113 +++ .../models/operations/IncludeDetails.java | 24 + .../plexapi/models/operations/Level.java | 31 + .../plexapi/models/operations/Location.java | 104 +++ .../models/operations/LogLineErrors.java | 41 + .../models/operations/LogLineRequest.java | 56 ++ .../models/operations/LogLineResponse.java | 61 ++ .../operations/LogLineResponseBody.java | 26 + .../models/operations/LogMultiLineErrors.java | 41 + .../operations/LogMultiLineResponse.java | 61 ++ .../operations/LogMultiLineResponseBody.java | 26 + .../models/operations/MarkPlayedErrors.java | 41 + .../models/operations/MarkPlayedRequest.java | 26 + .../models/operations/MarkPlayedResponse.java | 61 ++ .../operations/MarkPlayedResponseBody.java | 26 + .../models/operations/MarkUnplayedErrors.java | 41 + .../operations/MarkUnplayedRequest.java | 26 + .../operations/MarkUnplayedResponse.java | 61 ++ .../operations/MarkUnplayedResponseBody.java | 26 + .../plexapi/models/operations/Media.java | 158 ++++ .../models/operations/MediaContainer.java | 473 ++++++++++ .../plexapi/models/operations/Metadata.java | 309 +++++++ .../plexapi/models/operations/MinSize.java | 22 + .../plexapi/models/operations/MyPlex.java | 122 +++ .../models/operations/OnlyTransient.java | 22 + .../plexapi/models/operations/Operator.java | 32 + .../plexapi/models/operations/Part.java | 104 +++ .../models/operations/PathParamTaskName.java | 34 + .../operations/PerformSearchErrors.java | 41 + .../operations/PerformSearchRequest.java | 48 + .../operations/PerformSearchResponse.java | 61 ++ .../operations/PerformSearchResponseBody.java | 26 + .../operations/PerformVoiceSearchErrors.java | 41 + .../operations/PerformVoiceSearchRequest.java | 48 + .../PerformVoiceSearchResponse.java | 61 ++ .../PerformVoiceSearchResponseBody.java | 26 + .../plexapi/models/operations/Player.java | 149 +++ .../models/operations/PlaylistType.java | 23 + .../plexapi/models/operations/Producer.java | 59 ++ .../plexapi/models/operations/Provider.java | 41 + .../operations/QueryParamOnlyTransient.java | 22 + .../models/operations/QueryParamSmart.java | 22 + .../models/operations/QueryParamType.java | 23 + .../plexapi/models/operations/Ratings.java | 41 + .../operations/RefreshLibraryErrors.java | 41 + .../operations/RefreshLibraryRequest.java | 26 + .../operations/RefreshLibraryResponse.java | 61 ++ .../RefreshLibraryResponseBody.java | 26 + .../plexapi/models/operations/Release.java | 68 ++ .../plexapi/models/operations/Role.java | 23 + .../plexapi/models/operations/Scope.java | 21 + .../SearchLibraryMediaContainer.java | 131 +++ .../operations/SearchLibraryMetadata.java | 194 ++++ .../operations/SearchLibraryRequest.java | 38 + .../operations/SearchLibraryResponse.java | 61 ++ .../operations/SearchLibraryResponseBody.java | 26 + .../plexapi/models/operations/Server.java | 113 +++ .../plexapi/models/operations/Session.java | 41 + .../plexapi/models/operations/Setting.java | 104 +++ .../plexapi/models/operations/Skip.java | 22 + .../plexapi/models/operations/Smart.java | 22 + .../plexapi/models/operations/Sort.java | 68 ++ .../operations/StartAllTasksErrors.java | 41 + .../operations/StartAllTasksResponse.java | 61 ++ .../operations/StartAllTasksResponseBody.java | 26 + .../models/operations/StartTaskErrors.java | 41 + .../models/operations/StartTaskRequest.java | 26 + .../models/operations/StartTaskResponse.java | 61 ++ .../operations/StartTaskResponseBody.java | 26 + .../StartUniversalTranscodeErrors.java | 41 + .../StartUniversalTranscodeRequest.java | 195 ++++ .../StartUniversalTranscodeResponse.java | 61 ++ .../StartUniversalTranscodeResponseBody.java | 26 + .../plexapi/models/operations/State.java | 23 + .../models/operations/StatisticsMedia.java | 77 ++ .../models/operations/StopAllTasksErrors.java | 41 + .../operations/StopAllTasksResponse.java | 61 ++ .../operations/StopAllTasksResponseBody.java | 26 + .../models/operations/StopTaskErrors.java | 41 + .../models/operations/StopTaskRequest.java | 26 + .../models/operations/StopTaskResponse.java | 61 ++ .../operations/StopTaskResponseBody.java | 26 + .../StopTranscodeSessionErrors.java | 41 + .../StopTranscodeSessionRequest.java | 26 + .../StopTranscodeSessionResponse.java | 61 ++ .../StopTranscodeSessionResponseBody.java | 26 + .../plexapi/models/operations/Stream.java | 302 ++++++ .../plexapi/models/operations/Tag.java | 39 + .../plexapi/models/operations/TaskName.java | 34 + .../plexapi/models/operations/Tonight.java | 22 + .../models/operations/TranscodeSession.java | 230 +++++ .../plexapi/models/operations/Type.java | 24 + .../operations/UpdatePlayProgressErrors.java | 41 + .../operations/UpdatePlayProgressRequest.java | 50 + .../UpdatePlayProgressResponse.java | 61 ++ .../UpdatePlayProgressResponseBody.java | 26 + .../operations/UpdatePlaylistErrors.java | 41 + .../operations/UpdatePlaylistRequest.java | 48 + .../operations/UpdatePlaylistResponse.java | 61 ++ .../UpdatePlaylistResponseBody.java | 26 + .../operations/UploadPlaylistErrors.java | 41 + .../operations/UploadPlaylistRequest.java | 48 + .../operations/UploadPlaylistResponse.java | 61 ++ .../UploadPlaylistResponseBody.java | 26 + .../plexapi/models/operations/Upscale.java | 22 + .../plexapi/models/operations/User.java | 41 + .../plexapi/models/operations/Writer.java | 23 + .../plexapi/models/shared/Security.java | 23 + .../plexapi/utils/DateTimeDeserializer.java | 35 + .../plexapi/utils/DateTimeSerializer.java | 27 + .../plexapi/plexapi/utils/FormMetadata.java | 25 + .../plexapi/plexapi/utils/HTTPClient.java | 14 + .../plexapi/plexapi/utils/HTTPRequest.java | 87 ++ .../plexapi/plexapi/utils/HeaderMetadata.java | 23 + .../lukehagar/plexapi/plexapi/utils/JSON.java | 19 + .../plexapi/plexapi/utils/Metadata.java | 78 ++ .../plexapi/utils/MultipartFormMetadata.java | 24 + .../plexapi/utils/PathParamsMetadata.java | 24 + .../plexapi/utils/QueryParameters.java | 220 +++++ .../plexapi/utils/QueryParamsMetadata.java | 24 + .../plexapi/plexapi/utils/RequestBody.java | 335 +++++++ .../plexapi/utils/RequestMetadata.java | 21 + .../plexapi/plexapi/utils/Security.java | 179 ++++ .../plexapi/utils/SecurityMetadata.java | 25 + .../plexapi/plexapi/utils/SerializedBody.java | 12 + .../plexapi/utils/SpeakeasyHTTPClient.java | 24 + .../utils/SpeakeasyHTTPSecurityClient.java | 60 ++ .../plexapi/utils/SpeakeasyMetadata.java | 16 + .../plexapi/plexapi/utils/Types.java | 51 ++ .../plexapi/plexapi/utils/Utils.java | 368 ++++++++ settings.gradle | 11 + 848 files changed, 36197 insertions(+), 5 deletions(-) create mode 100644 .gitattributes create mode 100755 .speakeasy/gen.lock create mode 100644 RELEASES.md create mode 100644 USAGE.md create mode 100644 docs/models/operations/Account.md create mode 100644 docs/models/operations/Activity.md create mode 100644 docs/models/operations/AddPlaylistContentsErrors.md create mode 100644 docs/models/operations/AddPlaylistContentsMediaContainer.md create mode 100644 docs/models/operations/AddPlaylistContentsMetadata.md create mode 100644 docs/models/operations/AddPlaylistContentsPlaylistsResponseBody.md create mode 100644 docs/models/operations/AddPlaylistContentsRequest.md create mode 100644 docs/models/operations/AddPlaylistContentsResponse.md create mode 100644 docs/models/operations/AddPlaylistContentsResponseBody.md create mode 100644 docs/models/operations/ApplyUpdatesErrors.md create mode 100644 docs/models/operations/ApplyUpdatesRequest.md create mode 100644 docs/models/operations/ApplyUpdatesResponse.md create mode 100644 docs/models/operations/ApplyUpdatesResponseBody.md create mode 100644 docs/models/operations/ButlerTask.md create mode 100644 docs/models/operations/ButlerTasks.md create mode 100644 docs/models/operations/CancelServerActivitiesErrors.md create mode 100644 docs/models/operations/CancelServerActivitiesRequest.md create mode 100644 docs/models/operations/CancelServerActivitiesResponse.md create mode 100644 docs/models/operations/CancelServerActivitiesResponseBody.md create mode 100644 docs/models/operations/CheckForUpdatesErrors.md create mode 100644 docs/models/operations/CheckForUpdatesRequest.md create mode 100644 docs/models/operations/CheckForUpdatesResponse.md create mode 100644 docs/models/operations/CheckForUpdatesResponseBody.md create mode 100644 docs/models/operations/ClearPlaylistContentsErrors.md create mode 100644 docs/models/operations/ClearPlaylistContentsRequest.md create mode 100644 docs/models/operations/ClearPlaylistContentsResponse.md create mode 100644 docs/models/operations/ClearPlaylistContentsResponseBody.md create mode 100644 docs/models/operations/Context.md create mode 100644 docs/models/operations/Country.md create mode 100644 docs/models/operations/CreatePlaylistErrors.md create mode 100644 docs/models/operations/CreatePlaylistMediaContainer.md create mode 100644 docs/models/operations/CreatePlaylistMetadata.md create mode 100644 docs/models/operations/CreatePlaylistPlaylistsResponseBody.md create mode 100644 docs/models/operations/CreatePlaylistRequest.md create mode 100644 docs/models/operations/CreatePlaylistResponse.md create mode 100644 docs/models/operations/CreatePlaylistResponseBody.md create mode 100644 docs/models/operations/DeleteLibraryErrors.md create mode 100644 docs/models/operations/DeleteLibraryRequest.md create mode 100644 docs/models/operations/DeleteLibraryResponse.md create mode 100644 docs/models/operations/DeleteLibraryResponseBody.md create mode 100644 docs/models/operations/DeletePlaylistErrors.md create mode 100644 docs/models/operations/DeletePlaylistRequest.md create mode 100644 docs/models/operations/DeletePlaylistResponse.md create mode 100644 docs/models/operations/DeletePlaylistResponseBody.md create mode 100644 docs/models/operations/Device.md create mode 100644 docs/models/operations/Director.md create mode 100644 docs/models/operations/Directory.md create mode 100644 docs/models/operations/Download.md create mode 100644 docs/models/operations/EnablePaperTrailErrors.md create mode 100644 docs/models/operations/EnablePaperTrailResponse.md create mode 100644 docs/models/operations/EnablePaperTrailResponseBody.md create mode 100644 docs/models/operations/Errors.md create mode 100644 docs/models/operations/Field.md create mode 100644 docs/models/operations/FieldType.md create mode 100644 docs/models/operations/Filter.md create mode 100644 docs/models/operations/Force.md create mode 100644 docs/models/operations/Genre.md create mode 100644 docs/models/operations/GetAvailableClientsErrors.md create mode 100644 docs/models/operations/GetAvailableClientsMediaContainer.md create mode 100644 docs/models/operations/GetAvailableClientsResponse.md create mode 100644 docs/models/operations/GetAvailableClientsResponseBody.md create mode 100644 docs/models/operations/GetAvailableClientsServerResponseBody.md create mode 100644 docs/models/operations/GetButlerTasksButlerResponseBody.md create mode 100644 docs/models/operations/GetButlerTasksErrors.md create mode 100644 docs/models/operations/GetButlerTasksResponse.md create mode 100644 docs/models/operations/GetButlerTasksResponseBody.md create mode 100644 docs/models/operations/GetDevicesErrors.md create mode 100644 docs/models/operations/GetDevicesMediaContainer.md create mode 100644 docs/models/operations/GetDevicesResponse.md create mode 100644 docs/models/operations/GetDevicesResponseBody.md create mode 100644 docs/models/operations/GetDevicesServerResponseBody.md create mode 100644 docs/models/operations/GetFileHashErrors.md create mode 100644 docs/models/operations/GetFileHashRequest.md create mode 100644 docs/models/operations/GetFileHashResponse.md create mode 100644 docs/models/operations/GetFileHashResponseBody.md create mode 100644 docs/models/operations/GetGlobalHubsErrors.md create mode 100644 docs/models/operations/GetGlobalHubsHubsResponseBody.md create mode 100644 docs/models/operations/GetGlobalHubsMediaContainer.md create mode 100644 docs/models/operations/GetGlobalHubsMetadata.md create mode 100644 docs/models/operations/GetGlobalHubsRequest.md create mode 100644 docs/models/operations/GetGlobalHubsResponse.md create mode 100644 docs/models/operations/GetGlobalHubsResponseBody.md create mode 100644 docs/models/operations/GetLibrariesDirectory.md create mode 100644 docs/models/operations/GetLibrariesErrors.md create mode 100644 docs/models/operations/GetLibrariesLibraryResponseBody.md create mode 100644 docs/models/operations/GetLibrariesLocation.md create mode 100644 docs/models/operations/GetLibrariesMediaContainer.md create mode 100644 docs/models/operations/GetLibrariesResponse.md create mode 100644 docs/models/operations/GetLibrariesResponseBody.md create mode 100644 docs/models/operations/GetLibraryDirectory.md create mode 100644 docs/models/operations/GetLibraryErrors.md create mode 100644 docs/models/operations/GetLibraryHubsCountry.md create mode 100644 docs/models/operations/GetLibraryHubsDirector.md create mode 100644 docs/models/operations/GetLibraryHubsErrors.md create mode 100644 docs/models/operations/GetLibraryHubsGenre.md create mode 100644 docs/models/operations/GetLibraryHubsHub.md create mode 100644 docs/models/operations/GetLibraryHubsHubsResponseBody.md create mode 100644 docs/models/operations/GetLibraryHubsMedia.md create mode 100644 docs/models/operations/GetLibraryHubsMediaContainer.md create mode 100644 docs/models/operations/GetLibraryHubsMetadata.md create mode 100644 docs/models/operations/GetLibraryHubsPart.md create mode 100644 docs/models/operations/GetLibraryHubsRequest.md create mode 100644 docs/models/operations/GetLibraryHubsResponse.md create mode 100644 docs/models/operations/GetLibraryHubsResponseBody.md create mode 100644 docs/models/operations/GetLibraryHubsRole.md create mode 100644 docs/models/operations/GetLibraryHubsWriter.md create mode 100644 docs/models/operations/GetLibraryItemsCountry.md create mode 100644 docs/models/operations/GetLibraryItemsDirector.md create mode 100644 docs/models/operations/GetLibraryItemsGenre.md create mode 100644 docs/models/operations/GetLibraryItemsMedia.md create mode 100644 docs/models/operations/GetLibraryItemsMediaContainer.md create mode 100644 docs/models/operations/GetLibraryItemsMetadata.md create mode 100644 docs/models/operations/GetLibraryItemsPart.md create mode 100644 docs/models/operations/GetLibraryItemsRequest.md create mode 100644 docs/models/operations/GetLibraryItemsResponse.md create mode 100644 docs/models/operations/GetLibraryItemsResponseBody.md create mode 100644 docs/models/operations/GetLibraryItemsRole.md create mode 100644 docs/models/operations/GetLibraryItemsWriter.md create mode 100644 docs/models/operations/GetLibraryLibraryResponseBody.md create mode 100644 docs/models/operations/GetLibraryMediaContainer.md create mode 100644 docs/models/operations/GetLibraryRequest.md create mode 100644 docs/models/operations/GetLibraryResponse.md create mode 100644 docs/models/operations/GetLibraryResponseBody.md create mode 100644 docs/models/operations/GetLibraryType.md create mode 100644 docs/models/operations/GetMetadataChildrenDirectory.md create mode 100644 docs/models/operations/GetMetadataChildrenErrors.md create mode 100644 docs/models/operations/GetMetadataChildrenLibraryResponseBody.md create mode 100644 docs/models/operations/GetMetadataChildrenMediaContainer.md create mode 100644 docs/models/operations/GetMetadataChildrenMetadata.md create mode 100644 docs/models/operations/GetMetadataChildrenRequest.md create mode 100644 docs/models/operations/GetMetadataChildrenResponse.md create mode 100644 docs/models/operations/GetMetadataChildrenResponseBody.md create mode 100644 docs/models/operations/GetMetadataCountry.md create mode 100644 docs/models/operations/GetMetadataDirector.md create mode 100644 docs/models/operations/GetMetadataErrors.md create mode 100644 docs/models/operations/GetMetadataGenre.md create mode 100644 docs/models/operations/GetMetadataLibraryResponseBody.md create mode 100644 docs/models/operations/GetMetadataMedia.md create mode 100644 docs/models/operations/GetMetadataMediaContainer.md create mode 100644 docs/models/operations/GetMetadataMetadata.md create mode 100644 docs/models/operations/GetMetadataPart.md create mode 100644 docs/models/operations/GetMetadataRequest.md create mode 100644 docs/models/operations/GetMetadataResponse.md create mode 100644 docs/models/operations/GetMetadataResponseBody.md create mode 100644 docs/models/operations/GetMetadataRole.md create mode 100644 docs/models/operations/GetMetadataWriter.md create mode 100644 docs/models/operations/GetMyPlexAccountErrors.md create mode 100644 docs/models/operations/GetMyPlexAccountResponse.md create mode 100644 docs/models/operations/GetMyPlexAccountResponseBody.md create mode 100644 docs/models/operations/GetMyPlexAccountServerResponseBody.md create mode 100644 docs/models/operations/GetOnDeckErrors.md create mode 100644 docs/models/operations/GetOnDeckGuids.md create mode 100644 docs/models/operations/GetOnDeckLibraryResponseBody.md create mode 100644 docs/models/operations/GetOnDeckMedia.md create mode 100644 docs/models/operations/GetOnDeckMediaContainer.md create mode 100644 docs/models/operations/GetOnDeckMetadata.md create mode 100644 docs/models/operations/GetOnDeckPart.md create mode 100644 docs/models/operations/GetOnDeckResponse.md create mode 100644 docs/models/operations/GetOnDeckResponseBody.md create mode 100644 docs/models/operations/GetOnDeckStream.md create mode 100644 docs/models/operations/GetPinErrors.md create mode 100644 docs/models/operations/GetPinPlexResponseBody.md create mode 100644 docs/models/operations/GetPinRequest.md create mode 100644 docs/models/operations/GetPinResponse.md create mode 100644 docs/models/operations/GetPinResponseBody.md create mode 100644 docs/models/operations/GetPlaylistContentsCountry.md create mode 100644 docs/models/operations/GetPlaylistContentsDirector.md create mode 100644 docs/models/operations/GetPlaylistContentsErrors.md create mode 100644 docs/models/operations/GetPlaylistContentsGenre.md create mode 100644 docs/models/operations/GetPlaylistContentsMedia.md create mode 100644 docs/models/operations/GetPlaylistContentsMediaContainer.md create mode 100644 docs/models/operations/GetPlaylistContentsMetadata.md create mode 100644 docs/models/operations/GetPlaylistContentsPart.md create mode 100644 docs/models/operations/GetPlaylistContentsPlaylistsResponseBody.md create mode 100644 docs/models/operations/GetPlaylistContentsRequest.md create mode 100644 docs/models/operations/GetPlaylistContentsResponse.md create mode 100644 docs/models/operations/GetPlaylistContentsResponseBody.md create mode 100644 docs/models/operations/GetPlaylistContentsRole.md create mode 100644 docs/models/operations/GetPlaylistContentsWriter.md create mode 100644 docs/models/operations/GetPlaylistErrors.md create mode 100644 docs/models/operations/GetPlaylistMediaContainer.md create mode 100644 docs/models/operations/GetPlaylistMetadata.md create mode 100644 docs/models/operations/GetPlaylistPlaylistsResponseBody.md create mode 100644 docs/models/operations/GetPlaylistRequest.md create mode 100644 docs/models/operations/GetPlaylistResponse.md create mode 100644 docs/models/operations/GetPlaylistResponseBody.md create mode 100644 docs/models/operations/GetPlaylistsErrors.md create mode 100644 docs/models/operations/GetPlaylistsMediaContainer.md create mode 100644 docs/models/operations/GetPlaylistsMetadata.md create mode 100644 docs/models/operations/GetPlaylistsPlaylistsResponseBody.md create mode 100644 docs/models/operations/GetPlaylistsRequest.md create mode 100644 docs/models/operations/GetPlaylistsResponse.md create mode 100644 docs/models/operations/GetPlaylistsResponseBody.md create mode 100644 docs/models/operations/GetRecentlyAddedErrors.md create mode 100644 docs/models/operations/GetRecentlyAddedLibraryResponseBody.md create mode 100644 docs/models/operations/GetRecentlyAddedMediaContainer.md create mode 100644 docs/models/operations/GetRecentlyAddedResponse.md create mode 100644 docs/models/operations/GetRecentlyAddedResponseBody.md create mode 100644 docs/models/operations/GetResizedPhotoErrors.md create mode 100644 docs/models/operations/GetResizedPhotoRequest.md create mode 100644 docs/models/operations/GetResizedPhotoResponse.md create mode 100644 docs/models/operations/GetResizedPhotoResponseBody.md create mode 100644 docs/models/operations/GetSearchResultsCountry.md create mode 100644 docs/models/operations/GetSearchResultsDirector.md create mode 100644 docs/models/operations/GetSearchResultsErrors.md create mode 100644 docs/models/operations/GetSearchResultsGenre.md create mode 100644 docs/models/operations/GetSearchResultsMedia.md create mode 100644 docs/models/operations/GetSearchResultsMediaContainer.md create mode 100644 docs/models/operations/GetSearchResultsMetadata.md create mode 100644 docs/models/operations/GetSearchResultsPart.md create mode 100644 docs/models/operations/GetSearchResultsRequest.md create mode 100644 docs/models/operations/GetSearchResultsResponse.md create mode 100644 docs/models/operations/GetSearchResultsResponseBody.md create mode 100644 docs/models/operations/GetSearchResultsRole.md create mode 100644 docs/models/operations/GetSearchResultsSearchResponseBody.md create mode 100644 docs/models/operations/GetSearchResultsWriter.md create mode 100644 docs/models/operations/GetServerActivitiesActivitiesResponseBody.md create mode 100644 docs/models/operations/GetServerActivitiesErrors.md create mode 100644 docs/models/operations/GetServerActivitiesMediaContainer.md create mode 100644 docs/models/operations/GetServerActivitiesResponse.md create mode 100644 docs/models/operations/GetServerActivitiesResponseBody.md create mode 100644 docs/models/operations/GetServerCapabilitiesResponse.md create mode 100644 docs/models/operations/GetServerCapabilitiesResponseBody.md create mode 100644 docs/models/operations/GetServerCapabilitiesServerResponseBody.md create mode 100644 docs/models/operations/GetServerIdentityErrors.md create mode 100644 docs/models/operations/GetServerIdentityMediaContainer.md create mode 100644 docs/models/operations/GetServerIdentityResponse.md create mode 100644 docs/models/operations/GetServerIdentityResponseBody.md create mode 100644 docs/models/operations/GetServerIdentityServerResponseBody.md create mode 100644 docs/models/operations/GetServerListErrors.md create mode 100644 docs/models/operations/GetServerListMediaContainer.md create mode 100644 docs/models/operations/GetServerListResponse.md create mode 100644 docs/models/operations/GetServerListResponseBody.md create mode 100644 docs/models/operations/GetServerListServer.md create mode 100644 docs/models/operations/GetServerListServerResponseBody.md create mode 100644 docs/models/operations/GetServerPreferencesErrors.md create mode 100644 docs/models/operations/GetServerPreferencesMediaContainer.md create mode 100644 docs/models/operations/GetServerPreferencesResponse.md create mode 100644 docs/models/operations/GetServerPreferencesResponseBody.md create mode 100644 docs/models/operations/GetServerPreferencesServerResponseBody.md create mode 100644 docs/models/operations/GetSessionHistoryErrors.md create mode 100644 docs/models/operations/GetSessionHistoryMediaContainer.md create mode 100644 docs/models/operations/GetSessionHistoryMetadata.md create mode 100644 docs/models/operations/GetSessionHistoryResponse.md create mode 100644 docs/models/operations/GetSessionHistoryResponseBody.md create mode 100644 docs/models/operations/GetSessionHistorySessionsResponseBody.md create mode 100644 docs/models/operations/GetSessionsErrors.md create mode 100644 docs/models/operations/GetSessionsMedia.md create mode 100644 docs/models/operations/GetSessionsMediaContainer.md create mode 100644 docs/models/operations/GetSessionsMetadata.md create mode 100644 docs/models/operations/GetSessionsPart.md create mode 100644 docs/models/operations/GetSessionsResponse.md create mode 100644 docs/models/operations/GetSessionsResponseBody.md create mode 100644 docs/models/operations/GetSessionsSessionsResponseBody.md create mode 100644 docs/models/operations/GetSessionsStream.md create mode 100644 docs/models/operations/GetSourceConnectionInformationErrors.md create mode 100644 docs/models/operations/GetSourceConnectionInformationRequest.md create mode 100644 docs/models/operations/GetSourceConnectionInformationResponse.md create mode 100644 docs/models/operations/GetSourceConnectionInformationResponseBody.md create mode 100644 docs/models/operations/GetStatisticsDevice.md create mode 100644 docs/models/operations/GetStatisticsErrors.md create mode 100644 docs/models/operations/GetStatisticsMediaContainer.md create mode 100644 docs/models/operations/GetStatisticsRequest.md create mode 100644 docs/models/operations/GetStatisticsResponse.md create mode 100644 docs/models/operations/GetStatisticsResponseBody.md create mode 100644 docs/models/operations/GetStatisticsStatisticsResponseBody.md create mode 100644 docs/models/operations/GetTimelineErrors.md create mode 100644 docs/models/operations/GetTimelineRequest.md create mode 100644 docs/models/operations/GetTimelineResponse.md create mode 100644 docs/models/operations/GetTimelineResponseBody.md create mode 100644 docs/models/operations/GetTokenErrors.md create mode 100644 docs/models/operations/GetTokenRequest.md create mode 100644 docs/models/operations/GetTokenResponse.md create mode 100644 docs/models/operations/GetTokenResponseBody.md create mode 100644 docs/models/operations/GetTranscodeSessionsErrors.md create mode 100644 docs/models/operations/GetTranscodeSessionsMediaContainer.md create mode 100644 docs/models/operations/GetTranscodeSessionsResponse.md create mode 100644 docs/models/operations/GetTranscodeSessionsResponseBody.md create mode 100644 docs/models/operations/GetTranscodeSessionsSessionsResponseBody.md create mode 100644 docs/models/operations/GetTransientTokenErrors.md create mode 100644 docs/models/operations/GetTransientTokenQueryParamType.md create mode 100644 docs/models/operations/GetTransientTokenRequest.md create mode 100644 docs/models/operations/GetTransientTokenResponse.md create mode 100644 docs/models/operations/GetTransientTokenResponseBody.md create mode 100644 docs/models/operations/GetUpdateStatusErrors.md create mode 100644 docs/models/operations/GetUpdateStatusMediaContainer.md create mode 100644 docs/models/operations/GetUpdateStatusResponse.md create mode 100644 docs/models/operations/GetUpdateStatusResponseBody.md create mode 100644 docs/models/operations/GetUpdateStatusUpdaterResponseBody.md create mode 100644 docs/models/operations/Guids.md create mode 100644 docs/models/operations/Hub.md create mode 100644 docs/models/operations/IncludeDetails.md create mode 100644 docs/models/operations/Level.md create mode 100644 docs/models/operations/Location.md create mode 100644 docs/models/operations/LogLineErrors.md create mode 100644 docs/models/operations/LogLineRequest.md create mode 100644 docs/models/operations/LogLineResponse.md create mode 100644 docs/models/operations/LogLineResponseBody.md create mode 100644 docs/models/operations/LogMultiLineErrors.md create mode 100644 docs/models/operations/LogMultiLineResponse.md create mode 100644 docs/models/operations/LogMultiLineResponseBody.md create mode 100644 docs/models/operations/MarkPlayedErrors.md create mode 100644 docs/models/operations/MarkPlayedRequest.md create mode 100644 docs/models/operations/MarkPlayedResponse.md create mode 100644 docs/models/operations/MarkPlayedResponseBody.md create mode 100644 docs/models/operations/MarkUnplayedErrors.md create mode 100644 docs/models/operations/MarkUnplayedRequest.md create mode 100644 docs/models/operations/MarkUnplayedResponse.md create mode 100644 docs/models/operations/MarkUnplayedResponseBody.md create mode 100644 docs/models/operations/Media.md create mode 100644 docs/models/operations/MediaContainer.md create mode 100644 docs/models/operations/Metadata.md create mode 100644 docs/models/operations/MinSize.md create mode 100644 docs/models/operations/MyPlex.md create mode 100644 docs/models/operations/OnlyTransient.md create mode 100644 docs/models/operations/Operator.md create mode 100644 docs/models/operations/Part.md create mode 100644 docs/models/operations/PathParamTaskName.md create mode 100644 docs/models/operations/PerformSearchErrors.md create mode 100644 docs/models/operations/PerformSearchRequest.md create mode 100644 docs/models/operations/PerformSearchResponse.md create mode 100644 docs/models/operations/PerformSearchResponseBody.md create mode 100644 docs/models/operations/PerformVoiceSearchErrors.md create mode 100644 docs/models/operations/PerformVoiceSearchRequest.md create mode 100644 docs/models/operations/PerformVoiceSearchResponse.md create mode 100644 docs/models/operations/PerformVoiceSearchResponseBody.md create mode 100644 docs/models/operations/Player.md create mode 100644 docs/models/operations/PlaylistType.md create mode 100644 docs/models/operations/Producer.md create mode 100644 docs/models/operations/Provider.md create mode 100644 docs/models/operations/QueryParamOnlyTransient.md create mode 100644 docs/models/operations/QueryParamSmart.md create mode 100644 docs/models/operations/QueryParamType.md create mode 100644 docs/models/operations/Ratings.md create mode 100644 docs/models/operations/RefreshLibraryErrors.md create mode 100644 docs/models/operations/RefreshLibraryRequest.md create mode 100644 docs/models/operations/RefreshLibraryResponse.md create mode 100644 docs/models/operations/RefreshLibraryResponseBody.md create mode 100644 docs/models/operations/Release.md create mode 100644 docs/models/operations/Role.md create mode 100644 docs/models/operations/Scope.md create mode 100644 docs/models/operations/SearchLibraryMediaContainer.md create mode 100644 docs/models/operations/SearchLibraryMetadata.md create mode 100644 docs/models/operations/SearchLibraryRequest.md create mode 100644 docs/models/operations/SearchLibraryResponse.md create mode 100644 docs/models/operations/SearchLibraryResponseBody.md create mode 100644 docs/models/operations/Server.md create mode 100644 docs/models/operations/Session.md create mode 100644 docs/models/operations/Setting.md create mode 100644 docs/models/operations/Skip.md create mode 100644 docs/models/operations/Smart.md create mode 100644 docs/models/operations/Sort.md create mode 100644 docs/models/operations/StartAllTasksErrors.md create mode 100644 docs/models/operations/StartAllTasksResponse.md create mode 100644 docs/models/operations/StartAllTasksResponseBody.md create mode 100644 docs/models/operations/StartTaskErrors.md create mode 100644 docs/models/operations/StartTaskRequest.md create mode 100644 docs/models/operations/StartTaskResponse.md create mode 100644 docs/models/operations/StartTaskResponseBody.md create mode 100644 docs/models/operations/StartUniversalTranscodeErrors.md create mode 100644 docs/models/operations/StartUniversalTranscodeRequest.md create mode 100644 docs/models/operations/StartUniversalTranscodeResponse.md create mode 100644 docs/models/operations/StartUniversalTranscodeResponseBody.md create mode 100644 docs/models/operations/State.md create mode 100644 docs/models/operations/StatisticsMedia.md create mode 100644 docs/models/operations/StopAllTasksErrors.md create mode 100644 docs/models/operations/StopAllTasksResponse.md create mode 100644 docs/models/operations/StopAllTasksResponseBody.md create mode 100644 docs/models/operations/StopTaskErrors.md create mode 100644 docs/models/operations/StopTaskRequest.md create mode 100644 docs/models/operations/StopTaskResponse.md create mode 100644 docs/models/operations/StopTaskResponseBody.md create mode 100644 docs/models/operations/StopTranscodeSessionErrors.md create mode 100644 docs/models/operations/StopTranscodeSessionRequest.md create mode 100644 docs/models/operations/StopTranscodeSessionResponse.md create mode 100644 docs/models/operations/StopTranscodeSessionResponseBody.md create mode 100644 docs/models/operations/Stream.md create mode 100644 docs/models/operations/Tag.md create mode 100644 docs/models/operations/TaskName.md create mode 100644 docs/models/operations/Tonight.md create mode 100644 docs/models/operations/TranscodeSession.md create mode 100644 docs/models/operations/Type.md create mode 100644 docs/models/operations/UpdatePlayProgressErrors.md create mode 100644 docs/models/operations/UpdatePlayProgressRequest.md create mode 100644 docs/models/operations/UpdatePlayProgressResponse.md create mode 100644 docs/models/operations/UpdatePlayProgressResponseBody.md create mode 100644 docs/models/operations/UpdatePlaylistErrors.md create mode 100644 docs/models/operations/UpdatePlaylistRequest.md create mode 100644 docs/models/operations/UpdatePlaylistResponse.md create mode 100644 docs/models/operations/UpdatePlaylistResponseBody.md create mode 100644 docs/models/operations/UploadPlaylistErrors.md create mode 100644 docs/models/operations/UploadPlaylistRequest.md create mode 100644 docs/models/operations/UploadPlaylistResponse.md create mode 100644 docs/models/operations/UploadPlaylistResponseBody.md create mode 100644 docs/models/operations/Upscale.md create mode 100644 docs/models/operations/User.md create mode 100644 docs/models/operations/Writer.md create mode 100644 docs/models/shared/Security.md create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100755 gradlew.bat create mode 100644 lib/build.gradle create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Activities.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Authentication.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Butler.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Hubs.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Library.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Log.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Media.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Playlists.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Plex.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/PlexAPI.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/SDKConfiguration.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Search.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Server.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Sessions.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Statistics.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Updater.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/Video.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Account.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Activity.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsPlaylistsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTask.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTasks.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Context.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Country.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistPlaylistsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Device.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Director.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Directory.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Download.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Errors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Field.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/FieldType.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Filter.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Force.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Genre.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsServerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksButlerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesServerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsHubsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesDirectory.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLocation.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryDirectory.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsCountry.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsDirector.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsGenre.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHub.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHubsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsPart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRole.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsWriter.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsCountry.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsDirector.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsGenre.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsPart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRole.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsWriter.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryType.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenDirectory.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataCountry.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataDirector.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataGenre.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataPart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRole.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataWriter.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountServerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckGuids.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckPart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckStream.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinPlexResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsCountry.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsDirector.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsGenre.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPlaylistsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRole.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsWriter.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistPlaylistsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsPlaylistsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsCountry.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsDirector.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsGenre.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsPart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRole.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsSearchResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsWriter.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesActivitiesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesServerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityServerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesServerResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistorySessionsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsPart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsSessionsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsStream.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsDevice.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsStatisticsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsSessionsResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenQueryParamType.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusUpdaterResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Guids.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Hub.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeDetails.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Level.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Location.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Media.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Metadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MinSize.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MyPlex.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/OnlyTransient.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Operator.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Part.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PathParamTaskName.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Player.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PlaylistType.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Producer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Provider.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamOnlyTransient.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamSmart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamType.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Ratings.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Release.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Role.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Scope.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMediaContainer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Server.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Session.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Setting.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Skip.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Smart.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Sort.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/State.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsMedia.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Stream.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tag.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TaskName.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tonight.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TranscodeSession.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Type.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistErrors.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponse.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponseBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Upscale.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/User.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Writer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/models/shared/Security.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeDeserializer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeSerializer.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/FormMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPClient.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPRequest.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/HeaderMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/JSON.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/Metadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/MultipartFormMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/PathParamsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParameters.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParamsMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/Security.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/SecurityMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/SerializedBody.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPClient.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPSecurityClient.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyMetadata.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/Types.java create mode 100644 lib/src/main/java/lukehagar/plexapi/plexapi/utils/Utils.java create mode 100644 settings.gradle diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..15532825 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,12 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf + +# This allows generated code to be indexed correctly +*.java linguist-generated=false + diff --git a/.gitignore b/.gitignore index 524f0963..64cd884c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,20 @@ +# Ignore Gradle project-specific cache directory +.gradle +# Ignore Gradle build output directory +build +bin/ +# Ignore IDE-specific configs +.project +.settings/ +.DS_Store # Compiled class file *.class - # Log file *.log - # BlueJ files *.ctxt - # Mobile Tools for Java (J2ME) .mtj.tmp/ - # Package Files # *.jar *.war @@ -18,7 +23,6 @@ *.zip *.tar.gz *.rar - # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* replay_pid* diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock new file mode 100755 index 00000000..232a4531 --- /dev/null +++ b/.speakeasy/gen.lock @@ -0,0 +1,864 @@ +lockVersion: 2.0.0 +id: 6e1987fc-ab6d-48e1-acce-fae6fcd19e88 +management: + docChecksum: e34dac84738ebf2d447ea2b9055a6eeb + docVersion: 0.0.3 + speakeasyVersion: internal + generationVersion: 2.277.0 + releaseVersion: 0.0.1 + configChecksum: b94ceda5f4d451150e6efe0cb826a488 + repoURL: https://github.com/LukeHagar/plexjava.git + repoSubDirectory: . + published: true +features: + java: + core: 3.5.2 + flattening: 2.81.1 + globalSecurity: 2.81.4 + globalServerURLs: 2.82.1 + methodServerURLs: 2.82.1 + nameOverrides: 2.81.1 +generatedFiles: + - lib/src/main/java/lukehagar/plexapi/plexapi/SDKConfiguration.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Server.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Media.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Video.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Activities.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Butler.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Hubs.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Search.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Library.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Log.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Plex.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Playlists.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Authentication.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Statistics.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Sessions.java + - lib/src/main/java/lukehagar/plexapi/plexapi/Updater.java + - lib/src/main/java/lukehagar/plexapi/plexapi/PlexAPI.java + - .gitattributes + - gradle/wrapper/gradle-wrapper.jar + - gradle/wrapper/gradle-wrapper.properties + - gradlew + - gradlew.bat + - settings.gradle + - lib/build.gradle + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeDeserializer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeSerializer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/FormMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPClient.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/HeaderMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/JSON.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/Metadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/MultipartFormMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/PathParamsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParameters.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParamsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/Security.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/SecurityMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/SerializedBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPClient.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPSecurityClient.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/Types.java + - lib/src/main/java/lukehagar/plexapi/plexapi/utils/Utils.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Errors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesServerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Directory.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesServerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Setting.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsServerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Server.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesServerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Device.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityServerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountServerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MyPlex.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MinSize.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Upscale.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/State.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesActivitiesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Context.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Activity.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksButlerResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTask.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTasks.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TaskName.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PathParamTaskName.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/OnlyTransient.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsHubsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Hub.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamOnlyTransient.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHubsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsPart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsGenre.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsCountry.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsDirector.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRole.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsWriter.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHub.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsSearchResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsPart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsGenre.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsDirector.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsWriter.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsCountry.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRole.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Provider.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Part.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Media.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Genre.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Director.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Writer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Country.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Role.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Metadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLocation.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesDirectory.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeDetails.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryDirectory.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Filter.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Sort.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Field.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryType.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Operator.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/FieldType.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tag.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsPart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsGenre.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsCountry.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsDirector.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsWriter.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRole.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Type.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Stream.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataPart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataGenre.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataCountry.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Guids.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Ratings.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataDirector.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataWriter.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRole.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Producer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenDirectory.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckLibraryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckStream.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckPart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckGuids.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Level.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinPlexResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Location.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamType.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Smart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistPlaylistsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PlaylistType.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamSmart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsPlaylistsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistPlaylistsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPlaylistsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsGenre.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsCountry.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsDirector.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsWriter.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRole.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsPlaylistsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Force.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenQueryParamType.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Scope.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsStatisticsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsDevice.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Account.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsSessionsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsStream.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsPart.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMedia.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/User.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Player.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Session.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistorySessionsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMetadata.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsSessionsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TranscodeSession.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusUpdaterResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Release.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusMediaContainer.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Download.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tonight.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Skip.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesRequest.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesErrors.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponseBody.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponse.java + - lib/src/main/java/lukehagar/plexapi/plexapi/models/shared/Security.java + - docs/models/operations/Errors.md + - docs/models/operations/GetServerCapabilitiesServerResponseBody.md + - docs/models/operations/Directory.md + - docs/models/operations/MediaContainer.md + - docs/models/operations/GetServerCapabilitiesResponseBody.md + - docs/models/operations/GetServerCapabilitiesResponse.md + - docs/models/operations/GetServerPreferencesErrors.md + - docs/models/operations/GetServerPreferencesServerResponseBody.md + - docs/models/operations/Setting.md + - docs/models/operations/GetServerPreferencesMediaContainer.md + - docs/models/operations/GetServerPreferencesResponseBody.md + - docs/models/operations/GetServerPreferencesResponse.md + - docs/models/operations/GetAvailableClientsErrors.md + - docs/models/operations/GetAvailableClientsServerResponseBody.md + - docs/models/operations/Server.md + - docs/models/operations/GetAvailableClientsMediaContainer.md + - docs/models/operations/GetAvailableClientsResponseBody.md + - docs/models/operations/GetAvailableClientsResponse.md + - docs/models/operations/GetDevicesErrors.md + - docs/models/operations/GetDevicesServerResponseBody.md + - docs/models/operations/Device.md + - docs/models/operations/GetDevicesMediaContainer.md + - docs/models/operations/GetDevicesResponseBody.md + - docs/models/operations/GetDevicesResponse.md + - docs/models/operations/GetServerIdentityErrors.md + - docs/models/operations/GetServerIdentityServerResponseBody.md + - docs/models/operations/GetServerIdentityMediaContainer.md + - docs/models/operations/GetServerIdentityResponseBody.md + - docs/models/operations/GetServerIdentityResponse.md + - docs/models/operations/GetMyPlexAccountErrors.md + - docs/models/operations/GetMyPlexAccountServerResponseBody.md + - docs/models/operations/MyPlex.md + - docs/models/operations/GetMyPlexAccountResponseBody.md + - docs/models/operations/GetMyPlexAccountResponse.md + - docs/models/operations/MinSize.md + - docs/models/operations/Upscale.md + - docs/models/operations/GetResizedPhotoRequest.md + - docs/models/operations/GetResizedPhotoErrors.md + - docs/models/operations/GetResizedPhotoResponseBody.md + - docs/models/operations/GetResizedPhotoResponse.md + - docs/models/operations/GetServerListErrors.md + - docs/models/operations/GetServerListServerResponseBody.md + - docs/models/operations/GetServerListServer.md + - docs/models/operations/GetServerListMediaContainer.md + - docs/models/operations/GetServerListResponseBody.md + - docs/models/operations/GetServerListResponse.md + - docs/models/operations/MarkPlayedRequest.md + - docs/models/operations/MarkPlayedErrors.md + - docs/models/operations/MarkPlayedResponseBody.md + - docs/models/operations/MarkPlayedResponse.md + - docs/models/operations/MarkUnplayedRequest.md + - docs/models/operations/MarkUnplayedErrors.md + - docs/models/operations/MarkUnplayedResponseBody.md + - docs/models/operations/MarkUnplayedResponse.md + - docs/models/operations/UpdatePlayProgressRequest.md + - docs/models/operations/UpdatePlayProgressErrors.md + - docs/models/operations/UpdatePlayProgressResponseBody.md + - docs/models/operations/UpdatePlayProgressResponse.md + - docs/models/operations/State.md + - docs/models/operations/GetTimelineRequest.md + - docs/models/operations/GetTimelineErrors.md + - docs/models/operations/GetTimelineResponseBody.md + - docs/models/operations/GetTimelineResponse.md + - docs/models/operations/StartUniversalTranscodeRequest.md + - docs/models/operations/StartUniversalTranscodeErrors.md + - docs/models/operations/StartUniversalTranscodeResponseBody.md + - docs/models/operations/StartUniversalTranscodeResponse.md + - docs/models/operations/GetServerActivitiesErrors.md + - docs/models/operations/GetServerActivitiesActivitiesResponseBody.md + - docs/models/operations/Context.md + - docs/models/operations/Activity.md + - docs/models/operations/GetServerActivitiesMediaContainer.md + - docs/models/operations/GetServerActivitiesResponseBody.md + - docs/models/operations/GetServerActivitiesResponse.md + - docs/models/operations/CancelServerActivitiesRequest.md + - docs/models/operations/CancelServerActivitiesErrors.md + - docs/models/operations/CancelServerActivitiesResponseBody.md + - docs/models/operations/CancelServerActivitiesResponse.md + - docs/models/operations/GetButlerTasksErrors.md + - docs/models/operations/GetButlerTasksButlerResponseBody.md + - docs/models/operations/ButlerTask.md + - docs/models/operations/ButlerTasks.md + - docs/models/operations/GetButlerTasksResponseBody.md + - docs/models/operations/GetButlerTasksResponse.md + - docs/models/operations/StartAllTasksErrors.md + - docs/models/operations/StartAllTasksResponseBody.md + - docs/models/operations/StartAllTasksResponse.md + - docs/models/operations/StopAllTasksErrors.md + - docs/models/operations/StopAllTasksResponseBody.md + - docs/models/operations/StopAllTasksResponse.md + - docs/models/operations/TaskName.md + - docs/models/operations/StartTaskRequest.md + - docs/models/operations/StartTaskErrors.md + - docs/models/operations/StartTaskResponseBody.md + - docs/models/operations/StartTaskResponse.md + - docs/models/operations/PathParamTaskName.md + - docs/models/operations/StopTaskRequest.md + - docs/models/operations/StopTaskErrors.md + - docs/models/operations/StopTaskResponseBody.md + - docs/models/operations/StopTaskResponse.md + - docs/models/operations/OnlyTransient.md + - docs/models/operations/GetGlobalHubsRequest.md + - docs/models/operations/GetGlobalHubsErrors.md + - docs/models/operations/GetGlobalHubsHubsResponseBody.md + - docs/models/operations/GetGlobalHubsMetadata.md + - docs/models/operations/Hub.md + - docs/models/operations/GetGlobalHubsMediaContainer.md + - docs/models/operations/GetGlobalHubsResponseBody.md + - docs/models/operations/GetGlobalHubsResponse.md + - docs/models/operations/QueryParamOnlyTransient.md + - docs/models/operations/GetLibraryHubsRequest.md + - docs/models/operations/GetLibraryHubsErrors.md + - docs/models/operations/GetLibraryHubsHubsResponseBody.md + - docs/models/operations/GetLibraryHubsPart.md + - docs/models/operations/GetLibraryHubsMedia.md + - docs/models/operations/GetLibraryHubsGenre.md + - docs/models/operations/GetLibraryHubsCountry.md + - docs/models/operations/GetLibraryHubsDirector.md + - docs/models/operations/GetLibraryHubsRole.md + - docs/models/operations/GetLibraryHubsWriter.md + - docs/models/operations/GetLibraryHubsMetadata.md + - docs/models/operations/GetLibraryHubsHub.md + - docs/models/operations/GetLibraryHubsMediaContainer.md + - docs/models/operations/GetLibraryHubsResponseBody.md + - docs/models/operations/GetLibraryHubsResponse.md + - docs/models/operations/PerformSearchRequest.md + - docs/models/operations/PerformSearchErrors.md + - docs/models/operations/PerformSearchResponseBody.md + - docs/models/operations/PerformSearchResponse.md + - docs/models/operations/PerformVoiceSearchRequest.md + - docs/models/operations/PerformVoiceSearchErrors.md + - docs/models/operations/PerformVoiceSearchResponseBody.md + - docs/models/operations/PerformVoiceSearchResponse.md + - docs/models/operations/GetSearchResultsRequest.md + - docs/models/operations/GetSearchResultsErrors.md + - docs/models/operations/GetSearchResultsSearchResponseBody.md + - docs/models/operations/GetSearchResultsPart.md + - docs/models/operations/GetSearchResultsMedia.md + - docs/models/operations/GetSearchResultsGenre.md + - docs/models/operations/GetSearchResultsDirector.md + - docs/models/operations/GetSearchResultsWriter.md + - docs/models/operations/GetSearchResultsCountry.md + - docs/models/operations/GetSearchResultsRole.md + - docs/models/operations/GetSearchResultsMetadata.md + - docs/models/operations/Provider.md + - docs/models/operations/GetSearchResultsMediaContainer.md + - docs/models/operations/GetSearchResultsResponseBody.md + - docs/models/operations/GetSearchResultsResponse.md + - docs/models/operations/GetFileHashRequest.md + - docs/models/operations/GetFileHashErrors.md + - docs/models/operations/GetFileHashResponseBody.md + - docs/models/operations/GetFileHashResponse.md + - docs/models/operations/GetRecentlyAddedErrors.md + - docs/models/operations/GetRecentlyAddedLibraryResponseBody.md + - docs/models/operations/Part.md + - docs/models/operations/Media.md + - docs/models/operations/Genre.md + - docs/models/operations/Director.md + - docs/models/operations/Writer.md + - docs/models/operations/Country.md + - docs/models/operations/Role.md + - docs/models/operations/Metadata.md + - docs/models/operations/GetRecentlyAddedMediaContainer.md + - docs/models/operations/GetRecentlyAddedResponseBody.md + - docs/models/operations/GetRecentlyAddedResponse.md + - docs/models/operations/GetLibrariesErrors.md + - docs/models/operations/GetLibrariesLibraryResponseBody.md + - docs/models/operations/GetLibrariesLocation.md + - docs/models/operations/GetLibrariesDirectory.md + - docs/models/operations/GetLibrariesMediaContainer.md + - docs/models/operations/GetLibrariesResponseBody.md + - docs/models/operations/GetLibrariesResponse.md + - docs/models/operations/IncludeDetails.md + - docs/models/operations/GetLibraryRequest.md + - docs/models/operations/GetLibraryErrors.md + - docs/models/operations/GetLibraryLibraryResponseBody.md + - docs/models/operations/GetLibraryDirectory.md + - docs/models/operations/Filter.md + - docs/models/operations/Sort.md + - docs/models/operations/Field.md + - docs/models/operations/GetLibraryType.md + - docs/models/operations/Operator.md + - docs/models/operations/FieldType.md + - docs/models/operations/GetLibraryMediaContainer.md + - docs/models/operations/GetLibraryResponseBody.md + - docs/models/operations/GetLibraryResponse.md + - docs/models/operations/DeleteLibraryRequest.md + - docs/models/operations/DeleteLibraryErrors.md + - docs/models/operations/DeleteLibraryResponseBody.md + - docs/models/operations/DeleteLibraryResponse.md + - docs/models/operations/Tag.md + - docs/models/operations/GetLibraryItemsRequest.md + - docs/models/operations/GetLibraryItemsPart.md + - docs/models/operations/GetLibraryItemsMedia.md + - docs/models/operations/GetLibraryItemsGenre.md + - docs/models/operations/GetLibraryItemsCountry.md + - docs/models/operations/GetLibraryItemsDirector.md + - docs/models/operations/GetLibraryItemsWriter.md + - docs/models/operations/GetLibraryItemsRole.md + - docs/models/operations/GetLibraryItemsMetadata.md + - docs/models/operations/GetLibraryItemsMediaContainer.md + - docs/models/operations/GetLibraryItemsResponseBody.md + - docs/models/operations/GetLibraryItemsResponse.md + - docs/models/operations/RefreshLibraryRequest.md + - docs/models/operations/RefreshLibraryErrors.md + - docs/models/operations/RefreshLibraryResponseBody.md + - docs/models/operations/RefreshLibraryResponse.md + - docs/models/operations/Type.md + - docs/models/operations/SearchLibraryRequest.md + - docs/models/operations/SearchLibraryMetadata.md + - docs/models/operations/SearchLibraryMediaContainer.md + - docs/models/operations/SearchLibraryResponseBody.md + - docs/models/operations/SearchLibraryResponse.md + - docs/models/operations/GetMetadataRequest.md + - docs/models/operations/GetMetadataErrors.md + - docs/models/operations/GetMetadataLibraryResponseBody.md + - docs/models/operations/Stream.md + - docs/models/operations/GetMetadataPart.md + - docs/models/operations/GetMetadataMedia.md + - docs/models/operations/GetMetadataGenre.md + - docs/models/operations/GetMetadataCountry.md + - docs/models/operations/Guids.md + - docs/models/operations/Ratings.md + - docs/models/operations/GetMetadataDirector.md + - docs/models/operations/GetMetadataWriter.md + - docs/models/operations/GetMetadataRole.md + - docs/models/operations/Producer.md + - docs/models/operations/GetMetadataMetadata.md + - docs/models/operations/GetMetadataMediaContainer.md + - docs/models/operations/GetMetadataResponseBody.md + - docs/models/operations/GetMetadataResponse.md + - docs/models/operations/GetMetadataChildrenRequest.md + - docs/models/operations/GetMetadataChildrenErrors.md + - docs/models/operations/GetMetadataChildrenLibraryResponseBody.md + - docs/models/operations/GetMetadataChildrenDirectory.md + - docs/models/operations/GetMetadataChildrenMetadata.md + - docs/models/operations/GetMetadataChildrenMediaContainer.md + - docs/models/operations/GetMetadataChildrenResponseBody.md + - docs/models/operations/GetMetadataChildrenResponse.md + - docs/models/operations/GetOnDeckErrors.md + - docs/models/operations/GetOnDeckLibraryResponseBody.md + - docs/models/operations/GetOnDeckStream.md + - docs/models/operations/GetOnDeckPart.md + - docs/models/operations/GetOnDeckMedia.md + - docs/models/operations/GetOnDeckGuids.md + - docs/models/operations/GetOnDeckMetadata.md + - docs/models/operations/GetOnDeckMediaContainer.md + - docs/models/operations/GetOnDeckResponseBody.md + - docs/models/operations/GetOnDeckResponse.md + - docs/models/operations/Level.md + - docs/models/operations/LogLineRequest.md + - docs/models/operations/LogLineErrors.md + - docs/models/operations/LogLineResponseBody.md + - docs/models/operations/LogLineResponse.md + - docs/models/operations/LogMultiLineErrors.md + - docs/models/operations/LogMultiLineResponseBody.md + - docs/models/operations/LogMultiLineResponse.md + - docs/models/operations/EnablePaperTrailErrors.md + - docs/models/operations/EnablePaperTrailResponseBody.md + - docs/models/operations/EnablePaperTrailResponse.md + - docs/models/operations/GetPinRequest.md + - docs/models/operations/GetPinErrors.md + - docs/models/operations/GetPinPlexResponseBody.md + - docs/models/operations/Location.md + - docs/models/operations/GetPinResponseBody.md + - docs/models/operations/GetPinResponse.md + - docs/models/operations/GetTokenRequest.md + - docs/models/operations/GetTokenErrors.md + - docs/models/operations/GetTokenResponseBody.md + - docs/models/operations/GetTokenResponse.md + - docs/models/operations/QueryParamType.md + - docs/models/operations/Smart.md + - docs/models/operations/CreatePlaylistRequest.md + - docs/models/operations/CreatePlaylistErrors.md + - docs/models/operations/CreatePlaylistPlaylistsResponseBody.md + - docs/models/operations/CreatePlaylistMetadata.md + - docs/models/operations/CreatePlaylistMediaContainer.md + - docs/models/operations/CreatePlaylistResponseBody.md + - docs/models/operations/CreatePlaylistResponse.md + - docs/models/operations/PlaylistType.md + - docs/models/operations/QueryParamSmart.md + - docs/models/operations/GetPlaylistsRequest.md + - docs/models/operations/GetPlaylistsErrors.md + - docs/models/operations/GetPlaylistsPlaylistsResponseBody.md + - docs/models/operations/GetPlaylistsMetadata.md + - docs/models/operations/GetPlaylistsMediaContainer.md + - docs/models/operations/GetPlaylistsResponseBody.md + - docs/models/operations/GetPlaylistsResponse.md + - docs/models/operations/GetPlaylistRequest.md + - docs/models/operations/GetPlaylistErrors.md + - docs/models/operations/GetPlaylistPlaylistsResponseBody.md + - docs/models/operations/GetPlaylistMetadata.md + - docs/models/operations/GetPlaylistMediaContainer.md + - docs/models/operations/GetPlaylistResponseBody.md + - docs/models/operations/GetPlaylistResponse.md + - docs/models/operations/DeletePlaylistRequest.md + - docs/models/operations/DeletePlaylistErrors.md + - docs/models/operations/DeletePlaylistResponseBody.md + - docs/models/operations/DeletePlaylistResponse.md + - docs/models/operations/UpdatePlaylistRequest.md + - docs/models/operations/UpdatePlaylistErrors.md + - docs/models/operations/UpdatePlaylistResponseBody.md + - docs/models/operations/UpdatePlaylistResponse.md + - docs/models/operations/GetPlaylistContentsRequest.md + - docs/models/operations/GetPlaylistContentsErrors.md + - docs/models/operations/GetPlaylistContentsPlaylistsResponseBody.md + - docs/models/operations/GetPlaylistContentsPart.md + - docs/models/operations/GetPlaylistContentsMedia.md + - docs/models/operations/GetPlaylistContentsGenre.md + - docs/models/operations/GetPlaylistContentsCountry.md + - docs/models/operations/GetPlaylistContentsDirector.md + - docs/models/operations/GetPlaylistContentsWriter.md + - docs/models/operations/GetPlaylistContentsRole.md + - docs/models/operations/GetPlaylistContentsMetadata.md + - docs/models/operations/GetPlaylistContentsMediaContainer.md + - docs/models/operations/GetPlaylistContentsResponseBody.md + - docs/models/operations/GetPlaylistContentsResponse.md + - docs/models/operations/ClearPlaylistContentsRequest.md + - docs/models/operations/ClearPlaylistContentsErrors.md + - docs/models/operations/ClearPlaylistContentsResponseBody.md + - docs/models/operations/ClearPlaylistContentsResponse.md + - docs/models/operations/AddPlaylistContentsRequest.md + - docs/models/operations/AddPlaylistContentsErrors.md + - docs/models/operations/AddPlaylistContentsPlaylistsResponseBody.md + - docs/models/operations/AddPlaylistContentsMetadata.md + - docs/models/operations/AddPlaylistContentsMediaContainer.md + - docs/models/operations/AddPlaylistContentsResponseBody.md + - docs/models/operations/AddPlaylistContentsResponse.md + - docs/models/operations/Force.md + - docs/models/operations/UploadPlaylistRequest.md + - docs/models/operations/UploadPlaylistErrors.md + - docs/models/operations/UploadPlaylistResponseBody.md + - docs/models/operations/UploadPlaylistResponse.md + - docs/models/operations/GetTransientTokenQueryParamType.md + - docs/models/operations/Scope.md + - docs/models/operations/GetTransientTokenRequest.md + - docs/models/operations/GetTransientTokenErrors.md + - docs/models/operations/GetTransientTokenResponseBody.md + - docs/models/operations/GetTransientTokenResponse.md + - docs/models/operations/GetSourceConnectionInformationRequest.md + - docs/models/operations/GetSourceConnectionInformationErrors.md + - docs/models/operations/GetSourceConnectionInformationResponseBody.md + - docs/models/operations/GetSourceConnectionInformationResponse.md + - docs/models/operations/GetStatisticsRequest.md + - docs/models/operations/GetStatisticsErrors.md + - docs/models/operations/GetStatisticsStatisticsResponseBody.md + - docs/models/operations/GetStatisticsDevice.md + - docs/models/operations/Account.md + - docs/models/operations/StatisticsMedia.md + - docs/models/operations/GetStatisticsMediaContainer.md + - docs/models/operations/GetStatisticsResponseBody.md + - docs/models/operations/GetStatisticsResponse.md + - docs/models/operations/GetSessionsErrors.md + - docs/models/operations/GetSessionsSessionsResponseBody.md + - docs/models/operations/GetSessionsStream.md + - docs/models/operations/GetSessionsPart.md + - docs/models/operations/GetSessionsMedia.md + - docs/models/operations/User.md + - docs/models/operations/Player.md + - docs/models/operations/Session.md + - docs/models/operations/GetSessionsMetadata.md + - docs/models/operations/GetSessionsMediaContainer.md + - docs/models/operations/GetSessionsResponseBody.md + - docs/models/operations/GetSessionsResponse.md + - docs/models/operations/GetSessionHistoryErrors.md + - docs/models/operations/GetSessionHistorySessionsResponseBody.md + - docs/models/operations/GetSessionHistoryMetadata.md + - docs/models/operations/GetSessionHistoryMediaContainer.md + - docs/models/operations/GetSessionHistoryResponseBody.md + - docs/models/operations/GetSessionHistoryResponse.md + - docs/models/operations/GetTranscodeSessionsErrors.md + - docs/models/operations/GetTranscodeSessionsSessionsResponseBody.md + - docs/models/operations/TranscodeSession.md + - docs/models/operations/GetTranscodeSessionsMediaContainer.md + - docs/models/operations/GetTranscodeSessionsResponseBody.md + - docs/models/operations/GetTranscodeSessionsResponse.md + - docs/models/operations/StopTranscodeSessionRequest.md + - docs/models/operations/StopTranscodeSessionErrors.md + - docs/models/operations/StopTranscodeSessionResponseBody.md + - docs/models/operations/StopTranscodeSessionResponse.md + - docs/models/operations/GetUpdateStatusErrors.md + - docs/models/operations/GetUpdateStatusUpdaterResponseBody.md + - docs/models/operations/Release.md + - docs/models/operations/GetUpdateStatusMediaContainer.md + - docs/models/operations/GetUpdateStatusResponseBody.md + - docs/models/operations/GetUpdateStatusResponse.md + - docs/models/operations/Download.md + - docs/models/operations/CheckForUpdatesRequest.md + - docs/models/operations/CheckForUpdatesErrors.md + - docs/models/operations/CheckForUpdatesResponseBody.md + - docs/models/operations/CheckForUpdatesResponse.md + - docs/models/operations/Tonight.md + - docs/models/operations/Skip.md + - docs/models/operations/ApplyUpdatesRequest.md + - docs/models/operations/ApplyUpdatesErrors.md + - docs/models/operations/ApplyUpdatesResponseBody.md + - docs/models/operations/ApplyUpdatesResponse.md + - docs/models/shared/Security.md + - USAGE.md diff --git a/README.md b/README.md index 78d13e6e..7167ca7c 100644 --- a/README.md +++ b/README.md @@ -130,3 +130,71 @@ To see what other functions this SDK is capable of, look inside `src/main/java/4 License: MIT. See license in LICENSE. + + + + + +## Server Selection + +## Server Selection + +### Select Server by Index + +You can override the default server globally using the `setServerIndex` option when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers: + +| # | Server | Variables | +| - | ------ | --------- | +| 0 | `{protocol}://{ip}:{port}` | `0` (default is `http`), `1` (default is `10.10.10.47`), `2` (default is `32400`) | + + + +#### Variables + +Some of the server options above contain variables. If you want to set the values of those variables, the following options are provided for doing so: + * `setZero ServerProtocol` + * `setOne String` + * `setTwo String` + +### Override Server URL Per-Client + +The default server can also be overridden globally using the `setServerURL` option when initializing the SDK client instance. For example: + + +### Override Server URL Per-Operation + +The server URL can also be overridden on a per-operation basis, provided a server list was specified for the operation. For example: +```java +package hello.world; + +import lukehagar.plexapi.plexapi.PlexAPI; +import lukehagar.plexapi.plexapi.models.operations.GetPinRequest; +import lukehagar.plexapi.plexapi.models.operations.GetPinResponse; +import lukehagar.plexapi.plexapi.models.shared.Security; + +public class Application { + public static void main(String[] args) { + try { + PlexAPI sdk = PlexAPI.builder() + .setSecurity(new Security( + ""){{ + accessToken = ""; + }}) + .build(); + + lukehagar.plexapi.plexapi.models.operations.GetPinResponse res = sdk.plex.getPin(serverUrl="https://plex.tv/api/v2", "", false); + + if (res.twoHundredApplicationJsonObject != null) { + // handle response + } + } catch (Exception e) { + // handle exception + } + } +} +``` + + + + + diff --git a/RELEASES.md b/RELEASES.md new file mode 100644 index 00000000..f2a2f2e0 --- /dev/null +++ b/RELEASES.md @@ -0,0 +1,9 @@ + + +## 2024-03-03 00:44:44 +### Changes +Based on: +- OpenAPI Doc 0.0.3 +- Speakeasy CLI 1.200.0 (2.277.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [java v0.0.1] . \ No newline at end of file diff --git a/USAGE.md b/USAGE.md new file mode 100644 index 00000000..40450d5b --- /dev/null +++ b/USAGE.md @@ -0,0 +1,30 @@ + +```java +package hello.world; + +import lukehagar.plexapi.plexapi.PlexAPI; +import lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponse; +import lukehagar.plexapi.plexapi.models.shared.Security; + +public class Application { + public static void main(String[] args) { + try { + PlexAPI sdk = PlexAPI.builder() + .setSecurity(new Security( + ""){{ + accessToken = ""; + }}) + .build(); + + lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponse res = sdk.server.getServerCapabilities(); + + if (res.twoHundredApplicationJsonObject != null) { + // handle response + } + } catch (Exception e) { + // handle exception + } + } +} +``` + \ No newline at end of file diff --git a/docs/models/operations/Account.md b/docs/models/operations/Account.md new file mode 100644 index 00000000..167268e2 --- /dev/null +++ b/docs/models/operations/Account.md @@ -0,0 +1,15 @@ +# Account + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 238960586 | +| `key` | *String* | :heavy_minus_sign: | N/A | /accounts/238960586 | +| `name` | *String* | :heavy_minus_sign: | N/A | Diane | +| `defaultAudioLanguage` | *String* | :heavy_minus_sign: | N/A | en | +| `autoSelectAudio` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `defaultSubtitleLanguage` | *String* | :heavy_minus_sign: | N/A | en | +| `subtitleMode` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | https://plex.tv/users/50d83634246da1de/avatar?c=1707110967 | \ No newline at end of file diff --git a/docs/models/operations/Activity.md b/docs/models/operations/Activity.md new file mode 100644 index 00000000..19fe7750 --- /dev/null +++ b/docs/models/operations/Activity.md @@ -0,0 +1,15 @@ +# Activity + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `uuid` | *String* | :heavy_minus_sign: | N/A | +| `type` | *String* | :heavy_minus_sign: | N/A | +| `cancellable` | *Boolean* | :heavy_minus_sign: | N/A | +| `userID` | *Double* | :heavy_minus_sign: | N/A | +| `title` | *String* | :heavy_minus_sign: | N/A | +| `subtitle` | *String* | :heavy_minus_sign: | N/A | +| `progress` | *Double* | :heavy_minus_sign: | N/A | +| `context` | [lukehagar.plexapi.plexapi.models.operations.Context](../../models/operations/Context.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/AddPlaylistContentsErrors.md b/docs/models/operations/AddPlaylistContentsErrors.md new file mode 100644 index 00000000..eed0ad87 --- /dev/null +++ b/docs/models/operations/AddPlaylistContentsErrors.md @@ -0,0 +1,10 @@ +# AddPlaylistContentsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/AddPlaylistContentsMediaContainer.md b/docs/models/operations/AddPlaylistContentsMediaContainer.md new file mode 100644 index 00000000..dc141683 --- /dev/null +++ b/docs/models/operations/AddPlaylistContentsMediaContainer.md @@ -0,0 +1,11 @@ +# AddPlaylistContentsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `leafCountAdded` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `leafCountRequested` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsMetadata](../../models/operations/AddPlaylistContentsMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "94",
"key": "/playlists/94/items",
"guid": "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2",
"type": "playlist",
"title": "A great playlist",
"summary": "One of my great playlists",
"smart": false,
"playlistType": "video",
"composite": "/playlists/94/composite/1705800070",
"duration": 423000,
"leafCount": 3,
"addedAt": 1705716458,
"updatedAt": 1705800070
}
] | \ No newline at end of file diff --git a/docs/models/operations/AddPlaylistContentsMetadata.md b/docs/models/operations/AddPlaylistContentsMetadata.md new file mode 100644 index 00000000..b08e0482 --- /dev/null +++ b/docs/models/operations/AddPlaylistContentsMetadata.md @@ -0,0 +1,20 @@ +# AddPlaylistContentsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 94 | +| `key` | *String* | :heavy_minus_sign: | N/A | /playlists/94/items | +| `guid` | *String* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2 | +| `type` | *String* | :heavy_minus_sign: | N/A | playlist | +| `title` | *String* | :heavy_minus_sign: | N/A | A great playlist | +| `summary` | *String* | :heavy_minus_sign: | N/A | One of my great playlists | +| `smart` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `playlistType` | *String* | :heavy_minus_sign: | N/A | video | +| `composite` | *String* | :heavy_minus_sign: | N/A | /playlists/94/composite/1705800070 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 423000 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 3 | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705716458 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705800070 | \ No newline at end of file diff --git a/docs/models/operations/AddPlaylistContentsPlaylistsResponseBody.md b/docs/models/operations/AddPlaylistContentsPlaylistsResponseBody.md new file mode 100644 index 00000000..92eafc8f --- /dev/null +++ b/docs/models/operations/AddPlaylistContentsPlaylistsResponseBody.md @@ -0,0 +1,10 @@ +# AddPlaylistContentsPlaylistsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsErrors](../../models/operations/AddPlaylistContentsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/AddPlaylistContentsRequest.md b/docs/models/operations/AddPlaylistContentsRequest.md new file mode 100644 index 00000000..c2b4ff10 --- /dev/null +++ b/docs/models/operations/AddPlaylistContentsRequest.md @@ -0,0 +1,10 @@ +# AddPlaylistContentsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | +| `playlistID` | *Double* | :heavy_check_mark: | the ID of the playlist | | +| `uri` | *String* | :heavy_check_mark: | the content URI for the playlist | server://12345/com.plexapp.plugins.library/library/metadata/1 | +| `playQueueID` | *Double* | :heavy_minus_sign: | the play queue to add to a playlist | 123 | \ No newline at end of file diff --git a/docs/models/operations/AddPlaylistContentsResponse.md b/docs/models/operations/AddPlaylistContentsResponse.md new file mode 100644 index 00000000..91a15af1 --- /dev/null +++ b/docs/models/operations/AddPlaylistContentsResponse.md @@ -0,0 +1,12 @@ +# AddPlaylistContentsResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponseBody](../../models/operations/AddPlaylistContentsResponseBody.md) | :heavy_minus_sign: | Playlist Updated | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsPlaylistsResponseBody](../../models/operations/AddPlaylistContentsPlaylistsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/AddPlaylistContentsResponseBody.md b/docs/models/operations/AddPlaylistContentsResponseBody.md new file mode 100644 index 00000000..8269dd23 --- /dev/null +++ b/docs/models/operations/AddPlaylistContentsResponseBody.md @@ -0,0 +1,10 @@ +# AddPlaylistContentsResponseBody + +Playlist Updated + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsMediaContainer](../../models/operations/AddPlaylistContentsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/ApplyUpdatesErrors.md b/docs/models/operations/ApplyUpdatesErrors.md new file mode 100644 index 00000000..73e0969c --- /dev/null +++ b/docs/models/operations/ApplyUpdatesErrors.md @@ -0,0 +1,10 @@ +# ApplyUpdatesErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/ApplyUpdatesRequest.md b/docs/models/operations/ApplyUpdatesRequest.md new file mode 100644 index 00000000..3db1757e --- /dev/null +++ b/docs/models/operations/ApplyUpdatesRequest.md @@ -0,0 +1,9 @@ +# ApplyUpdatesRequest + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tonight` | [lukehagar.plexapi.plexapi.models.operations.Tonight](../../models/operations/Tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install | +| `skip` | [lukehagar.plexapi.plexapi.models.operations.Skip](../../models/operations/Skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`. | \ No newline at end of file diff --git a/docs/models/operations/ApplyUpdatesResponse.md b/docs/models/operations/ApplyUpdatesResponse.md new file mode 100644 index 00000000..ef219889 --- /dev/null +++ b/docs/models/operations/ApplyUpdatesResponse.md @@ -0,0 +1,11 @@ +# ApplyUpdatesResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponseBody](../../models/operations/ApplyUpdatesResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/ApplyUpdatesResponseBody.md b/docs/models/operations/ApplyUpdatesResponseBody.md new file mode 100644 index 00000000..4d4ec4ae --- /dev/null +++ b/docs/models/operations/ApplyUpdatesResponseBody.md @@ -0,0 +1,10 @@ +# ApplyUpdatesResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesErrors](../../models/operations/ApplyUpdatesErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/ButlerTask.md b/docs/models/operations/ButlerTask.md new file mode 100644 index 00000000..70c37e6f --- /dev/null +++ b/docs/models/operations/ButlerTask.md @@ -0,0 +1,13 @@ +# ButlerTask + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `name` | *String* | :heavy_minus_sign: | N/A | BackupDatabase | +| `interval` | *Double* | :heavy_minus_sign: | N/A | 3 | +| `scheduleRandomized` | *Boolean* | :heavy_minus_sign: | N/A | | +| `enabled` | *Boolean* | :heavy_minus_sign: | N/A | | +| `title` | *String* | :heavy_minus_sign: | N/A | Backup Database | +| `description` | *String* | :heavy_minus_sign: | N/A | Create a backup copy of the server's database in the configured backup directory | \ No newline at end of file diff --git a/docs/models/operations/ButlerTasks.md b/docs/models/operations/ButlerTasks.md new file mode 100644 index 00000000..b16b4a42 --- /dev/null +++ b/docs/models/operations/ButlerTasks.md @@ -0,0 +1,8 @@ +# ButlerTasks + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `butlerTask` | List<[lukehagar.plexapi.plexapi.models.operations.ButlerTask](../../models/operations/ButlerTask.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/CancelServerActivitiesErrors.md b/docs/models/operations/CancelServerActivitiesErrors.md new file mode 100644 index 00000000..588154d7 --- /dev/null +++ b/docs/models/operations/CancelServerActivitiesErrors.md @@ -0,0 +1,10 @@ +# CancelServerActivitiesErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/CancelServerActivitiesRequest.md b/docs/models/operations/CancelServerActivitiesRequest.md new file mode 100644 index 00000000..c2201c84 --- /dev/null +++ b/docs/models/operations/CancelServerActivitiesRequest.md @@ -0,0 +1,8 @@ +# CancelServerActivitiesRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `activityUUID` | *String* | :heavy_check_mark: | The UUID of the activity to cancel. | \ No newline at end of file diff --git a/docs/models/operations/CancelServerActivitiesResponse.md b/docs/models/operations/CancelServerActivitiesResponse.md new file mode 100644 index 00000000..d5762e2a --- /dev/null +++ b/docs/models/operations/CancelServerActivitiesResponse.md @@ -0,0 +1,11 @@ +# CancelServerActivitiesResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesResponseBody](../../models/operations/CancelServerActivitiesResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/CancelServerActivitiesResponseBody.md b/docs/models/operations/CancelServerActivitiesResponseBody.md new file mode 100644 index 00000000..1a7e5398 --- /dev/null +++ b/docs/models/operations/CancelServerActivitiesResponseBody.md @@ -0,0 +1,10 @@ +# CancelServerActivitiesResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesErrors](../../models/operations/CancelServerActivitiesErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/CheckForUpdatesErrors.md b/docs/models/operations/CheckForUpdatesErrors.md new file mode 100644 index 00000000..91b54f04 --- /dev/null +++ b/docs/models/operations/CheckForUpdatesErrors.md @@ -0,0 +1,10 @@ +# CheckForUpdatesErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/CheckForUpdatesRequest.md b/docs/models/operations/CheckForUpdatesRequest.md new file mode 100644 index 00000000..ab07000c --- /dev/null +++ b/docs/models/operations/CheckForUpdatesRequest.md @@ -0,0 +1,8 @@ +# CheckForUpdatesRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `download` | [lukehagar.plexapi.plexapi.models.operations.Download](../../models/operations/Download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. | \ No newline at end of file diff --git a/docs/models/operations/CheckForUpdatesResponse.md b/docs/models/operations/CheckForUpdatesResponse.md new file mode 100644 index 00000000..16c9dc1e --- /dev/null +++ b/docs/models/operations/CheckForUpdatesResponse.md @@ -0,0 +1,11 @@ +# CheckForUpdatesResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesResponseBody](../../models/operations/CheckForUpdatesResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/CheckForUpdatesResponseBody.md b/docs/models/operations/CheckForUpdatesResponseBody.md new file mode 100644 index 00000000..797d59f6 --- /dev/null +++ b/docs/models/operations/CheckForUpdatesResponseBody.md @@ -0,0 +1,10 @@ +# CheckForUpdatesResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesErrors](../../models/operations/CheckForUpdatesErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/ClearPlaylistContentsErrors.md b/docs/models/operations/ClearPlaylistContentsErrors.md new file mode 100644 index 00000000..9bc5292b --- /dev/null +++ b/docs/models/operations/ClearPlaylistContentsErrors.md @@ -0,0 +1,10 @@ +# ClearPlaylistContentsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/ClearPlaylistContentsRequest.md b/docs/models/operations/ClearPlaylistContentsRequest.md new file mode 100644 index 00000000..8efb7949 --- /dev/null +++ b/docs/models/operations/ClearPlaylistContentsRequest.md @@ -0,0 +1,8 @@ +# ClearPlaylistContentsRequest + + +## Fields + +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `playlistID` | *Double* | :heavy_check_mark: | the ID of the playlist | \ No newline at end of file diff --git a/docs/models/operations/ClearPlaylistContentsResponse.md b/docs/models/operations/ClearPlaylistContentsResponse.md new file mode 100644 index 00000000..29168ba1 --- /dev/null +++ b/docs/models/operations/ClearPlaylistContentsResponse.md @@ -0,0 +1,11 @@ +# ClearPlaylistContentsResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsResponseBody](../../models/operations/ClearPlaylistContentsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/ClearPlaylistContentsResponseBody.md b/docs/models/operations/ClearPlaylistContentsResponseBody.md new file mode 100644 index 00000000..14faed5b --- /dev/null +++ b/docs/models/operations/ClearPlaylistContentsResponseBody.md @@ -0,0 +1,10 @@ +# ClearPlaylistContentsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsErrors](../../models/operations/ClearPlaylistContentsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Context.md b/docs/models/operations/Context.md new file mode 100644 index 00000000..9387fda8 --- /dev/null +++ b/docs/models/operations/Context.md @@ -0,0 +1,8 @@ +# Context + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `librarySectionID` | *String* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Country.md b/docs/models/operations/Country.md new file mode 100644 index 00000000..37c190b2 --- /dev/null +++ b/docs/models/operations/Country.md @@ -0,0 +1,8 @@ +# Country + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/models/operations/CreatePlaylistErrors.md b/docs/models/operations/CreatePlaylistErrors.md new file mode 100644 index 00000000..09a2da0b --- /dev/null +++ b/docs/models/operations/CreatePlaylistErrors.md @@ -0,0 +1,10 @@ +# CreatePlaylistErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/CreatePlaylistMediaContainer.md b/docs/models/operations/CreatePlaylistMediaContainer.md new file mode 100644 index 00000000..72db25bc --- /dev/null +++ b/docs/models/operations/CreatePlaylistMediaContainer.md @@ -0,0 +1,9 @@ +# CreatePlaylistMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 7 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.CreatePlaylistMetadata](../../models/operations/CreatePlaylistMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "96",
"key": "/playlists/96/items",
"guid": "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55",
"type": "playlist",
"title": "A Great Playlist",
"summary": "What a great playlist",
"smart": false,
"playlistType": "video",
"icon": "playlist://image.smart",
"viewCount": 1,
"lastViewedAt": 1705719589,
"leafCount": 1,
"addedAt": 1705719589,
"updatedAt": 1705724593,
"composite": "/playlists/96/composite/1705724593",
"duration": 141000
}
] | \ No newline at end of file diff --git a/docs/models/operations/CreatePlaylistMetadata.md b/docs/models/operations/CreatePlaylistMetadata.md new file mode 100644 index 00000000..a0864395 --- /dev/null +++ b/docs/models/operations/CreatePlaylistMetadata.md @@ -0,0 +1,23 @@ +# CreatePlaylistMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 96 | +| `key` | *String* | :heavy_minus_sign: | N/A | /playlists/96/items | +| `guid` | *String* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55 | +| `type` | *String* | :heavy_minus_sign: | N/A | playlist | +| `title` | *String* | :heavy_minus_sign: | N/A | A Great Playlist | +| `summary` | *String* | :heavy_minus_sign: | N/A | What a great playlist | +| `smart` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `playlistType` | *String* | :heavy_minus_sign: | N/A | video | +| `icon` | *String* | :heavy_minus_sign: | N/A | playlist://image.smart | +| `viewCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `lastViewedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705719589 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705719589 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705724593 | +| `composite` | *String* | :heavy_minus_sign: | N/A | /playlists/96/composite/1705724593 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 141000 | \ No newline at end of file diff --git a/docs/models/operations/CreatePlaylistPlaylistsResponseBody.md b/docs/models/operations/CreatePlaylistPlaylistsResponseBody.md new file mode 100644 index 00000000..4e0af524 --- /dev/null +++ b/docs/models/operations/CreatePlaylistPlaylistsResponseBody.md @@ -0,0 +1,10 @@ +# CreatePlaylistPlaylistsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.CreatePlaylistErrors](../../models/operations/CreatePlaylistErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/CreatePlaylistRequest.md b/docs/models/operations/CreatePlaylistRequest.md new file mode 100644 index 00000000..3843e5ac --- /dev/null +++ b/docs/models/operations/CreatePlaylistRequest.md @@ -0,0 +1,12 @@ +# CreatePlaylistRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| `title` | *String* | :heavy_check_mark: | name of the playlist | +| `type` | [lukehagar.plexapi.plexapi.models.operations.QueryParamType](../../models/operations/QueryParamType.md) | :heavy_check_mark: | type of playlist to create | +| `smart` | [lukehagar.plexapi.plexapi.models.operations.Smart](../../models/operations/Smart.md) | :heavy_check_mark: | whether the playlist is smart or not | +| `uri` | *String* | :heavy_check_mark: | the content URI for the playlist | +| `playQueueID` | *Double* | :heavy_minus_sign: | the play queue to copy to a playlist | \ No newline at end of file diff --git a/docs/models/operations/CreatePlaylistResponse.md b/docs/models/operations/CreatePlaylistResponse.md new file mode 100644 index 00000000..546853be --- /dev/null +++ b/docs/models/operations/CreatePlaylistResponse.md @@ -0,0 +1,12 @@ +# CreatePlaylistResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponseBody](../../models/operations/CreatePlaylistResponseBody.md) | :heavy_minus_sign: | returns all playlists | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.CreatePlaylistPlaylistsResponseBody](../../models/operations/CreatePlaylistPlaylistsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/CreatePlaylistResponseBody.md b/docs/models/operations/CreatePlaylistResponseBody.md new file mode 100644 index 00000000..d3e22008 --- /dev/null +++ b/docs/models/operations/CreatePlaylistResponseBody.md @@ -0,0 +1,10 @@ +# CreatePlaylistResponseBody + +returns all playlists + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.CreatePlaylistMediaContainer](../../models/operations/CreatePlaylistMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/DeleteLibraryErrors.md b/docs/models/operations/DeleteLibraryErrors.md new file mode 100644 index 00000000..b2b09534 --- /dev/null +++ b/docs/models/operations/DeleteLibraryErrors.md @@ -0,0 +1,10 @@ +# DeleteLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/DeleteLibraryRequest.md b/docs/models/operations/DeleteLibraryRequest.md new file mode 100644 index 00000000..3a104d8e --- /dev/null +++ b/docs/models/operations/DeleteLibraryRequest.md @@ -0,0 +1,8 @@ +# DeleteLibraryRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `sectionId` | *Double* | :heavy_check_mark: | the Id of the library to query | 1000 | \ No newline at end of file diff --git a/docs/models/operations/DeleteLibraryResponse.md b/docs/models/operations/DeleteLibraryResponse.md new file mode 100644 index 00000000..e2846a98 --- /dev/null +++ b/docs/models/operations/DeleteLibraryResponse.md @@ -0,0 +1,11 @@ +# DeleteLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.DeleteLibraryResponseBody](../../models/operations/DeleteLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/DeleteLibraryResponseBody.md b/docs/models/operations/DeleteLibraryResponseBody.md new file mode 100644 index 00000000..14cce9fd --- /dev/null +++ b/docs/models/operations/DeleteLibraryResponseBody.md @@ -0,0 +1,10 @@ +# DeleteLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.DeleteLibraryErrors](../../models/operations/DeleteLibraryErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/DeletePlaylistErrors.md b/docs/models/operations/DeletePlaylistErrors.md new file mode 100644 index 00000000..442b81b2 --- /dev/null +++ b/docs/models/operations/DeletePlaylistErrors.md @@ -0,0 +1,10 @@ +# DeletePlaylistErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/DeletePlaylistRequest.md b/docs/models/operations/DeletePlaylistRequest.md new file mode 100644 index 00000000..f2456f46 --- /dev/null +++ b/docs/models/operations/DeletePlaylistRequest.md @@ -0,0 +1,8 @@ +# DeletePlaylistRequest + + +## Fields + +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `playlistID` | *Double* | :heavy_check_mark: | the ID of the playlist | \ No newline at end of file diff --git a/docs/models/operations/DeletePlaylistResponse.md b/docs/models/operations/DeletePlaylistResponse.md new file mode 100644 index 00000000..2591f5e0 --- /dev/null +++ b/docs/models/operations/DeletePlaylistResponse.md @@ -0,0 +1,11 @@ +# DeletePlaylistResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.DeletePlaylistResponseBody](../../models/operations/DeletePlaylistResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/DeletePlaylistResponseBody.md b/docs/models/operations/DeletePlaylistResponseBody.md new file mode 100644 index 00000000..d214c316 --- /dev/null +++ b/docs/models/operations/DeletePlaylistResponseBody.md @@ -0,0 +1,10 @@ +# DeletePlaylistResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.DeletePlaylistErrors](../../models/operations/DeletePlaylistErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Device.md b/docs/models/operations/Device.md new file mode 100644 index 00000000..0c74d6b4 --- /dev/null +++ b/docs/models/operations/Device.md @@ -0,0 +1,12 @@ +# Device + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `name` | *String* | :heavy_minus_sign: | N/A | iPhone | +| `platform` | *String* | :heavy_minus_sign: | N/A | iOS | +| `clientIdentifier` | *String* | :heavy_minus_sign: | N/A | | +| `createdAt` | *Double* | :heavy_minus_sign: | N/A | 1654131230 | \ No newline at end of file diff --git a/docs/models/operations/Director.md b/docs/models/operations/Director.md new file mode 100644 index 00000000..91bf9173 --- /dev/null +++ b/docs/models/operations/Director.md @@ -0,0 +1,8 @@ +# Director + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Peyton Reed | \ No newline at end of file diff --git a/docs/models/operations/Directory.md b/docs/models/operations/Directory.md new file mode 100644 index 00000000..6bc58988 --- /dev/null +++ b/docs/models/operations/Directory.md @@ -0,0 +1,10 @@ +# Directory + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `count` | *Double* | :heavy_minus_sign: | N/A | +| `key` | *String* | :heavy_minus_sign: | N/A | +| `title` | *String* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Download.md b/docs/models/operations/Download.md new file mode 100644 index 00000000..1eb27ea5 --- /dev/null +++ b/docs/models/operations/Download.md @@ -0,0 +1,11 @@ +# Download + +Indicate that you want to start download any updates found. + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/EnablePaperTrailErrors.md b/docs/models/operations/EnablePaperTrailErrors.md new file mode 100644 index 00000000..f270d80d --- /dev/null +++ b/docs/models/operations/EnablePaperTrailErrors.md @@ -0,0 +1,10 @@ +# EnablePaperTrailErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/EnablePaperTrailResponse.md b/docs/models/operations/EnablePaperTrailResponse.md new file mode 100644 index 00000000..78e4b2bf --- /dev/null +++ b/docs/models/operations/EnablePaperTrailResponse.md @@ -0,0 +1,11 @@ +# EnablePaperTrailResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailResponseBody](../../models/operations/EnablePaperTrailResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/EnablePaperTrailResponseBody.md b/docs/models/operations/EnablePaperTrailResponseBody.md new file mode 100644 index 00000000..99226965 --- /dev/null +++ b/docs/models/operations/EnablePaperTrailResponseBody.md @@ -0,0 +1,10 @@ +# EnablePaperTrailResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailErrors](../../models/operations/EnablePaperTrailErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Errors.md b/docs/models/operations/Errors.md new file mode 100644 index 00000000..1fc78cac --- /dev/null +++ b/docs/models/operations/Errors.md @@ -0,0 +1,10 @@ +# Errors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/Field.md b/docs/models/operations/Field.md new file mode 100644 index 00000000..4462b598 --- /dev/null +++ b/docs/models/operations/Field.md @@ -0,0 +1,11 @@ +# Field + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *String* | :heavy_minus_sign: | N/A | label | +| `title` | *String* | :heavy_minus_sign: | N/A | Label | +| `type` | *String* | :heavy_minus_sign: | N/A | tag | +| `subType` | *String* | :heavy_minus_sign: | N/A | bitrate | \ No newline at end of file diff --git a/docs/models/operations/FieldType.md b/docs/models/operations/FieldType.md new file mode 100644 index 00000000..11204cd6 --- /dev/null +++ b/docs/models/operations/FieldType.md @@ -0,0 +1,9 @@ +# FieldType + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `type` | *String* | :heavy_minus_sign: | N/A | resolution | +| `operator` | List<[lukehagar.plexapi.plexapi.models.operations.Operator](../../models/operations/Operator.md)> | :heavy_minus_sign: | N/A | [
{
"key": "=",
"title": "is"
}
] | \ No newline at end of file diff --git a/docs/models/operations/Filter.md b/docs/models/operations/Filter.md new file mode 100644 index 00000000..d6b47fb6 --- /dev/null +++ b/docs/models/operations/Filter.md @@ -0,0 +1,12 @@ +# Filter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `filter` | *String* | :heavy_minus_sign: | N/A | label | +| `filterType` | *String* | :heavy_minus_sign: | N/A | string | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/sections/1/label | +| `title` | *String* | :heavy_minus_sign: | N/A | Labels | +| `type` | *String* | :heavy_minus_sign: | N/A | filter | \ No newline at end of file diff --git a/docs/models/operations/Force.md b/docs/models/operations/Force.md new file mode 100644 index 00000000..9bacc5e4 --- /dev/null +++ b/docs/models/operations/Force.md @@ -0,0 +1,15 @@ +# Force + +Force overwriting of duplicate playlists. +By default, a playlist file uploaded with the same path will overwrite the existing playlist. +The `force` argument is used to disable overwriting. +If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. + + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/Genre.md b/docs/models/operations/Genre.md new file mode 100644 index 00000000..a016b09d --- /dev/null +++ b/docs/models/operations/Genre.md @@ -0,0 +1,8 @@ +# Genre + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Comedy | \ No newline at end of file diff --git a/docs/models/operations/GetAvailableClientsErrors.md b/docs/models/operations/GetAvailableClientsErrors.md new file mode 100644 index 00000000..a17358dc --- /dev/null +++ b/docs/models/operations/GetAvailableClientsErrors.md @@ -0,0 +1,10 @@ +# GetAvailableClientsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetAvailableClientsMediaContainer.md b/docs/models/operations/GetAvailableClientsMediaContainer.md new file mode 100644 index 00000000..390d5d71 --- /dev/null +++ b/docs/models/operations/GetAvailableClientsMediaContainer.md @@ -0,0 +1,9 @@ +# GetAvailableClientsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `server` | List<[lukehagar.plexapi.plexapi.models.operations.Server](../../models/operations/Server.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetAvailableClientsResponse.md b/docs/models/operations/GetAvailableClientsResponse.md new file mode 100644 index 00000000..21abd974 --- /dev/null +++ b/docs/models/operations/GetAvailableClientsResponse.md @@ -0,0 +1,12 @@ +# GetAvailableClientsResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsResponseBody](../../models/operations/GetAvailableClientsResponseBody.md) | :heavy_minus_sign: | Available Clients | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsServerResponseBody](../../models/operations/GetAvailableClientsServerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetAvailableClientsResponseBody.md b/docs/models/operations/GetAvailableClientsResponseBody.md new file mode 100644 index 00000000..fdbfdd7a --- /dev/null +++ b/docs/models/operations/GetAvailableClientsResponseBody.md @@ -0,0 +1,10 @@ +# GetAvailableClientsResponseBody + +Available Clients + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsMediaContainer](../../models/operations/GetAvailableClientsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetAvailableClientsServerResponseBody.md b/docs/models/operations/GetAvailableClientsServerResponseBody.md new file mode 100644 index 00000000..fbe31588 --- /dev/null +++ b/docs/models/operations/GetAvailableClientsServerResponseBody.md @@ -0,0 +1,10 @@ +# GetAvailableClientsServerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsErrors](../../models/operations/GetAvailableClientsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetButlerTasksButlerResponseBody.md b/docs/models/operations/GetButlerTasksButlerResponseBody.md new file mode 100644 index 00000000..624a037f --- /dev/null +++ b/docs/models/operations/GetButlerTasksButlerResponseBody.md @@ -0,0 +1,10 @@ +# GetButlerTasksButlerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetButlerTasksErrors](../../models/operations/GetButlerTasksErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetButlerTasksErrors.md b/docs/models/operations/GetButlerTasksErrors.md new file mode 100644 index 00000000..b02149b9 --- /dev/null +++ b/docs/models/operations/GetButlerTasksErrors.md @@ -0,0 +1,10 @@ +# GetButlerTasksErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetButlerTasksResponse.md b/docs/models/operations/GetButlerTasksResponse.md new file mode 100644 index 00000000..9e2a5e4c --- /dev/null +++ b/docs/models/operations/GetButlerTasksResponse.md @@ -0,0 +1,12 @@ +# GetButlerTasksResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponseBody](../../models/operations/GetButlerTasksResponseBody.md) | :heavy_minus_sign: | All butler tasks | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetButlerTasksButlerResponseBody](../../models/operations/GetButlerTasksButlerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetButlerTasksResponseBody.md b/docs/models/operations/GetButlerTasksResponseBody.md new file mode 100644 index 00000000..b4c7cd56 --- /dev/null +++ b/docs/models/operations/GetButlerTasksResponseBody.md @@ -0,0 +1,10 @@ +# GetButlerTasksResponseBody + +All butler tasks + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `butlerTasks` | [lukehagar.plexapi.plexapi.models.operations.ButlerTasks](../../models/operations/ButlerTasks.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetDevicesErrors.md b/docs/models/operations/GetDevicesErrors.md new file mode 100644 index 00000000..427136cb --- /dev/null +++ b/docs/models/operations/GetDevicesErrors.md @@ -0,0 +1,10 @@ +# GetDevicesErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetDevicesMediaContainer.md b/docs/models/operations/GetDevicesMediaContainer.md new file mode 100644 index 00000000..652a9855 --- /dev/null +++ b/docs/models/operations/GetDevicesMediaContainer.md @@ -0,0 +1,10 @@ +# GetDevicesMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | 151 | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.system.devices | +| `device` | List<[lukehagar.plexapi.plexapi.models.operations.Device](../../models/operations/Device.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetDevicesResponse.md b/docs/models/operations/GetDevicesResponse.md new file mode 100644 index 00000000..988959d5 --- /dev/null +++ b/docs/models/operations/GetDevicesResponse.md @@ -0,0 +1,12 @@ +# GetDevicesResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetDevicesResponseBody](../../models/operations/GetDevicesResponseBody.md) | :heavy_minus_sign: | Devices | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetDevicesServerResponseBody](../../models/operations/GetDevicesServerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetDevicesResponseBody.md b/docs/models/operations/GetDevicesResponseBody.md new file mode 100644 index 00000000..cfceae91 --- /dev/null +++ b/docs/models/operations/GetDevicesResponseBody.md @@ -0,0 +1,10 @@ +# GetDevicesResponseBody + +Devices + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetDevicesMediaContainer](../../models/operations/GetDevicesMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetDevicesServerResponseBody.md b/docs/models/operations/GetDevicesServerResponseBody.md new file mode 100644 index 00000000..61763e48 --- /dev/null +++ b/docs/models/operations/GetDevicesServerResponseBody.md @@ -0,0 +1,10 @@ +# GetDevicesServerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetDevicesErrors](../../models/operations/GetDevicesErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetFileHashErrors.md b/docs/models/operations/GetFileHashErrors.md new file mode 100644 index 00000000..b751ce8b --- /dev/null +++ b/docs/models/operations/GetFileHashErrors.md @@ -0,0 +1,10 @@ +# GetFileHashErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetFileHashRequest.md b/docs/models/operations/GetFileHashRequest.md new file mode 100644 index 00000000..38db1e11 --- /dev/null +++ b/docs/models/operations/GetFileHashRequest.md @@ -0,0 +1,9 @@ +# GetFileHashRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| `url` | *String* | :heavy_check_mark: | This is the path to the local file, must be prefixed by `file://` | file://C:\Image.png&type=13 | +| `type` | *Double* | :heavy_minus_sign: | Item type | | \ No newline at end of file diff --git a/docs/models/operations/GetFileHashResponse.md b/docs/models/operations/GetFileHashResponse.md new file mode 100644 index 00000000..3351ff3e --- /dev/null +++ b/docs/models/operations/GetFileHashResponse.md @@ -0,0 +1,11 @@ +# GetFileHashResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.GetFileHashResponseBody](../../models/operations/GetFileHashResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetFileHashResponseBody.md b/docs/models/operations/GetFileHashResponseBody.md new file mode 100644 index 00000000..d8389587 --- /dev/null +++ b/docs/models/operations/GetFileHashResponseBody.md @@ -0,0 +1,10 @@ +# GetFileHashResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetFileHashErrors](../../models/operations/GetFileHashErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetGlobalHubsErrors.md b/docs/models/operations/GetGlobalHubsErrors.md new file mode 100644 index 00000000..dd02299f --- /dev/null +++ b/docs/models/operations/GetGlobalHubsErrors.md @@ -0,0 +1,10 @@ +# GetGlobalHubsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetGlobalHubsHubsResponseBody.md b/docs/models/operations/GetGlobalHubsHubsResponseBody.md new file mode 100644 index 00000000..1f577c71 --- /dev/null +++ b/docs/models/operations/GetGlobalHubsHubsResponseBody.md @@ -0,0 +1,10 @@ +# GetGlobalHubsHubsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsErrors](../../models/operations/GetGlobalHubsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetGlobalHubsMediaContainer.md b/docs/models/operations/GetGlobalHubsMediaContainer.md new file mode 100644 index 00000000..d0869bcf --- /dev/null +++ b/docs/models/operations/GetGlobalHubsMediaContainer.md @@ -0,0 +1,11 @@ +# GetGlobalHubsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 8 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `hub` | List<[lukehagar.plexapi.plexapi.models.operations.Hub](../../models/operations/Hub.md)> | :heavy_minus_sign: | N/A | [
{
"hubKey": "/library/metadata/50768,65523,58188,57341,57302,57070",
"key": "/playlists/all?type=15\u0026sort=lastViewedAt:desc\u0026playlistType=video,audio",
"title": "Recent Playlists",
"type": "playlist",
"hubIdentifier": "home.playlists",
"context": "hub.home.playlists",
"size": 6,
"more": true,
"style": "shelf",
"promoted": true,
"Metadata": [
{
"ratingKey": "50768",
"key": "/playlists/50768/items",
"guid": "com.plexapp.agents.none://81658e0d-cd4e-4c73-abb9-832b2ae2037b",
"type": "playlist",
"title": "❤️ Tracks",
"titleSort": "Tracks",
"summary": "All your highly rated tracks, in one convenient place.",
"smart": true,
"playlistType": "audio",
"composite": "/playlists/50768/composite/1704333758",
"icon": "playlist://image.smart",
"viewCount": 47,
"lastViewedAt": 1705329935,
"duration": 42864000,
"leafCount": 178,
"addedAt": 1655309388,
"updatedAt": 1704333758
},
{
"ratingKey": "65523",
"key": "/playlists/65523/items",
"guid": "com.plexapp.agents.none://1bcdd596-892b-4856-9f28-b4338c439300",
"type": "playlist",
"title": "Car Rides",
"summary": "",
"smart": false,
"playlistType": "audio",
"composite": "/playlists/65523/composite/1698597932",
"viewCount": 2,
"lastViewedAt": 1698597949,
"duration": 4864000,
"leafCount": 19,
"addedAt": 1697993545,
"updatedAt": 1698597932
},
{
"ratingKey": "58188",
"key": "/playlists/58188/items",
"guid": "com.plexapp.agents.none://8f0441d3-2a28-4644-a2f1-b7deeb290dff",
"type": "playlist",
"title": "Workout",
"summary": "",
"smart": false,
"playlistType": "audio",
"composite": "/playlists/58188/composite/1680825595",
"viewCount": 4,
"lastViewedAt": 1680825596,
"duration": 12522000,
"leafCount": 56,
"addedAt": 1679616785,
"updatedAt": 1680825595
},
{
"ratingKey": "57341",
"key": "/playlists/57341/items",
"guid": "com.plexapp.agents.none://bf8778c3-20a3-4619-8eb0-3c172c18ffd6",
"type": "playlist",
"title": "January Movie Day",
"summary": "",
"smart": false,
"playlistType": "video",
"composite": "/playlists/57341/composite/1673372385",
"viewCount": 1,
"lastViewedAt": 1673372306,
"duration": 19119000,
"leafCount": 3,
"addedAt": 1673372306,
"updatedAt": 1673372385
},
{
"ratingKey": "57302",
"key": "/playlists/57302/items",
"guid": "com.plexapp.agents.none://f25064ed-05bb-4bcf-b70c-ed7514b70929",
"type": "playlist",
"title": "December Movie Day",
"summary": "",
"smart": false,
"playlistType": "video",
"composite": "/playlists/57302/composite/1671205874",
"viewCount": 2,
"lastViewedAt": 1671206853,
"duration": 23040000,
"leafCount": 3,
"addedAt": 1671197078,
"updatedAt": 1671205874
},
{
"ratingKey": "57070",
"key": "/playlists/57070/items",
"guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c",
"type": "playlist",
"title": "November Movie Day",
"summary": "",
"smart": false,
"playlistType": "video",
"composite": "/playlists/57070/composite/1668787730",
"viewCount": 2,
"lastViewedAt": 1668787732,
"duration": 16873000,
"leafCount": 3,
"addedAt": 1668779618,
"updatedAt": 1668787730
}
]
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetGlobalHubsMetadata.md b/docs/models/operations/GetGlobalHubsMetadata.md new file mode 100644 index 00000000..b78def02 --- /dev/null +++ b/docs/models/operations/GetGlobalHubsMetadata.md @@ -0,0 +1,24 @@ +# GetGlobalHubsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 57070 | +| `key` | *String* | :heavy_minus_sign: | N/A | /playlists/57070/items | +| `guid` | *String* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c | +| `type` | *String* | :heavy_minus_sign: | N/A | playlist | +| `title` | *String* | :heavy_minus_sign: | N/A | November Movie Day | +| `titleSort` | *String* | :heavy_minus_sign: | N/A | Tracks | +| `summary` | *String* | :heavy_minus_sign: | N/A | | +| `smart` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `playlistType` | *String* | :heavy_minus_sign: | N/A | video | +| `composite` | *String* | :heavy_minus_sign: | N/A | /playlists/57070/composite/1668787730 | +| `icon` | *String* | :heavy_minus_sign: | N/A | playlist://image.smart | +| `viewCount` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `lastViewedAt` | *Integer* | :heavy_minus_sign: | N/A | 1668787732 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 16873000 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 3 | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1668779618 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1668787730 | \ No newline at end of file diff --git a/docs/models/operations/GetGlobalHubsRequest.md b/docs/models/operations/GetGlobalHubsRequest.md new file mode 100644 index 00000000..16f8ebbb --- /dev/null +++ b/docs/models/operations/GetGlobalHubsRequest.md @@ -0,0 +1,9 @@ +# GetGlobalHubsRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `count` | *Double* | :heavy_minus_sign: | The number of items to return with each hub. | +| `onlyTransient` | [lukehagar.plexapi.plexapi.models.operations.OnlyTransient](../../models/operations/OnlyTransient.md) | :heavy_minus_sign: | Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). | \ No newline at end of file diff --git a/docs/models/operations/GetGlobalHubsResponse.md b/docs/models/operations/GetGlobalHubsResponse.md new file mode 100644 index 00000000..245051d3 --- /dev/null +++ b/docs/models/operations/GetGlobalHubsResponse.md @@ -0,0 +1,12 @@ +# GetGlobalHubsResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponseBody](../../models/operations/GetGlobalHubsResponseBody.md) | :heavy_minus_sign: | returns global hubs | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsHubsResponseBody](../../models/operations/GetGlobalHubsHubsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetGlobalHubsResponseBody.md b/docs/models/operations/GetGlobalHubsResponseBody.md new file mode 100644 index 00000000..e96468a4 --- /dev/null +++ b/docs/models/operations/GetGlobalHubsResponseBody.md @@ -0,0 +1,10 @@ +# GetGlobalHubsResponseBody + +returns global hubs + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsMediaContainer](../../models/operations/GetGlobalHubsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibrariesDirectory.md b/docs/models/operations/GetLibrariesDirectory.md new file mode 100644 index 00000000..c2277e88 --- /dev/null +++ b/docs/models/operations/GetLibrariesDirectory.md @@ -0,0 +1,28 @@ +# GetLibrariesDirectory + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `art` | *String* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg | +| `composite` | *String* | :heavy_minus_sign: | N/A | /library/sections/1/composite/1705615584 | +| `filters` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `refreshing` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /:/resources/movie.png | +| `key` | *String* | :heavy_minus_sign: | N/A | 1 | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Movies | +| `agent` | *String* | :heavy_minus_sign: | N/A | tv.plex.agents.movie | +| `scanner` | *String* | :heavy_minus_sign: | N/A | Plex Movie | +| `language` | *String* | :heavy_minus_sign: | N/A | en-US | +| `uuid` | *String* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705615634 | +| `createdAt` | *Integer* | :heavy_minus_sign: | N/A | 1654131312 | +| `scannedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705615584 | +| `content` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `directory` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `contentChangedAt` | *Integer* | :heavy_minus_sign: | N/A | 3192854 | +| `hidden` | *Integer* | :heavy_minus_sign: | N/A | 0 | +| `location` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibrariesLocation](../../models/operations/GetLibrariesLocation.md)> | :heavy_minus_sign: | N/A | [
{
"id": 1,
"path": "/movies"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetLibrariesErrors.md b/docs/models/operations/GetLibrariesErrors.md new file mode 100644 index 00000000..eeee5d06 --- /dev/null +++ b/docs/models/operations/GetLibrariesErrors.md @@ -0,0 +1,10 @@ +# GetLibrariesErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetLibrariesLibraryResponseBody.md b/docs/models/operations/GetLibrariesLibraryResponseBody.md new file mode 100644 index 00000000..b5dae85a --- /dev/null +++ b/docs/models/operations/GetLibrariesLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetLibrariesLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibrariesErrors](../../models/operations/GetLibrariesErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibrariesLocation.md b/docs/models/operations/GetLibrariesLocation.md new file mode 100644 index 00000000..1f11a6c2 --- /dev/null +++ b/docs/models/operations/GetLibrariesLocation.md @@ -0,0 +1,9 @@ +# GetLibrariesLocation + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `path` | *String* | :heavy_minus_sign: | N/A | /movies | \ No newline at end of file diff --git a/docs/models/operations/GetLibrariesMediaContainer.md b/docs/models/operations/GetLibrariesMediaContainer.md new file mode 100644 index 00000000..bde1f698 --- /dev/null +++ b/docs/models/operations/GetLibrariesMediaContainer.md @@ -0,0 +1,11 @@ +# GetLibrariesMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 5 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `title1` | *String* | :heavy_minus_sign: | N/A | Plex Library | +| `directory` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibrariesDirectory](../../models/operations/GetLibrariesDirectory.md)> | :heavy_minus_sign: | N/A | [
{
"allowSync": true,
"art": "/:/resources/movie-fanart.jpg",
"composite": "/library/sections/1/composite/1705615584",
"filters": true,
"refreshing": false,
"thumb": "/:/resources/movie.png",
"key": "1",
"type": "movie",
"title": "Movies",
"agent": "tv.plex.agents.movie",
"scanner": "Plex Movie",
"language": "en-US",
"uuid": "322a231a-b7f7-49f5-920f-14c61199cd30",
"updatedAt": 1705615634,
"createdAt": 1654131312,
"scannedAt": 1705615584,
"content": true,
"directory": true,
"contentChangedAt": 3192854,
"hidden": 0,
"Location": [
{
"id": 1,
"path": "/movies"
}
]
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetLibrariesResponse.md b/docs/models/operations/GetLibrariesResponse.md new file mode 100644 index 00000000..d6dba0cd --- /dev/null +++ b/docs/models/operations/GetLibrariesResponse.md @@ -0,0 +1,12 @@ +# GetLibrariesResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponseBody](../../models/operations/GetLibrariesResponseBody.md) | :heavy_minus_sign: | The libraries available on the Server | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetLibrariesLibraryResponseBody](../../models/operations/GetLibrariesLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetLibrariesResponseBody.md b/docs/models/operations/GetLibrariesResponseBody.md new file mode 100644 index 00000000..d77b2626 --- /dev/null +++ b/docs/models/operations/GetLibrariesResponseBody.md @@ -0,0 +1,10 @@ +# GetLibrariesResponseBody + +The libraries available on the Server + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetLibrariesMediaContainer](../../models/operations/GetLibrariesMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryDirectory.md b/docs/models/operations/GetLibraryDirectory.md new file mode 100644 index 00000000..90e620ec --- /dev/null +++ b/docs/models/operations/GetLibraryDirectory.md @@ -0,0 +1,12 @@ +# GetLibraryDirectory + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *String* | :heavy_minus_sign: | N/A | search?type=1 | +| `title` | *String* | :heavy_minus_sign: | N/A | Search... | +| `secondary` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `prompt` | *String* | :heavy_minus_sign: | N/A | Search Movies | +| `search` | *Boolean* | :heavy_minus_sign: | N/A | true | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryErrors.md b/docs/models/operations/GetLibraryErrors.md new file mode 100644 index 00000000..7ddaed5f --- /dev/null +++ b/docs/models/operations/GetLibraryErrors.md @@ -0,0 +1,10 @@ +# GetLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsCountry.md b/docs/models/operations/GetLibraryHubsCountry.md new file mode 100644 index 00000000..4eab22dc --- /dev/null +++ b/docs/models/operations/GetLibraryHubsCountry.md @@ -0,0 +1,8 @@ +# GetLibraryHubsCountry + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsDirector.md b/docs/models/operations/GetLibraryHubsDirector.md new file mode 100644 index 00000000..f6bc8bc1 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsDirector.md @@ -0,0 +1,8 @@ +# GetLibraryHubsDirector + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Nathan Greno | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsErrors.md b/docs/models/operations/GetLibraryHubsErrors.md new file mode 100644 index 00000000..cc067b30 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsErrors.md @@ -0,0 +1,10 @@ +# GetLibraryHubsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsGenre.md b/docs/models/operations/GetLibraryHubsGenre.md new file mode 100644 index 00000000..bdbffa5c --- /dev/null +++ b/docs/models/operations/GetLibraryHubsGenre.md @@ -0,0 +1,8 @@ +# GetLibraryHubsGenre + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Animation | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsHub.md b/docs/models/operations/GetLibraryHubsHub.md new file mode 100644 index 00000000..05b36ffe --- /dev/null +++ b/docs/models/operations/GetLibraryHubsHub.md @@ -0,0 +1,19 @@ +# GetLibraryHubsHub + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0 | +| `title` | *String* | :heavy_minus_sign: | N/A | Recently Played Movies | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `hubIdentifier` | *String* | :heavy_minus_sign: | N/A | movie.recentlyviewed.1 | +| `context` | *String* | :heavy_minus_sign: | N/A | hub.movie.recentlyviewed | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 6 | +| `more` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `style` | *String* | :heavy_minus_sign: | N/A | shelf | +| `hubKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/66485,66098,57249,11449,5858,14944 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsMetadata](../../models/operations/GetLibraryHubsMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "14944",
"key": "/library/metadata/14944",
"guid": "plex://movie/5d77686eeb5d26001f1eb339",
"studio": "Walt Disney Animation Studios",
"type": "movie",
"title": "Tangled",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "PG",
"summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.",
"rating": 8.9,
"audienceRating": 8.7,
"viewCount": 1,
"lastViewedAt": 1704936047,
"year": 2010,
"tagline": "They're taking adventure to new lengths.",
"thumb": "/library/metadata/14944/thumb/1705739847",
"art": "/library/metadata/14944/art/1705739847",
"duration": 6017237,
"originallyAvailableAt": "2010-11-24T00:00:00Z",
"addedAt": 1589412494,
"updatedAt": 1705739847,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"primaryExtraKey": "/library/metadata/14952",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 38247,
"duration": 6017237,
"bitrate": 2051,
"width": 1920,
"height": 1080,
"aspectRatio": 1.78,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 1,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 38247,
"key": "/library/parts/38247/1589412494/file.mp4",
"duration": 6017237,
"file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4",
"size": 1545647447,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
]
}
],
"Genre": [
{
"tag": "Comedy"
},
{
"tag": "Animation"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "Byron Howard"
},
{
"tag": "Nathan Greno"
}
],
"Role": [
{
"tag": "Mandy Moore"
},
{
"tag": "Zachary Levi"
},
{
"tag": "Donna Murphy"
}
],
"Writer": [
{
"tag": "Jacob Grimm"
},
{
"tag": "Wilhelm Grimm"
}
],
"skipCount": 1,
"chapterSource": "media"
}
] | +| `promoted` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `random` | *Boolean* | :heavy_minus_sign: | N/A | true | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsHubsResponseBody.md b/docs/models/operations/GetLibraryHubsHubsResponseBody.md new file mode 100644 index 00000000..20db4015 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsHubsResponseBody.md @@ -0,0 +1,10 @@ +# GetLibraryHubsHubsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsErrors](../../models/operations/GetLibraryHubsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsMedia.md b/docs/models/operations/GetLibraryHubsMedia.md new file mode 100644 index 00000000..5c92c2f9 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsMedia.md @@ -0,0 +1,24 @@ +# GetLibraryHubsMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 38247 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 6017237 | +| `bitrate` | *Integer* | :heavy_minus_sign: | N/A | 2051 | +| `width` | *Integer* | :heavy_minus_sign: | N/A | 1920 | +| `height` | *Integer* | :heavy_minus_sign: | N/A | 1080 | +| `aspectRatio` | *Double* | :heavy_minus_sign: | N/A | 1.78 | +| `audioChannels` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | aac | +| `videoCodec` | *String* | :heavy_minus_sign: | N/A | h264 | +| `videoResolution` | *String* | :heavy_minus_sign: | N/A | 1080 | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `videoFrameRate` | *String* | :heavy_minus_sign: | N/A | 24p | +| `optimizedForStreaming` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsPart](../../models/operations/GetLibraryHubsPart.md)> | :heavy_minus_sign: | N/A | [
{
"id": 38247,
"key": "/library/parts/38247/1589412494/file.mp4",
"duration": 6017237,
"file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4",
"size": 1545647447,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsMediaContainer.md b/docs/models/operations/GetLibraryHubsMediaContainer.md new file mode 100644 index 00000000..dc4795bf --- /dev/null +++ b/docs/models/operations/GetLibraryHubsMediaContainer.md @@ -0,0 +1,14 @@ +# GetLibraryHubsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 7 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionUUID` | *String* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | +| `hub` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsHub](../../models/operations/GetLibraryHubsHub.md)> | :heavy_minus_sign: | N/A | [
{
"key": "/library/sections/1/all?sort=lastViewedAt:desc\u0026unwatched=0\u0026viewOffset=0",
"title": "Recently Played Movies",
"type": "movie",
"hubIdentifier": "movie.recentlyviewed.1",
"context": "hub.movie.recentlyviewed",
"size": 6,
"more": true,
"style": "shelf",
"hubKey": "/library/metadata/66485,66098,57249,11449,5858,14944",
"Metadata": [
{
"ratingKey": "66485",
"key": "/library/metadata/66485",
"guid": "plex://movie/5d776c3251dd69001fe38bb4",
"studio": "Termite Films",
"type": "movie",
"title": "Kedi",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "Not Rated",
"summary": "A profile of an ancient city and its unique people, seen through the eyes of the most mysterious and beloved animal humans have ever known, the Cat.",
"rating": 9.8,
"audienceRating": 8.5,
"viewCount": 2,
"lastViewedAt": 1705786111,
"year": 2017,
"tagline": "A cat meowing at your feet, looking up at you, is life smiling at you...",
"thumb": "/library/metadata/66485/thumb/1702586907",
"art": "/library/metadata/66485/art/1702586907",
"duration": 4736174,
"originallyAvailableAt": "2017-02-10T00:00:00Z",
"addedAt": 1702586905,
"updatedAt": 1702586907,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"primaryExtraKey": "/library/metadata/66486",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 129531,
"duration": 4736174,
"bitrate": 2377,
"width": 1920,
"height": 1080,
"aspectRatio": 1.78,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 0,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 129778,
"key": "/library/parts/129778/1702586883/file.mp4",
"duration": 4736174,
"file": "/movies/Kedi (2017)/Kedi (2017) 1080p x264.mp4",
"size": 1410810905,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": false,
"videoProfile": "high"
}
]
}
],
"Genre": [
{
"tag": "Documentary"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "Ceyda Torun"
}
],
"Role": [
{
"tag": "Bülent Üstün"
}
]
},
{
"ratingKey": "66098",
"key": "/library/metadata/66098",
"guid": "plex://movie/5d9f34f4adeb7a0021ce020f",
"studio": "Touchwood Pacific Partners 1",
"type": "movie",
"title": "Homeward Bound: The Incredible Journey",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "G",
"summary": "A fun-loving American bulldog pup, a hilarious Himalayan cat, and a wise old golden retriever embark on a long trek through the rugged wilderness of the Sierra Nevada mountains in a quest to reach home and their beloved owners.",
"rating": 8.7,
"audienceRating": 7.1,
"viewCount": 2,
"lastViewedAt": 1705709811,
"year": 1993,
"tagline": "In the classic tradition of Walt Disney Pictures comes a story about courage, adventure and friendship.",
"thumb": "/library/metadata/66098/thumb/1703148781",
"art": "/library/metadata/66098/art/1703148781",
"duration": 5065775,
"originallyAvailableAt": "1993-02-12T00:00:00Z",
"addedAt": 1700434925,
"updatedAt": 1703148781,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"primaryExtraKey": "/library/metadata/66099",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 129003,
"duration": 5065775,
"bitrate": 2444,
"width": 1904,
"height": 1024,
"aspectRatio": 1.85,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 1,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 129250,
"key": "/library/parts/129250/1700434864/file.mp4",
"duration": 5065775,
"file": "/movies/Homeward Bound The Incredible Journey (1993)/Homeward Bound The Incredible Journey (1993) [BluRay] [1080p] [YTS.LT].mp4",
"size": 1550855333,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
]
}
],
"Genre": [
{
"tag": "Adventure"
},
{
"tag": "Comedy"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "Duwayne Dunham"
}
],
"Writer": [
{
"tag": "Caroline Thompson"
},
{
"tag": "Linda Woolverton"
}
],
"Role": [
{
"tag": "Michael J. Fox"
},
{
"tag": "Sally Field"
},
{
"tag": "Don Ameche"
}
]
},
{
"ratingKey": "57249",
"key": "/library/metadata/57249",
"guid": "plex://movie/60eff7d3e22797002c55c1cc",
"studio": "Nickelodeon Movies",
"type": "movie",
"title": "Blue's Big City Adventure",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "TV-Y",
"summary": "Josh and Blue skidoo to New York City to audition for Rainbow Puppy's Broadway musical, but they get lost when Josh accidentally left his Handy Dandy Notebook at home. This leads to a game of Blue's Clues to figure out where the audition is. Meanwhile, Tickety Tock and her friends go to New York City to find Josh and Blue and get to the audition with help from Joe and Steve.",
"rating": 8.3,
"audienceRating": 8.6,
"viewCount": 8,
"skipCount": 1,
"lastViewedAt": 1705681955,
"year": 2022,
"tagline": "All They Need is You.",
"thumb": "/library/metadata/57249/thumb/1704274800",
"art": "/library/metadata/57249/art/1704274800",
"duration": 4459050,
"originallyAvailableAt": "2022-11-18T00:00:00Z",
"addedAt": 1669671356,
"updatedAt": 1704274800,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"primaryExtraKey": "/library/metadata/57250",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 115470,
"duration": 4459050,
"bitrate": 6384,
"width": 3840,
"height": 2160,
"aspectRatio": 1.78,
"audioChannels": 6,
"audioCodec": "aac",
"videoCodec": "hevc",
"videoResolution": "4k",
"container": "mkv",
"videoFrameRate": "24p",
"audioProfile": "lc",
"videoProfile": "main 10",
"Part": [
{
"id": 115478,
"key": "/library/parts/115478/1669671340/file.mkv",
"duration": 4459050,
"file": "/movies/Blue's Big City Adventure (2022)/Blues.Big.City.Adventure.2022.2160p.4K.WEB.x265.10bit.AAC5.1-[YTS.MX].mkv",
"size": 3560750664,
"audioProfile": "lc",
"container": "mkv",
"videoProfile": "main 10"
}
]
}
],
"Genre": [
{
"tag": "Comedy"
},
{
"tag": "Family"
}
],
"Country": [
{
"tag": "Canada"
},
{
"tag": "Ireland"
}
],
"Director": [
{
"tag": "Matt Stawski"
}
],
"Writer": [
{
"tag": "Traci Paige Johnson"
},
{
"tag": "Todd Kessler"
}
],
"Role": [
{
"tag": "Joshua Dela Cruz"
},
{
"tag": "Steve Burns"
},
{
"tag": "Donovan Patton"
}
]
},
{
"ratingKey": "11449",
"key": "/library/metadata/11449",
"guid": "plex://movie/5d776edfad5437001f803cf9",
"studio": "Walt Disney Pictures",
"type": "movie",
"title": "Onward",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "PG",
"summary": "In a magical world full of technological advances, elven brothers Ian and Barley Lightfoot set out on an adventure to resurrect their late father for a day.",
"rating": 8.8,
"audienceRating": 9.5,
"viewCount": 3,
"lastViewedAt": 1705543126,
"year": 2020,
"tagline": "Their quest begineth.",
"thumb": "/library/metadata/11449/thumb/1705224000",
"art": "/library/metadata/11449/art/1705224000",
"duration": 6141428,
"originallyAvailableAt": "2020-03-04T00:00:00Z",
"addedAt": 1589237130,
"updatedAt": 1705224000,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"chapterSource": "media",
"primaryExtraKey": "/library/metadata/11470",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 29291,
"duration": 6141428,
"bitrate": 10977,
"width": 1920,
"height": 804,
"aspectRatio": 2.35,
"audioChannels": 8,
"audioCodec": "dca-ma",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mkv",
"videoFrameRate": "24p",
"audioProfile": "ma",
"videoProfile": "high",
"Part": [
{
"id": 29291,
"key": "/library/parts/29291/1589237130/file.mkv",
"duration": 6141428,
"file": "/movies/Onward (2020)/Onward (2020) Bluray-1080p.mkv",
"size": 8426669232,
"audioProfile": "ma",
"container": "mkv",
"videoProfile": "high"
}
]
},
{
"id": 29315,
"duration": 6142006,
"bitrate": 2639,
"width": 1920,
"height": 800,
"aspectRatio": 2.35,
"audioChannels": 6,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 1,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 29315,
"key": "/library/parts/29315/1629002847/file.mp4",
"duration": 6142006,
"file": "/movies/Onward (2020)/Onward (2020) WEBRip-1080p.mp4",
"size": 2026154995,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
]
}
],
"Genre": [
{
"tag": "Animation"
},
{
"tag": "Comedy"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "Dan Scanlon"
}
],
"Writer": [
{
"tag": "Kelsey Mann"
},
{
"tag": "Dan Scanlon"
}
],
"Role": [
{
"tag": "Tom Holland"
},
{
"tag": "Chris Pratt"
},
{
"tag": "Julia Louis-Dreyfus"
}
]
},
{
"ratingKey": "5858",
"key": "/library/metadata/5858",
"guid": "plex://movie/5d776b85594b2b001e6dc641",
"studio": "Walt Disney Pictures",
"type": "movie",
"title": "Frozen II",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "PG",
"summary": "Anna, Elsa, Kristoff, Olaf and Sven leave Arendelle to travel to an ancient, autumn-bound forest of an enchanted land. They set out to find the origin of Elsa's powers in order to save their kingdom.",
"rating": 7.7,
"audienceRating": 9.2,
"viewCount": 1,
"skipCount": 1,
"lastViewedAt": 1705337663,
"year": 2019,
"tagline": "The past is not what it seems.",
"thumb": "/library/metadata/5858/thumb/1704621922",
"art": "/library/metadata/5858/art/1704621922",
"duration": 6194042,
"originallyAvailableAt": "2019-11-20T00:00:00Z",
"addedAt": 1588207762,
"updatedAt": 1704621922,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"primaryExtraKey": "/library/metadata/5892",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 14954,
"duration": 6194042,
"bitrate": 2538,
"width": 1920,
"height": 800,
"aspectRatio": 2.35,
"audioChannels": 6,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 1,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 14954,
"key": "/library/parts/14954/1588207762/file.mp4",
"duration": 6194042,
"file": "/movies/Frozen II (2019)/Frozen II (2019) Bluray-1080p.mp4",
"size": 1969230037,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
]
},
{
"id": 14999,
"duration": 6244271,
"bitrate": 2536,
"width": 1920,
"height": 800,
"aspectRatio": 2.35,
"audioChannels": 6,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 1,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 14999,
"key": "/library/parts/14999/1629001526/file.mp4",
"duration": 6244271,
"file": "/movies/Frozen II (2019)/Frozen II (2019) WEBRip-1080p.mp4",
"size": 1983357282,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
]
}
],
"Genre": [
{
"tag": "Adventure"
},
{
"tag": "Animation"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "Chris Buck"
},
{
"tag": "Jennifer Lee"
}
],
"Writer": [
{
"tag": "Chris Buck"
},
{
"tag": "Hans Christian Andersen"
}
],
"Role": [
{
"tag": "Idina Menzel"
},
{
"tag": "Kristen Bell"
},
{
"tag": "Josh Gad"
}
]
},
{
"ratingKey": "14944",
"key": "/library/metadata/14944",
"guid": "plex://movie/5d77686eeb5d26001f1eb339",
"studio": "Walt Disney Animation Studios",
"type": "movie",
"title": "Tangled",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "PG",
"summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.",
"rating": 8.9,
"audienceRating": 8.7,
"viewCount": 1,
"lastViewedAt": 1704936047,
"year": 2010,
"tagline": "They're taking adventure to new lengths.",
"thumb": "/library/metadata/14944/thumb/1705739847",
"art": "/library/metadata/14944/art/1705739847",
"duration": 6017237,
"originallyAvailableAt": "2010-11-24T00:00:00Z",
"addedAt": 1589412494,
"updatedAt": 1705739847,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"primaryExtraKey": "/library/metadata/14952",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 38247,
"duration": 6017237,
"bitrate": 2051,
"width": 1920,
"height": 1080,
"aspectRatio": 1.78,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 1,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 38247,
"key": "/library/parts/38247/1589412494/file.mp4",
"duration": 6017237,
"file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4",
"size": 1545647447,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
]
}
],
"Genre": [
{
"tag": "Comedy"
},
{
"tag": "Animation"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "Byron Howard"
},
{
"tag": "Nathan Greno"
}
],
"Writer": [
{
"tag": "Jacob Grimm"
},
{
"tag": "Wilhelm Grimm"
}
],
"Role": [
{
"tag": "Mandy Moore"
},
{
"tag": "Zachary Levi"
},
{
"tag": "Donna Murphy"
}
]
}
],
"promoted": true,
"random": true
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsMetadata.md b/docs/models/operations/GetLibraryHubsMetadata.md new file mode 100644 index 00000000..ed1ffb4c --- /dev/null +++ b/docs/models/operations/GetLibraryHubsMetadata.md @@ -0,0 +1,41 @@ +# GetLibraryHubsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 14944 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/14944 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://movie/5d77686eeb5d26001f1eb339 | +| `studio` | *String* | :heavy_minus_sign: | N/A | Walt Disney Animation Studios | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Tangled | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionKey` | *String* | :heavy_minus_sign: | N/A | /library/sections/1 | +| `contentRating` | *String* | :heavy_minus_sign: | N/A | PG | +| `summary` | *String* | :heavy_minus_sign: | N/A | The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is. | +| `rating` | *Double* | :heavy_minus_sign: | N/A | 8.9 | +| `audienceRating` | *Double* | :heavy_minus_sign: | N/A | 8.7 | +| `viewCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `lastViewedAt` | *Integer* | :heavy_minus_sign: | N/A | 1704936047 | +| `year` | *Integer* | :heavy_minus_sign: | N/A | 2010 | +| `tagline` | *String* | :heavy_minus_sign: | N/A | They're taking adventure to new lengths. | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/14944/thumb/1705739847 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/14944/art/1705739847 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 6017237 | +| `originallyAvailableAt` | [LocalDate](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) | :heavy_minus_sign: | N/A | 2010-11-24 00:00:00 +0000 UTC | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1589412494 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705739847 | +| `audienceRatingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | +| `primaryExtraKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/14952 | +| `ratingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | +| `media` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsMedia](../../models/operations/GetLibraryHubsMedia.md)> | :heavy_minus_sign: | N/A | [
{
"id": 38247,
"duration": 6017237,
"bitrate": 2051,
"width": 1920,
"height": 1080,
"aspectRatio": 1.78,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 1,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 38247,
"key": "/library/parts/38247/1589412494/file.mp4",
"duration": 6017237,
"file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4",
"size": 1545647447,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": true,
"videoProfile": "high"
}
]
}
] | +| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsGenre](../../models/operations/GetLibraryHubsGenre.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Animation"
}
] | +| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsCountry](../../models/operations/GetLibraryHubsCountry.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "United States of America"
}
] | +| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsDirector](../../models/operations/GetLibraryHubsDirector.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Nathan Greno"
}
] | +| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsRole](../../models/operations/GetLibraryHubsRole.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Donna Murphy"
}
] | +| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsWriter](../../models/operations/GetLibraryHubsWriter.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Wilhelm Grimm"
}
] | +| `skipCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `chapterSource` | *String* | :heavy_minus_sign: | N/A | media | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsPart.md b/docs/models/operations/GetLibraryHubsPart.md new file mode 100644 index 00000000..61a76e07 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsPart.md @@ -0,0 +1,17 @@ +# GetLibraryHubsPart + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 38247 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/38247/1589412494/file.mp4 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 6017237 | +| `file` | *String* | :heavy_minus_sign: | N/A | /movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4 | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 1545647447 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsRequest.md b/docs/models/operations/GetLibraryHubsRequest.md new file mode 100644 index 00000000..8b8f0b0c --- /dev/null +++ b/docs/models/operations/GetLibraryHubsRequest.md @@ -0,0 +1,10 @@ +# GetLibraryHubsRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sectionId` | *Double* | :heavy_check_mark: | the Id of the library to query | +| `count` | *Double* | :heavy_minus_sign: | The number of items to return with each hub. | +| `onlyTransient` | [lukehagar.plexapi.plexapi.models.operations.QueryParamOnlyTransient](../../models/operations/QueryParamOnlyTransient.md) | :heavy_minus_sign: | Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsResponse.md b/docs/models/operations/GetLibraryHubsResponse.md new file mode 100644 index 00000000..48b6e424 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsResponse.md @@ -0,0 +1,12 @@ +# GetLibraryHubsResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponseBody](../../models/operations/GetLibraryHubsResponseBody.md) | :heavy_minus_sign: | The hubs specific to the library | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsHubsResponseBody](../../models/operations/GetLibraryHubsHubsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsResponseBody.md b/docs/models/operations/GetLibraryHubsResponseBody.md new file mode 100644 index 00000000..f14c5412 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsResponseBody.md @@ -0,0 +1,10 @@ +# GetLibraryHubsResponseBody + +The hubs specific to the library + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsMediaContainer](../../models/operations/GetLibraryHubsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsRole.md b/docs/models/operations/GetLibraryHubsRole.md new file mode 100644 index 00000000..3aa6faa8 --- /dev/null +++ b/docs/models/operations/GetLibraryHubsRole.md @@ -0,0 +1,8 @@ +# GetLibraryHubsRole + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Donna Murphy | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryHubsWriter.md b/docs/models/operations/GetLibraryHubsWriter.md new file mode 100644 index 00000000..90e8cb3d --- /dev/null +++ b/docs/models/operations/GetLibraryHubsWriter.md @@ -0,0 +1,8 @@ +# GetLibraryHubsWriter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Wilhelm Grimm | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsCountry.md b/docs/models/operations/GetLibraryItemsCountry.md new file mode 100644 index 00000000..59458f63 --- /dev/null +++ b/docs/models/operations/GetLibraryItemsCountry.md @@ -0,0 +1,8 @@ +# GetLibraryItemsCountry + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsDirector.md b/docs/models/operations/GetLibraryItemsDirector.md new file mode 100644 index 00000000..e3456f8f --- /dev/null +++ b/docs/models/operations/GetLibraryItemsDirector.md @@ -0,0 +1,8 @@ +# GetLibraryItemsDirector + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsGenre.md b/docs/models/operations/GetLibraryItemsGenre.md new file mode 100644 index 00000000..b42c3983 --- /dev/null +++ b/docs/models/operations/GetLibraryItemsGenre.md @@ -0,0 +1,8 @@ +# GetLibraryItemsGenre + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Adventure | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsMedia.md b/docs/models/operations/GetLibraryItemsMedia.md new file mode 100644 index 00000000..e911dad5 --- /dev/null +++ b/docs/models/operations/GetLibraryItemsMedia.md @@ -0,0 +1,21 @@ +# GetLibraryItemsMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 119534 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 11558112 | +| `bitrate` | *Integer* | :heavy_minus_sign: | N/A | 25025 | +| `width` | *Integer* | :heavy_minus_sign: | N/A | 3840 | +| `height` | *Integer* | :heavy_minus_sign: | N/A | 2072 | +| `aspectRatio` | *Double* | :heavy_minus_sign: | N/A | 1.85 | +| `audioChannels` | *Integer* | :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_minus_sign: | N/A | mkv | +| `videoFrameRate` | *String* | :heavy_minus_sign: | N/A | 24p | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | main 10 | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsPart](../../models/operations/GetLibraryItemsPart.md)> | :heavy_minus_sign: | N/A | [
{
"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",
"videoProfile": "main 10"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsMediaContainer.md b/docs/models/operations/GetLibraryItemsMediaContainer.md new file mode 100644 index 00000000..58ae4d03 --- /dev/null +++ b/docs/models/operations/GetLibraryItemsMediaContainer.md @@ -0,0 +1,23 @@ +# GetLibraryItemsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 70 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `art` | *String* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionUUID` | *String* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Integer* | :heavy_minus_sign: | N/A | 1701731894 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /:/resources/movie.png | +| `title1` | *String* | :heavy_minus_sign: | N/A | Movies | +| `title2` | *String* | :heavy_minus_sign: | N/A | Recently Released | +| `viewGroup` | *String* | :heavy_minus_sign: | N/A | movie | +| `viewMode` | *Integer* | :heavy_minus_sign: | N/A | 65592 | +| `mixedParents` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsMetadata](../../models/operations/GetLibraryItemsMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "58683",
"key": "/library/metadata/58683",
"guid": "plex://movie/5d7768ba96b655001fdc0408",
"studio": "20th Century Studios",
"type": "movie",
"title": "Avatar: The Way of Water",
"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",
"duration": 11558112,
"originallyAvailableAt": "2022-12-14T00:00:00Z",
"addedAt": 1680457607,
"updatedAt": 1703239236,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"chapterSource": "media",
"primaryExtraKey": "/library/metadata/58684",
"ratingImage": "rottentomatoes://image.rating.ripe",
"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",
"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",
"videoProfile": "main 10"
}
]
}
],
"Genre": [
{
"tag": "Action"
},
{
"tag": "Adventure"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "James Cameron"
}
],
"Writer": [
{
"tag": "Josh Friedman"
},
{
"tag": "James Cameron"
}
],
"Role": [
{
"tag": "Sam Worthington"
},
{
"tag": "Zoe Saldaña"
},
{
"tag": "Sigourney Weaver"
}
],
"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",
"grandparentRatingKey": "66",
"grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4",
"grandparentKey": "/library/metadata/66",
"grandparentTitle": "Caprica",
"grandparentThumb": "/library/metadata/66/thumb/1705716261",
"grandparentArt": "/library/metadata/66/art/1705716261",
"grandparentTheme": "/library/metadata/66/theme/1705716261"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsMetadata.md b/docs/models/operations/GetLibraryItemsMetadata.md new file mode 100644 index 00000000..19abc1c9 --- /dev/null +++ b/docs/models/operations/GetLibraryItemsMetadata.md @@ -0,0 +1,64 @@ +# GetLibraryItemsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 58683 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/58683 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://movie/5d7768ba96b655001fdc0408 | +| `studio` | *String* | :heavy_minus_sign: | N/A | 20th Century Studios | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Avatar: The Way of Water | +| `contentRating` | *String* | :heavy_minus_sign: | N/A | PG-13 | +| `summary` | *String* | :heavy_minus_sign: | 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` | *Integer* | :heavy_minus_sign: | N/A | 2022 | +| `tagline` | *String* | :heavy_minus_sign: | N/A | Return to Pandora. | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 11558112 | +| `originallyAvailableAt` | [LocalDate](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1680457607 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1703239236 | +| `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 | +| `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<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsMedia](../../models/operations/GetLibraryItemsMedia.md)> | :heavy_minus_sign: | N/A | [
{
"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",
"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",
"videoProfile": "main 10"
}
]
}
] | +| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsGenre](../../models/operations/GetLibraryItemsGenre.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Adventure"
}
] | +| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsCountry](../../models/operations/GetLibraryItemsCountry.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "United States of America"
}
] | +| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsDirector](../../models/operations/GetLibraryItemsDirector.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "James Cameron"
}
] | +| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsWriter](../../models/operations/GetLibraryItemsWriter.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "James Cameron"
}
] | +| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsRole](../../models/operations/GetLibraryItemsRole.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Sigourney Weaver"
}
] | +| `titleSort` | *String* | :heavy_minus_sign: | N/A | Whale | +| `viewCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `lastViewedAt` | *Integer* | :heavy_minus_sign: | N/A | 1682752242 | +| `originalTitle` | *String* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 | +| `viewOffset` | *Integer* | :heavy_minus_sign: | N/A | 5222500 | +| `skipCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `index` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `theme` | *String* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 14 | +| `viewedLeafCount` | *Integer* | :heavy_minus_sign: | N/A | 0 | +| `childCount` | *Integer* | :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: | N/A | 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` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `parentYear` | *Integer* | :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 diff --git a/docs/models/operations/GetLibraryItemsPart.md b/docs/models/operations/GetLibraryItemsPart.md new file mode 100644 index 00000000..3b1be653 --- /dev/null +++ b/docs/models/operations/GetLibraryItemsPart.md @@ -0,0 +1,14 @@ +# GetLibraryItemsPart + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 119542 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/119542/1680457526/file.mkv | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 11558112 | +| `file` | *String* | :heavy_minus_sign: | 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_minus_sign: | N/A | 36158371307 | +| `container` | *String* | :heavy_minus_sign: | N/A | mkv | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | main 10 | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsRequest.md b/docs/models/operations/GetLibraryItemsRequest.md new file mode 100644 index 00000000..7761cfcb --- /dev/null +++ b/docs/models/operations/GetLibraryItemsRequest.md @@ -0,0 +1,9 @@ +# GetLibraryItemsRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `sectionId` | *Long* | :heavy_check_mark: | the Id of the library to query | +| `tag` | [lukehagar.plexapi.plexapi.models.operations.Tag](../../models/operations/Tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsResponse.md b/docs/models/operations/GetLibraryItemsResponse.md new file mode 100644 index 00000000..2d1542f6 --- /dev/null +++ b/docs/models/operations/GetLibraryItemsResponse.md @@ -0,0 +1,11 @@ +# GetLibraryItemsResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsResponseBody](../../models/operations/GetLibraryItemsResponseBody.md) | :heavy_minus_sign: | The contents of the library by section and tag | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsResponseBody.md b/docs/models/operations/GetLibraryItemsResponseBody.md new file mode 100644 index 00000000..c0f1b56c --- /dev/null +++ b/docs/models/operations/GetLibraryItemsResponseBody.md @@ -0,0 +1,10 @@ +# GetLibraryItemsResponseBody + +The contents of the library by section and tag + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsMediaContainer](../../models/operations/GetLibraryItemsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsRole.md b/docs/models/operations/GetLibraryItemsRole.md new file mode 100644 index 00000000..13644e2b --- /dev/null +++ b/docs/models/operations/GetLibraryItemsRole.md @@ -0,0 +1,8 @@ +# GetLibraryItemsRole + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Sigourney Weaver | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsWriter.md b/docs/models/operations/GetLibraryItemsWriter.md new file mode 100644 index 00000000..e972fb0a --- /dev/null +++ b/docs/models/operations/GetLibraryItemsWriter.md @@ -0,0 +1,8 @@ +# GetLibraryItemsWriter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryLibraryResponseBody.md b/docs/models/operations/GetLibraryLibraryResponseBody.md new file mode 100644 index 00000000..f259a390 --- /dev/null +++ b/docs/models/operations/GetLibraryLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetLibraryLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryErrors](../../models/operations/GetLibraryErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryMediaContainer.md b/docs/models/operations/GetLibraryMediaContainer.md new file mode 100644 index 00000000..e54f0aff --- /dev/null +++ b/docs/models/operations/GetLibraryMediaContainer.md @@ -0,0 +1,22 @@ +# GetLibraryMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 29 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `art` | *String* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg | +| `content` | *String* | :heavy_minus_sign: | N/A | secondary | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Integer* | :heavy_minus_sign: | N/A | 1701731894 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /:/resources/movie.png | +| `title1` | *String* | :heavy_minus_sign: | N/A | Movies | +| `viewGroup` | *String* | :heavy_minus_sign: | N/A | secondary | +| `viewMode` | *Integer* | :heavy_minus_sign: | N/A | 65592 | +| `directory` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryDirectory](../../models/operations/GetLibraryDirectory.md)> | :heavy_minus_sign: | N/A | [
{
"key": "search?type=1",
"title": "Search...",
"secondary": true,
"prompt": "Search Movies",
"search": true
}
] | +| `type` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryType](../../models/operations/GetLibraryType.md)> | :heavy_minus_sign: | N/A | [
{
"key": "/library/sections/1/all?type=1",
"type": "movie",
"title": "Movies",
"active": false,
"Filter": [
{
"filter": "genre",
"filterType": "string",
"key": "/library/sections/1/genre",
"title": "Genre",
"type": "filter"
},
{
"filter": "year",
"filterType": "integer",
"key": "/library/sections/1/year",
"title": "Year",
"type": "filter"
},
{
"filter": "decade",
"filterType": "integer",
"key": "/library/sections/1/decade",
"title": "Decade",
"type": "filter"
},
{
"filter": "contentRating",
"filterType": "string",
"key": "/library/sections/1/contentRating",
"title": "Content Rating",
"type": "filter"
},
{
"filter": "collection",
"filterType": "string",
"key": "/library/sections/1/collection",
"title": "Collection",
"type": "filter"
},
{
"filter": "director",
"filterType": "string",
"key": "/library/sections/1/director",
"title": "Director",
"type": "filter"
},
{
"filter": "actor",
"filterType": "string",
"key": "/library/sections/1/actor",
"title": "Actor",
"type": "filter"
},
{
"filter": "writer",
"filterType": "string",
"key": "/library/sections/1/writer",
"title": "Writer",
"type": "filter"
},
{
"filter": "producer",
"filterType": "string",
"key": "/library/sections/1/producer",
"title": "Producer",
"type": "filter"
},
{
"filter": "country",
"filterType": "string",
"key": "/library/sections/1/country",
"title": "Country",
"type": "filter"
},
{
"filter": "studio",
"filterType": "string",
"key": "/library/sections/1/studio",
"title": "Studio",
"type": "filter"
},
{
"filter": "resolution",
"filterType": "string",
"key": "/library/sections/1/resolution",
"title": "Resolution",
"type": "filter"
},
{
"filter": "hdr",
"filterType": "boolean",
"key": "/library/sections/1/hdr",
"title": "HDR",
"type": "filter"
},
{
"filter": "unwatched",
"filterType": "boolean",
"key": "/library/sections/1/unwatched",
"title": "Unplayed",
"type": "filter"
},
{
"filter": "inProgress",
"filterType": "boolean",
"key": "/library/sections/1/inProgress",
"title": "In Progress",
"type": "filter"
},
{
"filter": "unmatched",
"filterType": "boolean",
"key": "/library/sections/1/unmatched",
"title": "Unmatched",
"type": "filter"
},
{
"filter": "audioLanguage",
"filterType": "string",
"key": "/library/sections/1/audioLanguage",
"title": "Audio Language",
"type": "filter"
},
{
"filter": "subtitleLanguage",
"filterType": "string",
"key": "/library/sections/1/subtitleLanguage",
"title": "Subtitle Language",
"type": "filter"
},
{
"filter": "editionTitle",
"filterType": "string",
"key": "/library/sections/1/editionTitle",
"title": "Edition",
"type": "filter"
},
{
"filter": "label",
"filterType": "string",
"key": "/library/sections/1/label",
"title": "Labels",
"type": "filter"
}
],
"Sort": [
{
"default": "asc",
"defaultDirection": "asc",
"descKey": "titleSort:desc",
"firstCharacterKey": "/library/sections/1/firstCharacter",
"key": "titleSort",
"title": "Title"
},
{
"defaultDirection": "desc",
"descKey": "originallyAvailableAt:desc",
"key": "originallyAvailableAt",
"title": "Release Date"
},
{
"defaultDirection": "desc",
"descKey": "rating:desc",
"key": "rating",
"title": "Critic Rating"
},
{
"defaultDirection": "desc",
"descKey": "audienceRating:desc",
"key": "audienceRating",
"title": "Audience Rating"
},
{
"defaultDirection": "desc",
"descKey": "duration:desc",
"key": "duration",
"title": "Duration"
},
{
"defaultDirection": "desc",
"descKey": "addedAt:desc",
"key": "addedAt",
"title": "Date Added"
},
{
"defaultDirection": "desc",
"descKey": "lastViewedAt:desc",
"key": "lastViewedAt",
"title": "Date Viewed"
},
{
"defaultDirection": "asc",
"descKey": "mediaHeight:desc",
"key": "mediaHeight",
"title": "Resolution"
},
{
"defaultDirection": "desc",
"descKey": "random:desc",
"key": "random",
"title": "Randomly"
}
],
"Field": [
{
"key": "title",
"title": "Title",
"type": "string"
},
{
"key": "studio",
"title": "Studio",
"type": "string"
},
{
"key": "userRating",
"subType": "rating",
"title": "Rating",
"type": "integer"
},
{
"key": "contentRating",
"title": "Content Rating",
"type": "tag"
},
{
"key": "year",
"subType": "year",
"title": "Year",
"type": "integer"
},
{
"key": "decade",
"subType": "decade",
"title": "Decade",
"type": "integer"
},
{
"key": "originallyAvailableAt",
"title": "Release Date",
"type": "date"
},
{
"key": "duration",
"subType": "duration",
"title": "Duration",
"type": "integer"
},
{
"key": "unmatched",
"title": "Unmatched",
"type": "boolean"
},
{
"key": "duplicate",
"title": "Duplicate",
"type": "boolean"
},
{
"key": "genre",
"title": "Genre",
"type": "tag"
},
{
"key": "collection",
"title": "Collection",
"type": "tag"
},
{
"key": "director",
"title": "Director",
"type": "tag"
},
{
"key": "writer",
"title": "Writer",
"type": "tag"
},
{
"key": "producer",
"title": "Producer",
"type": "tag"
},
{
"key": "actor",
"title": "Actor",
"type": "tag"
},
{
"key": "country",
"title": "Country",
"type": "tag"
},
{
"key": "addedAt",
"title": "Date Added",
"type": "date"
},
{
"key": "viewCount",
"title": "Plays",
"type": "integer"
},
{
"key": "lastViewedAt",
"title": "Last Played",
"type": "date"
},
{
"key": "unwatched",
"title": "Unplayed",
"type": "boolean"
},
{
"key": "resolution",
"title": "Resolution",
"type": "resolution"
},
{
"key": "hdr",
"subType": "hdr",
"title": "HDR",
"type": "boolean"
},
{
"key": "mediaSize",
"subType": "fileSize",
"title": "File Size",
"type": "integer"
},
{
"key": "mediaBitrate",
"subType": "bitrate",
"title": "Bitrate",
"type": "integer"
},
{
"key": "subtitleLanguage",
"title": "Subtitle Language",
"type": "subtitleLanguage"
},
{
"key": "audioLanguage",
"title": "Audio Language",
"type": "audioLanguage"
},
{
"key": "inProgress",
"title": "In Progress",
"type": "boolean"
},
{
"key": "trash",
"title": "Trash",
"type": "boolean"
},
{
"key": "editionTitle",
"title": "Edition",
"type": "string"
},
{
"key": "label",
"title": "Label",
"type": "tag"
}
]
}
] | +| `fieldType` | List<[lukehagar.plexapi.plexapi.models.operations.FieldType](../../models/operations/FieldType.md)> | :heavy_minus_sign: | N/A | [
{
"type": "resolution",
"Operator": [
{
"key": "=",
"title": "is"
}
]
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryRequest.md b/docs/models/operations/GetLibraryRequest.md new file mode 100644 index 00000000..8fde08ba --- /dev/null +++ b/docs/models/operations/GetLibraryRequest.md @@ -0,0 +1,9 @@ +# GetLibraryRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `sectionId` | *Double* | :heavy_check_mark: | the Id of the library to query | 1000 | +| `includeDetails` | [lukehagar.plexapi.plexapi.models.operations.IncludeDetails](../../models/operations/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always.
| | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryResponse.md b/docs/models/operations/GetLibraryResponse.md new file mode 100644 index 00000000..76d0f311 --- /dev/null +++ b/docs/models/operations/GetLibraryResponse.md @@ -0,0 +1,12 @@ +# GetLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryResponseBody](../../models/operations/GetLibraryResponseBody.md) | :heavy_minus_sign: | The details of the library | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryLibraryResponseBody](../../models/operations/GetLibraryLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryResponseBody.md b/docs/models/operations/GetLibraryResponseBody.md new file mode 100644 index 00000000..f4a8580c --- /dev/null +++ b/docs/models/operations/GetLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetLibraryResponseBody + +The details of the library + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetLibraryMediaContainer](../../models/operations/GetLibraryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryType.md b/docs/models/operations/GetLibraryType.md new file mode 100644 index 00000000..4d9264ea --- /dev/null +++ b/docs/models/operations/GetLibraryType.md @@ -0,0 +1,14 @@ +# GetLibraryType + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Movies | +| `active` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `filter` | List<[lukehagar.plexapi.plexapi.models.operations.Filter](../../models/operations/Filter.md)> | :heavy_minus_sign: | N/A | [
{
"filter": "label",
"filterType": "string",
"key": "/library/sections/1/label",
"title": "Labels",
"type": "filter"
}
] | +| `sort` | List<[lukehagar.plexapi.plexapi.models.operations.Sort](../../models/operations/Sort.md)> | :heavy_minus_sign: | N/A | [
{
"default": "asc",
"defaultDirection": "desc",
"descKey": "random:desc",
"firstCharacterKey": "/library/sections/1/firstCharacter",
"key": "random",
"title": "Randomly"
}
] | +| `field` | List<[lukehagar.plexapi.plexapi.models.operations.Field](../../models/operations/Field.md)> | :heavy_minus_sign: | N/A | [
{
"key": "label",
"title": "Label",
"type": "tag",
"subType": "bitrate"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenDirectory.md b/docs/models/operations/GetMetadataChildrenDirectory.md new file mode 100644 index 00000000..e040d40e --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenDirectory.md @@ -0,0 +1,12 @@ +# GetMetadataChildrenDirectory + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 16 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 | +| `viewedLeafCount` | *Integer* | :heavy_minus_sign: | N/A | 16 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/allLeaves | +| `title` | *String* | :heavy_minus_sign: | N/A | All episodes | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenErrors.md b/docs/models/operations/GetMetadataChildrenErrors.md new file mode 100644 index 00000000..1d700df4 --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenErrors.md @@ -0,0 +1,10 @@ +# GetMetadataChildrenErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenLibraryResponseBody.md b/docs/models/operations/GetMetadataChildrenLibraryResponseBody.md new file mode 100644 index 00000000..d8721038 --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetMetadataChildrenLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenErrors](../../models/operations/GetMetadataChildrenErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenMediaContainer.md b/docs/models/operations/GetMetadataChildrenMediaContainer.md new file mode 100644 index 00000000..fd4211b3 --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenMediaContainer.md @@ -0,0 +1,30 @@ +# GetMetadataChildrenMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 3 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/art/1705739923 | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `key` | *String* | :heavy_minus_sign: | N/A | 30072 | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | TV Shows | +| `librarySectionUUID` | *String* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Integer* | :heavy_minus_sign: | N/A | 1701731894 | +| `nocache` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `parentIndex` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `parentTitle` | *String* | :heavy_minus_sign: | N/A | Reacher | +| `parentYear` | *Integer* | :heavy_minus_sign: | N/A | 2022 | +| `summary` | *String* | :heavy_minus_sign: | N/A | When retired Military Police Officer Jack Reacher is arrested for a murder he did not commit, he finds himself in the middle of a deadly conspiracy full of dirty cops, shady businessmen, and scheming politicians. With nothing but his wits, he must figure out what is happening in Margrave, Georgia. | +| `theme` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/theme/1705739923 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 | +| `title1` | *String* | :heavy_minus_sign: | N/A | TV Shows | +| `title2` | *String* | :heavy_minus_sign: | N/A | Reacher | +| `viewGroup` | *String* | :heavy_minus_sign: | N/A | season | +| `viewMode` | *Integer* | :heavy_minus_sign: | N/A | 65593 | +| `directory` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenDirectory](../../models/operations/GetMetadataChildrenDirectory.md)> | :heavy_minus_sign: | N/A | [
{
"leafCount": 16,
"thumb": "/library/metadata/30072/thumb/1705739923",
"viewedLeafCount": 16,
"key": "/library/metadata/30072/allLeaves",
"title": "All episodes"
}
] | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenMetadata](../../models/operations/GetMetadataChildrenMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "66488",
"key": "/library/metadata/66488/children",
"parentRatingKey": "30072",
"guid": "plex://season/652aea6549508477c34c6000",
"parentGuid": "plex://show/5d9c09190aaccd001f8f42f0",
"parentStudio": "Amazon Studios",
"type": "season",
"title": "Season 2",
"parentKey": "/library/metadata/30072",
"parentTitle": "Reacher",
"summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind—revenge.",
"index": 2,
"parentIndex": 1,
"viewCount": 11,
"lastViewedAt": 1705646565,
"parentYear": 2022,
"thumb": "/library/metadata/66488/thumb/1703065033",
"art": "/library/metadata/30072/art/1705739923",
"parentThumb": "/library/metadata/30072/thumb/1705739923",
"parentTheme": "/library/metadata/30072/theme/1705739923",
"leafCount": 8,
"viewedLeafCount": 8,
"addedAt": 1702602021,
"updatedAt": 1703065033,
"userRating": 9,
"skipCount": 1,
"lastRatedAt": 1703881224
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenMetadata.md b/docs/models/operations/GetMetadataChildrenMetadata.md new file mode 100644 index 00000000..2c772a07 --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenMetadata.md @@ -0,0 +1,34 @@ +# GetMetadataChildrenMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 66488 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/66488/children | +| `parentRatingKey` | *String* | :heavy_minus_sign: | N/A | 30072 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://season/652aea6549508477c34c6000 | +| `parentGuid` | *String* | :heavy_minus_sign: | N/A | plex://show/5d9c09190aaccd001f8f42f0 | +| `parentStudio` | *String* | :heavy_minus_sign: | N/A | Amazon Studios | +| `type` | *String* | :heavy_minus_sign: | N/A | season | +| `title` | *String* | :heavy_minus_sign: | N/A | Season 2 | +| `parentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072 | +| `parentTitle` | *String* | :heavy_minus_sign: | N/A | Reacher | +| `summary` | *String* | :heavy_minus_sign: | N/A | Based on"Bad Luck and Trouble," when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind—revenge. | +| `index` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `parentIndex` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `viewCount` | *Integer* | :heavy_minus_sign: | N/A | 11 | +| `lastViewedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705646565 | +| `parentYear` | *Integer* | :heavy_minus_sign: | N/A | 2022 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/66488/thumb/1703065033 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/art/1705739923 | +| `parentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 | +| `parentTheme` | *String* | :heavy_minus_sign: | N/A | /library/metadata/30072/theme/1705739923 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 8 | +| `viewedLeafCount` | *Integer* | :heavy_minus_sign: | N/A | 8 | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1702602021 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1703065033 | +| `userRating` | *Integer* | :heavy_minus_sign: | N/A | 9 | +| `skipCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `lastRatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1703881224 | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenRequest.md b/docs/models/operations/GetMetadataChildrenRequest.md new file mode 100644 index 00000000..9214d858 --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenRequest.md @@ -0,0 +1,8 @@ +# GetMetadataChildrenRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `ratingKey` | *Double* | :heavy_check_mark: | the id of the library item to return the children of. | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenResponse.md b/docs/models/operations/GetMetadataChildrenResponse.md new file mode 100644 index 00000000..d49a751a --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenResponse.md @@ -0,0 +1,12 @@ +# GetMetadataChildrenResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponseBody](../../models/operations/GetMetadataChildrenResponseBody.md) | :heavy_minus_sign: | The children of the library item. | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenLibraryResponseBody](../../models/operations/GetMetadataChildrenLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataChildrenResponseBody.md b/docs/models/operations/GetMetadataChildrenResponseBody.md new file mode 100644 index 00000000..2928d3f4 --- /dev/null +++ b/docs/models/operations/GetMetadataChildrenResponseBody.md @@ -0,0 +1,10 @@ +# GetMetadataChildrenResponseBody + +The children of the library item. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenMediaContainer](../../models/operations/GetMetadataChildrenMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataCountry.md b/docs/models/operations/GetMetadataCountry.md new file mode 100644 index 00000000..7b49f53d --- /dev/null +++ b/docs/models/operations/GetMetadataCountry.md @@ -0,0 +1,10 @@ +# GetMetadataCountry + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 116 | +| `filter` | *String* | :heavy_minus_sign: | N/A | country=116 | +| `tag` | *String* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataDirector.md b/docs/models/operations/GetMetadataDirector.md new file mode 100644 index 00000000..077d16bf --- /dev/null +++ b/docs/models/operations/GetMetadataDirector.md @@ -0,0 +1,12 @@ +# GetMetadataDirector + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 130 | +| `filter` | *String* | :heavy_minus_sign: | N/A | director=130 | +| `tag` | *String* | :heavy_minus_sign: | N/A | Joss Whedon | +| `tagKey` | *String* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f | +| `thumb` | *String* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataErrors.md b/docs/models/operations/GetMetadataErrors.md new file mode 100644 index 00000000..28918346 --- /dev/null +++ b/docs/models/operations/GetMetadataErrors.md @@ -0,0 +1,10 @@ +# GetMetadataErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataGenre.md b/docs/models/operations/GetMetadataGenre.md new file mode 100644 index 00000000..a7f271b3 --- /dev/null +++ b/docs/models/operations/GetMetadataGenre.md @@ -0,0 +1,10 @@ +# GetMetadataGenre + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 184 | +| `filter` | *String* | :heavy_minus_sign: | N/A | genre=184 | +| `tag` | *String* | :heavy_minus_sign: | N/A | Thriller | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataLibraryResponseBody.md b/docs/models/operations/GetMetadataLibraryResponseBody.md new file mode 100644 index 00000000..98f22aa5 --- /dev/null +++ b/docs/models/operations/GetMetadataLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetMetadataLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataErrors](../../models/operations/GetMetadataErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataMedia.md b/docs/models/operations/GetMetadataMedia.md new file mode 100644 index 00000000..4d01ead4 --- /dev/null +++ b/docs/models/operations/GetMetadataMedia.md @@ -0,0 +1,24 @@ +# GetMetadataMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 15 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 141417 | +| `bitrate` | *Integer* | :heavy_minus_sign: | N/A | 2278 | +| `width` | *Integer* | :heavy_minus_sign: | N/A | 1920 | +| `height` | *Integer* | :heavy_minus_sign: | N/A | 814 | +| `aspectRatio` | *Double* | :heavy_minus_sign: | N/A | 2.35 | +| `audioChannels` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | aac | +| `videoCodec` | *String* | :heavy_minus_sign: | N/A | h264 | +| `videoResolution` | *String* | :heavy_minus_sign: | N/A | 1080 | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `videoFrameRate` | *String* | :heavy_minus_sign: | N/A | 24p | +| `optimizedForStreaming` | *Integer* | :heavy_minus_sign: | N/A | 0 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataPart](../../models/operations/GetMetadataPart.md)> | :heavy_minus_sign: | N/A | [
{
"id": 15,
"key": "/library/parts/15/1705637151/file.mp4",
"duration": 141417,
"file": "/movies/Serenity (2005)/Serenity (2005).mp4",
"size": 40271948,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": false,
"videoProfile": "high",
"Stream": [
{
"id": 30,
"streamType": 1,
"default": true,
"codec": "h264",
"index": 1,
"bitrate": 2160,
"bitDepth": 8,
"chromaLocation": "left",
"chromaSubsampling": 14520,
"codedHeight": 816,
"codedWidth": 1920,
"colorPrimaries": "bt709",
"colorRange": "tv",
"colorSpace": "bt709",
"colorTrc": "bt709",
"frameRate": 24,
"hasScalingMatrix": false,
"height": 814,
"level": 40,
"profile": "high",
"refFrames": 4,
"scanType": "progressive",
"streamIdentifier": "2",
"width": 1920,
"displayTitle": "1080p (H.264)",
"extendedDisplayTitle": "1080p (H.264)"
},
{
"id": 29,
"streamType": 2,
"selected": true,
"default": true,
"codec": "aac",
"index": 0,
"channels": 2,
"bitrate": 128,
"language": "English",
"languageTag": "en",
"languageCode": "eng",
"profile": "lc",
"samplingRate": 44100,
"streamIdentifier": "1",
"displayTitle": "English (AAC Stereo)",
"extendedDisplayTitle": "English (AAC Stereo)"
}
]
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataMediaContainer.md b/docs/models/operations/GetMetadataMediaContainer.md new file mode 100644 index 00000000..fbcd402e --- /dev/null +++ b/docs/models/operations/GetMetadataMediaContainer.md @@ -0,0 +1,16 @@ +# GetMetadataMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionUUID` | *String* | :heavy_minus_sign: | N/A | cfc899d7-3000-46f6-8489-b9592714ada5 | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Integer* | :heavy_minus_sign: | N/A | 1698860922 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataMetadata](../../models/operations/GetMetadataMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "17",
"key": "/library/metadata/17",
"guid": "plex://movie/5d77683f6f4521001ea9dc53",
"studio": "Universal Pictures",
"type": "movie",
"title": "Serenity",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "PG-13",
"summary": "Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.",
"rating": 8.2,
"audienceRating": 9.1,
"year": 2005,
"tagline": "They aim to misbehave.",
"thumb": "/library/metadata/17/thumb/1705637165",
"art": "/library/metadata/17/art/1705637165",
"duration": 141417,
"originallyAvailableAt": "2005-09-29T00:00:00Z",
"addedAt": 1705637164,
"updatedAt": 1705637165,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"hasPremiumPrimaryExtra": "1",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 15,
"duration": 141417,
"bitrate": 2278,
"width": 1920,
"height": 814,
"aspectRatio": 2.35,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 0,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 15,
"key": "/library/parts/15/1705637151/file.mp4",
"duration": 141417,
"file": "/movies/Serenity (2005)/Serenity (2005).mp4",
"size": 40271948,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": false,
"videoProfile": "high",
"Stream": [
{
"id": 30,
"streamType": 1,
"default": true,
"codec": "h264",
"index": 1,
"bitrate": 2160,
"bitDepth": 8,
"chromaLocation": "left",
"chromaSubsampling": 14520,
"codedHeight": 816,
"codedWidth": 1920,
"colorPrimaries": "bt709",
"colorRange": "tv",
"colorSpace": "bt709",
"colorTrc": "bt709",
"frameRate": 24,
"hasScalingMatrix": false,
"height": 814,
"level": 40,
"profile": "high",
"refFrames": 4,
"scanType": "progressive",
"streamIdentifier": "2",
"width": 1920,
"displayTitle": "1080p (H.264)",
"extendedDisplayTitle": "1080p (H.264)"
},
{
"id": 29,
"streamType": 2,
"selected": true,
"default": true,
"codec": "aac",
"index": 0,
"channels": 2,
"bitrate": 128,
"language": "English",
"languageTag": "en",
"languageCode": "eng",
"profile": "lc",
"samplingRate": 44100,
"streamIdentifier": "1",
"displayTitle": "English (AAC Stereo)",
"extendedDisplayTitle": "English (AAC Stereo)"
}
]
}
]
}
],
"Genre": [
{
"id": 5,
"filter": "genre=5",
"tag": "Science Fiction"
}
],
"Country": [
{
"id": 116,
"filter": "country=116",
"tag": "United States of America"
}
],
"Guid": [
{
"id": "imdb://tt0379786"
}
],
"Rating": [
{
"image": "imdb://image.rating",
"value": 7.8,
"type": "audience"
}
],
"Director": [
{
"id": 130,
"filter": "director=130",
"tag": "Joss Whedon",
"tagKey": "5d776828880197001ec90e8f",
"thumb": "https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"
}
],
"Writer": [
{
"id": 132,
"filter": "writer=132",
"tag": "Joss Whedon",
"tagKey": "5d776828880197001ec90e8f",
"thumb": "https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"
}
],
"Role": [
{
"id": 8,
"filter": "actor=8",
"tag": "Nathan Fillion",
"tagKey": "5d7768286f4521001ea9945c",
"role": "Malcolm \"Mal\" Reynolds",
"thumb": "https://metadata-static.plex.tv/4/people/4a2890ca346eb832500b1ed0add89d5e.jpg"
}
],
"Producer": [
{
"id": 221,
"filter": "producer=221",
"tag": "Barry Mendel",
"tagKey": "5d776826961905001eb90e2b",
"thumb": "https://metadata-static.plex.tv/8/people/87877371326a964634d18556d94547e1.jpg"
}
]
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataMetadata.md b/docs/models/operations/GetMetadataMetadata.md new file mode 100644 index 00000000..a2d03c9f --- /dev/null +++ b/docs/models/operations/GetMetadataMetadata.md @@ -0,0 +1,40 @@ +# GetMetadataMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 17 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/17 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 | +| `studio` | *String* | :heavy_minus_sign: | N/A | Universal Pictures | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Serenity | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionKey` | *String* | :heavy_minus_sign: | N/A | /library/sections/1 | +| `contentRating` | *String* | :heavy_minus_sign: | N/A | PG-13 | +| `summary` | *String* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. | +| `rating` | *Double* | :heavy_minus_sign: | N/A | 8.2 | +| `audienceRating` | *Double* | :heavy_minus_sign: | N/A | 9.1 | +| `year` | *Integer* | :heavy_minus_sign: | N/A | 2005 | +| `tagline` | *String* | :heavy_minus_sign: | N/A | They aim to misbehave. | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 141417 | +| `originallyAvailableAt` | [LocalDate](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) | :heavy_minus_sign: | N/A | 2005-09-29 00:00:00 +0000 UTC | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705637164 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705637165 | +| `audienceRatingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | +| `hasPremiumPrimaryExtra` | *String* | :heavy_minus_sign: | N/A | 1 | +| `ratingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | +| `media` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataMedia](../../models/operations/GetMetadataMedia.md)> | :heavy_minus_sign: | N/A | [
{
"id": 15,
"duration": 141417,
"bitrate": 2278,
"width": 1920,
"height": 814,
"aspectRatio": 2.35,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 0,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 15,
"key": "/library/parts/15/1705637151/file.mp4",
"duration": 141417,
"file": "/movies/Serenity (2005)/Serenity (2005).mp4",
"size": 40271948,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": false,
"videoProfile": "high",
"Stream": [
{
"id": 30,
"streamType": 1,
"default": true,
"codec": "h264",
"index": 1,
"bitrate": 2160,
"bitDepth": 8,
"chromaLocation": "left",
"chromaSubsampling": 14520,
"codedHeight": 816,
"codedWidth": 1920,
"colorPrimaries": "bt709",
"colorRange": "tv",
"colorSpace": "bt709",
"colorTrc": "bt709",
"frameRate": 24,
"hasScalingMatrix": false,
"height": 814,
"level": 40,
"profile": "high",
"refFrames": 4,
"scanType": "progressive",
"streamIdentifier": "2",
"width": 1920,
"displayTitle": "1080p (H.264)",
"extendedDisplayTitle": "1080p (H.264)"
},
{
"id": 29,
"streamType": 2,
"selected": true,
"default": true,
"codec": "aac",
"index": 0,
"channels": 2,
"bitrate": 128,
"language": "English",
"languageTag": "en",
"languageCode": "eng",
"profile": "lc",
"samplingRate": 44100,
"streamIdentifier": "1",
"displayTitle": "English (AAC Stereo)",
"extendedDisplayTitle": "English (AAC Stereo)"
}
]
}
]
}
] | +| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataGenre](../../models/operations/GetMetadataGenre.md)> | :heavy_minus_sign: | N/A | [
{
"id": 184,
"filter": "genre=184",
"tag": "Thriller"
}
] | +| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataCountry](../../models/operations/GetMetadataCountry.md)> | :heavy_minus_sign: | N/A | [
{
"id": 116,
"filter": "country=116",
"tag": "United States of America"
}
] | +| `guids` | List<[lukehagar.plexapi.plexapi.models.operations.Guids](../../models/operations/Guids.md)> | :heavy_minus_sign: | N/A | [
{
"id": "tvdb://2337"
}
] | +| `ratings` | List<[lukehagar.plexapi.plexapi.models.operations.Ratings](../../models/operations/Ratings.md)> | :heavy_minus_sign: | N/A | [
{
"image": "themoviedb://image.rating",
"value": 7.4,
"type": "audience"
}
] | +| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataDirector](../../models/operations/GetMetadataDirector.md)> | :heavy_minus_sign: | N/A | [
{
"id": 130,
"filter": "director=130",
"tag": "Joss Whedon",
"tagKey": "5d776828880197001ec90e8f",
"thumb": "https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"
}
] | +| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataWriter](../../models/operations/GetMetadataWriter.md)> | :heavy_minus_sign: | N/A | [
{
"id": 132,
"filter": "writer=132",
"tag": "Joss Whedon",
"tagKey": "5d776828880197001ec90e8f",
"thumb": "https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"
}
] | +| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataRole](../../models/operations/GetMetadataRole.md)> | :heavy_minus_sign: | N/A | [
{
"id": 220,
"filter": "actor=220",
"tag": "Dennis Keiffer",
"tagKey": "5d77683554f42c001f8c4708",
"role": "Bar Guy (uncredited)",
"thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"
}
] | +| `producer` | List<[lukehagar.plexapi.plexapi.models.operations.Producer](../../models/operations/Producer.md)> | :heavy_minus_sign: | N/A | [
{
"id": 221,
"filter": "producer=221",
"tag": "Barry Mendel",
"tagKey": "5d776826961905001eb90e2b",
"thumb": "https://metadata-static.plex.tv/8/people/87877371326a964634d18556d94547e1.jpg"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataPart.md b/docs/models/operations/GetMetadataPart.md new file mode 100644 index 00000000..d8cad8e7 --- /dev/null +++ b/docs/models/operations/GetMetadataPart.md @@ -0,0 +1,18 @@ +# GetMetadataPart + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 15 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 141417 | +| `file` | *String* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 40271948 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | +| `stream` | List<[lukehagar.plexapi.plexapi.models.operations.Stream](../../models/operations/Stream.md)> | :heavy_minus_sign: | N/A | [
{
"id": 29,
"streamType": 2,
"default": true,
"codec": "aac",
"index": 0,
"bitrate": 128,
"bitDepth": 8,
"chromaLocation": "left",
"chromaSubsampling": 14520,
"codedHeight": 816,
"codedWidth": 1920,
"colorPrimaries": "bt709",
"colorRange": "tv",
"colorSpace": "bt709",
"colorTrc": "bt709",
"frameRate": 24,
"hasScalingMatrix": false,
"height": 814,
"level": 40,
"profile": "lc",
"refFrames": 4,
"scanType": "progressive",
"streamIdentifier": "1",
"width": 1920,
"displayTitle": "English (AAC Stereo)",
"extendedDisplayTitle": "English (AAC Stereo)",
"selected": true,
"channels": 2,
"language": "English",
"languageTag": "en",
"languageCode": "eng",
"samplingRate": 44100
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataRequest.md b/docs/models/operations/GetMetadataRequest.md new file mode 100644 index 00000000..3f89b67a --- /dev/null +++ b/docs/models/operations/GetMetadataRequest.md @@ -0,0 +1,8 @@ +# GetMetadataRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `ratingKey` | *Double* | :heavy_check_mark: | the id of the library item to return the children of. | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataResponse.md b/docs/models/operations/GetMetadataResponse.md new file mode 100644 index 00000000..06496b22 --- /dev/null +++ b/docs/models/operations/GetMetadataResponse.md @@ -0,0 +1,12 @@ +# GetMetadataResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetMetadataResponseBody](../../models/operations/GetMetadataResponseBody.md) | :heavy_minus_sign: | The metadata of the library item. | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetMetadataLibraryResponseBody](../../models/operations/GetMetadataLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataResponseBody.md b/docs/models/operations/GetMetadataResponseBody.md new file mode 100644 index 00000000..4e9e5b17 --- /dev/null +++ b/docs/models/operations/GetMetadataResponseBody.md @@ -0,0 +1,10 @@ +# GetMetadataResponseBody + +The metadata of the library item. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetMetadataMediaContainer](../../models/operations/GetMetadataMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataRole.md b/docs/models/operations/GetMetadataRole.md new file mode 100644 index 00000000..2a2affb3 --- /dev/null +++ b/docs/models/operations/GetMetadataRole.md @@ -0,0 +1,13 @@ +# GetMetadataRole + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 220 | +| `filter` | *String* | :heavy_minus_sign: | N/A | actor=220 | +| `tag` | *String* | :heavy_minus_sign: | N/A | Dennis Keiffer | +| `tagKey` | *String* | :heavy_minus_sign: | N/A | 5d77683554f42c001f8c4708 | +| `role` | *String* | :heavy_minus_sign: | N/A | Bar Guy (uncredited) | +| `thumb` | *String* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg | \ No newline at end of file diff --git a/docs/models/operations/GetMetadataWriter.md b/docs/models/operations/GetMetadataWriter.md new file mode 100644 index 00000000..de1e970b --- /dev/null +++ b/docs/models/operations/GetMetadataWriter.md @@ -0,0 +1,12 @@ +# GetMetadataWriter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 132 | +| `filter` | *String* | :heavy_minus_sign: | N/A | writer=132 | +| `tag` | *String* | :heavy_minus_sign: | N/A | Joss Whedon | +| `tagKey` | *String* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f | +| `thumb` | *String* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg | \ No newline at end of file diff --git a/docs/models/operations/GetMyPlexAccountErrors.md b/docs/models/operations/GetMyPlexAccountErrors.md new file mode 100644 index 00000000..ea2332ad --- /dev/null +++ b/docs/models/operations/GetMyPlexAccountErrors.md @@ -0,0 +1,10 @@ +# GetMyPlexAccountErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetMyPlexAccountResponse.md b/docs/models/operations/GetMyPlexAccountResponse.md new file mode 100644 index 00000000..0dc104db --- /dev/null +++ b/docs/models/operations/GetMyPlexAccountResponse.md @@ -0,0 +1,12 @@ +# GetMyPlexAccountResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountResponseBody](../../models/operations/GetMyPlexAccountResponseBody.md) | :heavy_minus_sign: | MyPlex Account | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountServerResponseBody](../../models/operations/GetMyPlexAccountServerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetMyPlexAccountResponseBody.md b/docs/models/operations/GetMyPlexAccountResponseBody.md new file mode 100644 index 00000000..c411ae8c --- /dev/null +++ b/docs/models/operations/GetMyPlexAccountResponseBody.md @@ -0,0 +1,10 @@ +# GetMyPlexAccountResponseBody + +MyPlex Account + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `myPlex` | [lukehagar.plexapi.plexapi.models.operations.MyPlex](../../models/operations/MyPlex.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetMyPlexAccountServerResponseBody.md b/docs/models/operations/GetMyPlexAccountServerResponseBody.md new file mode 100644 index 00000000..ee33bc29 --- /dev/null +++ b/docs/models/operations/GetMyPlexAccountServerResponseBody.md @@ -0,0 +1,10 @@ +# GetMyPlexAccountServerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountErrors](../../models/operations/GetMyPlexAccountErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckErrors.md b/docs/models/operations/GetOnDeckErrors.md new file mode 100644 index 00000000..7f8ef51a --- /dev/null +++ b/docs/models/operations/GetOnDeckErrors.md @@ -0,0 +1,10 @@ +# GetOnDeckErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckGuids.md b/docs/models/operations/GetOnDeckGuids.md new file mode 100644 index 00000000..ebe74e1a --- /dev/null +++ b/docs/models/operations/GetOnDeckGuids.md @@ -0,0 +1,8 @@ +# GetOnDeckGuids + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *String* | :heavy_minus_sign: | N/A | imdb://tt13303712 | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckLibraryResponseBody.md b/docs/models/operations/GetOnDeckLibraryResponseBody.md new file mode 100644 index 00000000..38fbc488 --- /dev/null +++ b/docs/models/operations/GetOnDeckLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetOnDeckLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetOnDeckErrors](../../models/operations/GetOnDeckErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckMedia.md b/docs/models/operations/GetOnDeckMedia.md new file mode 100644 index 00000000..0eb2cbcb --- /dev/null +++ b/docs/models/operations/GetOnDeckMedia.md @@ -0,0 +1,22 @@ +# GetOnDeckMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `id` | *Double* | :heavy_minus_sign: | N/A | 80994 | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 420080 | +| `bitrate` | *Double* | :heavy_minus_sign: | N/A | 1046 | +| `width` | *Double* | :heavy_minus_sign: | N/A | 1920 | +| `height` | *Double* | :heavy_minus_sign: | N/A | 1080 | +| `aspectRatio` | *Double* | :heavy_minus_sign: | N/A | 1.78 | +| `audioChannels` | *Double* | :heavy_minus_sign: | N/A | 2 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | aac | +| `videoCodec` | *String* | :heavy_minus_sign: | N/A | hevc | +| `videoResolution` | *String* | :heavy_minus_sign: | N/A | 1080 | +| `container` | *String* | :heavy_minus_sign: | N/A | mkv | +| `videoFrameRate` | *String* | :heavy_minus_sign: | N/A | PAL | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | main | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetOnDeckPart](../../models/operations/GetOnDeckPart.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckMediaContainer.md b/docs/models/operations/GetOnDeckMediaContainer.md new file mode 100644 index 00000000..6fa53c3f --- /dev/null +++ b/docs/models/operations/GetOnDeckMediaContainer.md @@ -0,0 +1,14 @@ +# GetOnDeckMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | 16 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Double* | :heavy_minus_sign: | N/A | 1680021154 | +| `mixedParents` | *Boolean* | :heavy_minus_sign: | N/A | | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetOnDeckMetadata](../../models/operations/GetOnDeckMetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckMetadata.md b/docs/models/operations/GetOnDeckMetadata.md new file mode 100644 index 00000000..b5e6d5e8 --- /dev/null +++ b/docs/models/operations/GetOnDeckMetadata.md @@ -0,0 +1,43 @@ +# GetOnDeckMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | | +| `librarySectionID` | *Double* | :heavy_minus_sign: | N/A | 2 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | TV Shows | +| `librarySectionUUID` | *String* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd | +| `ratingKey` | *Double* | :heavy_minus_sign: | N/A | 49564 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49564 | +| `parentRatingKey` | *Double* | :heavy_minus_sign: | N/A | 49557 | +| `grandparentRatingKey` | *Double* | :heavy_minus_sign: | N/A | 49556 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://episode/5ea7d7402e7ab10042e74d4f | +| `parentGuid` | *String* | :heavy_minus_sign: | N/A | plex://season/602e754d67f4c8002ce54b3d | +| `grandparentGuid` | *String* | :heavy_minus_sign: | N/A | plex://show/5d9c090e705e7a001e6e94d8 | +| `type` | *String* | :heavy_minus_sign: | N/A | episode | +| `title` | *String* | :heavy_minus_sign: | N/A | Circus | +| `grandparentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49556 | +| `parentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49557 | +| `librarySectionKey` | *String* | :heavy_minus_sign: | N/A | /library/sections/2 | +| `grandparentTitle` | *String* | :heavy_minus_sign: | N/A | Bluey (2018) | +| `parentTitle` | *String* | :heavy_minus_sign: | N/A | Season 2 | +| `contentRating` | *String* | :heavy_minus_sign: | N/A | TV-Y | +| `summary` | *String* | :heavy_minus_sign: | N/A | Bluey is the ringmaster in a game of circus with her friends but Hercules wants to play his motorcycle game instead. Luckily Bluey has a solution to keep everyone happy. | +| `index` | *Double* | :heavy_minus_sign: | N/A | 33 | +| `parentIndex` | *Double* | :heavy_minus_sign: | N/A | 2 | +| `lastViewedAt` | *Double* | :heavy_minus_sign: | N/A | 1681908352 | +| `year` | *Double* | :heavy_minus_sign: | N/A | 2018 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49564/thumb/1654258204 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 | +| `parentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49557/thumb/1654258204 | +| `grandparentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49556/thumb/1680939546 | +| `grandparentArt` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 | +| `grandparentTheme` | *String* | :heavy_minus_sign: | N/A | /library/metadata/49556/theme/1680939546 | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 420080 | +| `originallyAvailableAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | 2020-10-31 00:00:00 +0000 UTC | +| `addedAt` | *Double* | :heavy_minus_sign: | N/A | 1654258196 | +| `updatedAt` | *Double* | :heavy_minus_sign: | N/A | 1654258204 | +| `media` | List<[lukehagar.plexapi.plexapi.models.operations.GetOnDeckMedia](../../models/operations/GetOnDeckMedia.md)> | :heavy_minus_sign: | N/A | | +| `guids` | List<[lukehagar.plexapi.plexapi.models.operations.GetOnDeckGuids](../../models/operations/GetOnDeckGuids.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckPart.md b/docs/models/operations/GetOnDeckPart.md new file mode 100644 index 00000000..b50dbcb3 --- /dev/null +++ b/docs/models/operations/GetOnDeckPart.md @@ -0,0 +1,16 @@ +# GetOnDeckPart + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `id` | *Double* | :heavy_minus_sign: | N/A | 80994 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/80994/1655007810/file.mkv | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 420080 | +| `file` | *String* | :heavy_minus_sign: | N/A | /tvshows/Bluey (2018)/Bluey (2018) - S02E33 - Circus.mkv | +| `size` | *Double* | :heavy_minus_sign: | N/A | 55148931 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `container` | *String* | :heavy_minus_sign: | N/A | mkv | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | main | +| `stream` | List<[lukehagar.plexapi.plexapi.models.operations.GetOnDeckStream](../../models/operations/GetOnDeckStream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckResponse.md b/docs/models/operations/GetOnDeckResponse.md new file mode 100644 index 00000000..beca5661 --- /dev/null +++ b/docs/models/operations/GetOnDeckResponse.md @@ -0,0 +1,12 @@ +# GetOnDeckResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponseBody](../../models/operations/GetOnDeckResponseBody.md) | :heavy_minus_sign: | The on Deck content | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetOnDeckLibraryResponseBody](../../models/operations/GetOnDeckLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckResponseBody.md b/docs/models/operations/GetOnDeckResponseBody.md new file mode 100644 index 00000000..5514ddc1 --- /dev/null +++ b/docs/models/operations/GetOnDeckResponseBody.md @@ -0,0 +1,10 @@ +# GetOnDeckResponseBody + +The on Deck content + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetOnDeckMediaContainer](../../models/operations/GetOnDeckMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetOnDeckStream.md b/docs/models/operations/GetOnDeckStream.md new file mode 100644 index 00000000..f8d78765 --- /dev/null +++ b/docs/models/operations/GetOnDeckStream.md @@ -0,0 +1,30 @@ +# GetOnDeckStream + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `id` | *Double* | :heavy_minus_sign: | N/A | 211234 | +| `streamType` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `default_` | *Boolean* | :heavy_minus_sign: | N/A | | +| `codec` | *String* | :heavy_minus_sign: | N/A | hevc | +| `index` | *Double* | :heavy_minus_sign: | N/A | 0 | +| `bitrate` | *Double* | :heavy_minus_sign: | N/A | 918 | +| `language` | *String* | :heavy_minus_sign: | N/A | English | +| `languageTag` | *String* | :heavy_minus_sign: | N/A | en | +| `languageCode` | *String* | :heavy_minus_sign: | N/A | eng | +| `bitDepth` | *Double* | :heavy_minus_sign: | N/A | 8 | +| `chromaLocation` | *String* | :heavy_minus_sign: | N/A | left | +| `chromaSubsampling` | *String* | :heavy_minus_sign: | N/A | 4:2:0 | +| `codedHeight` | *Double* | :heavy_minus_sign: | N/A | 1080 | +| `codedWidth` | *Double* | :heavy_minus_sign: | N/A | 1920 | +| `colorRange` | *String* | :heavy_minus_sign: | N/A | tv | +| `frameRate` | *Double* | :heavy_minus_sign: | N/A | 25 | +| `height` | *Double* | :heavy_minus_sign: | N/A | 1080 | +| `level` | *Double* | :heavy_minus_sign: | N/A | 120 | +| `profile` | *String* | :heavy_minus_sign: | N/A | main | +| `refFrames` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `width` | *Double* | :heavy_minus_sign: | N/A | 1920 | +| `displayTitle` | *String* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) | +| `extendedDisplayTitle` | *String* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) | \ No newline at end of file diff --git a/docs/models/operations/GetPinErrors.md b/docs/models/operations/GetPinErrors.md new file mode 100644 index 00000000..718b0ee7 --- /dev/null +++ b/docs/models/operations/GetPinErrors.md @@ -0,0 +1,10 @@ +# GetPinErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1000 | +| `message` | *String* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | +| `status` | *Double* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/models/operations/GetPinPlexResponseBody.md b/docs/models/operations/GetPinPlexResponseBody.md new file mode 100644 index 00000000..351c8cee --- /dev/null +++ b/docs/models/operations/GetPinPlexResponseBody.md @@ -0,0 +1,10 @@ +# GetPinPlexResponseBody + +X-Plex-Client-Identifier is missing + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetPinErrors](../../models/operations/GetPinErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetPinRequest.md b/docs/models/operations/GetPinRequest.md new file mode 100644 index 00000000..0d8cb0b3 --- /dev/null +++ b/docs/models/operations/GetPinRequest.md @@ -0,0 +1,9 @@ +# GetPinRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `xPlexClientIdentifier` | *String* | :heavy_check_mark: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| +| `strong` | *Boolean* | :heavy_minus_sign: | Determines the kind of code returned by the API call
Strong codes are used for Pin authentication flows
Non-Strong codes are used for `Plex.tv/link`
| \ No newline at end of file diff --git a/docs/models/operations/GetPinResponse.md b/docs/models/operations/GetPinResponse.md new file mode 100644 index 00000000..cba0be5c --- /dev/null +++ b/docs/models/operations/GetPinResponse.md @@ -0,0 +1,12 @@ +# GetPinResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPinResponseBody](../../models/operations/GetPinResponseBody.md) | :heavy_minus_sign: | The Pin | +| `fourHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPinPlexResponseBody](../../models/operations/GetPinPlexResponseBody.md) | :heavy_minus_sign: | X-Plex-Client-Identifier is missing | \ No newline at end of file diff --git a/docs/models/operations/GetPinResponseBody.md b/docs/models/operations/GetPinResponseBody.md new file mode 100644 index 00000000..12eaa469 --- /dev/null +++ b/docs/models/operations/GetPinResponseBody.md @@ -0,0 +1,21 @@ +# GetPinResponseBody + +The Pin + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *Double* | :heavy_minus_sign: | PinID for use with authentication | 1272322473 | +| `code` | *String* | :heavy_minus_sign: | N/A | 3patfx1a78ukcbr7x0n9bl26t | +| `product` | *String* | :heavy_minus_sign: | N/A | Plex Web | +| `trusted` | *Boolean* | :heavy_minus_sign: | N/A | | +| `qr` | *String* | :heavy_minus_sign: | a link to a QR code hosted on plex.tv
The QR code redirects to the relevant `plex.tv/link` authentication page
Which then prompts the user for the 4 Digit Link Pin
| https://plex.tv/api/v2/pins/qr/3patfx1a78ukcbr7x0n9bl26t | +| `clientIdentifier` | *String* | :heavy_minus_sign: | N/A | Postman | +| `location` | [lukehagar.plexapi.plexapi.models.operations.Location](../../models/operations/Location.md) | :heavy_minus_sign: | N/A | | +| `expiresIn` | *Double* | :heavy_minus_sign: | N/A | 1800 | +| `createdAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | 2023-04-12 17:00:03 +0000 UTC | +| `expiresAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | 2023-04-12 17:30:03 +0000 UTC | +| `authToken` | *String* | :heavy_minus_sign: | N/A | | +| `newRegistration` | *String* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsCountry.md b/docs/models/operations/GetPlaylistContentsCountry.md new file mode 100644 index 00000000..463eb78d --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsCountry.md @@ -0,0 +1,8 @@ +# GetPlaylistContentsCountry + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsDirector.md b/docs/models/operations/GetPlaylistContentsDirector.md new file mode 100644 index 00000000..ef32b619 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsDirector.md @@ -0,0 +1,8 @@ +# GetPlaylistContentsDirector + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Joss Whedon | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsErrors.md b/docs/models/operations/GetPlaylistContentsErrors.md new file mode 100644 index 00000000..c4d439dd --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsErrors.md @@ -0,0 +1,10 @@ +# GetPlaylistContentsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsGenre.md b/docs/models/operations/GetPlaylistContentsGenre.md new file mode 100644 index 00000000..4eb27e85 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsGenre.md @@ -0,0 +1,8 @@ +# GetPlaylistContentsGenre + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Action | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsMedia.md b/docs/models/operations/GetPlaylistContentsMedia.md new file mode 100644 index 00000000..6f03bf01 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsMedia.md @@ -0,0 +1,24 @@ +# GetPlaylistContentsMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 15 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 141416 | +| `bitrate` | *Integer* | :heavy_minus_sign: | N/A | 2273 | +| `width` | *Integer* | :heavy_minus_sign: | N/A | 1920 | +| `height` | *Integer* | :heavy_minus_sign: | N/A | 814 | +| `aspectRatio` | *Double* | :heavy_minus_sign: | N/A | 2.35 | +| `audioChannels` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | aac | +| `videoCodec` | *String* | :heavy_minus_sign: | N/A | h264 | +| `videoResolution` | *String* | :heavy_minus_sign: | N/A | 1080 | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `videoFrameRate` | *String* | :heavy_minus_sign: | N/A | 24p | +| `optimizedForStreaming` | *Integer* | :heavy_minus_sign: | N/A | 0 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsPart](../../models/operations/GetPlaylistContentsPart.md)> | :heavy_minus_sign: | N/A | [
{
"id": 15,
"key": "/library/parts/15/1705637151/file.mp4",
"duration": 141416,
"file": "/movies/Serenity (2005)/Serenity (2005).mp4",
"size": 40271948,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": false,
"videoProfile": "high"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsMediaContainer.md b/docs/models/operations/GetPlaylistContentsMediaContainer.md new file mode 100644 index 00000000..089eae90 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsMediaContainer.md @@ -0,0 +1,16 @@ +# GetPlaylistContentsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `composite` | *String* | :heavy_minus_sign: | N/A | /playlists/95/composite/1705717521 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 282 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `playlistType` | *String* | :heavy_minus_sign: | N/A | video | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 95 | +| `smart` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `title` | *String* | :heavy_minus_sign: | N/A | Smart Movie Playlist | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsMetadata](../../models/operations/GetPlaylistContentsMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "17",
"key": "/library/metadata/17",
"guid": "plex://movie/5d77683f6f4521001ea9dc53",
"studio": "Universal Pictures",
"type": "movie",
"title": "Serenity",
"titleSort": "Amazing Spider-Man 2",
"librarySectionTitle": "Movies",
"librarySectionID": 1,
"librarySectionKey": "/library/sections/1",
"contentRating": "PG-13",
"summary": "Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.",
"rating": 8.2,
"audienceRating": 9.1,
"year": 2005,
"tagline": "They aim to misbehave.",
"thumb": "/library/metadata/17/thumb/1705637165",
"art": "/library/metadata/17/art/1705637165",
"duration": 141416,
"originallyAvailableAt": "2005-09-29T00:00:00Z",
"addedAt": 1705637164,
"updatedAt": 1705637165,
"audienceRatingImage": "rottentomatoes://image.rating.upright",
"hasPremiumExtras": "1",
"hasPremiumPrimaryExtra": "1",
"ratingImage": "rottentomatoes://image.rating.ripe",
"Media": [
{
"id": 15,
"duration": 141416,
"bitrate": 2273,
"width": 1920,
"height": 814,
"aspectRatio": 2.35,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 0,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 15,
"key": "/library/parts/15/1705637151/file.mp4",
"duration": 141416,
"file": "/movies/Serenity (2005)/Serenity (2005).mp4",
"size": 40271948,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": false,
"videoProfile": "high"
}
]
}
],
"Genre": [
{
"tag": "Science Fiction"
}
],
"Country": [
{
"tag": "United States of America"
}
],
"Director": [
{
"tag": "Joss Whedon"
}
],
"Writer": [
{
"tag": "Joss Whedon"
}
],
"Role": [
{
"tag": "Nathan Fillion"
}
]
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsMetadata.md b/docs/models/operations/GetPlaylistContentsMetadata.md new file mode 100644 index 00000000..e3abee01 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsMetadata.md @@ -0,0 +1,39 @@ +# GetPlaylistContentsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 17 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/17 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 | +| `studio` | *String* | :heavy_minus_sign: | N/A | Universal Pictures | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Serenity | +| `titleSort` | *String* | :heavy_minus_sign: | N/A | Amazing Spider-Man 2 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionKey` | *String* | :heavy_minus_sign: | N/A | /library/sections/1 | +| `contentRating` | *String* | :heavy_minus_sign: | N/A | PG-13 | +| `summary` | *String* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. | +| `rating` | *Double* | :heavy_minus_sign: | N/A | 8.2 | +| `audienceRating` | *Double* | :heavy_minus_sign: | N/A | 9.1 | +| `year` | *Integer* | :heavy_minus_sign: | N/A | 2005 | +| `tagline` | *String* | :heavy_minus_sign: | N/A | They aim to misbehave. | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 141416 | +| `originallyAvailableAt` | [LocalDate](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) | :heavy_minus_sign: | N/A | 2005-09-29 00:00:00 +0000 UTC | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705637164 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705637165 | +| `audienceRatingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | +| `hasPremiumExtras` | *String* | :heavy_minus_sign: | N/A | 1 | +| `hasPremiumPrimaryExtra` | *String* | :heavy_minus_sign: | N/A | 1 | +| `ratingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | +| `media` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsMedia](../../models/operations/GetPlaylistContentsMedia.md)> | :heavy_minus_sign: | N/A | [
{
"id": 15,
"duration": 141416,
"bitrate": 2273,
"width": 1920,
"height": 814,
"aspectRatio": 2.35,
"audioChannels": 2,
"audioCodec": "aac",
"videoCodec": "h264",
"videoResolution": "1080",
"container": "mp4",
"videoFrameRate": "24p",
"optimizedForStreaming": 0,
"audioProfile": "lc",
"has64bitOffsets": false,
"videoProfile": "high",
"Part": [
{
"id": 15,
"key": "/library/parts/15/1705637151/file.mp4",
"duration": 141416,
"file": "/movies/Serenity (2005)/Serenity (2005).mp4",
"size": 40271948,
"audioProfile": "lc",
"container": "mp4",
"has64bitOffsets": false,
"optimizedForStreaming": false,
"videoProfile": "high"
}
]
}
] | +| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsGenre](../../models/operations/GetPlaylistContentsGenre.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Action"
}
] | +| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsCountry](../../models/operations/GetPlaylistContentsCountry.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "United States of America"
}
] | +| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsDirector](../../models/operations/GetPlaylistContentsDirector.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Joss Whedon"
}
] | +| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsWriter](../../models/operations/GetPlaylistContentsWriter.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Joss Whedon"
}
] | +| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsRole](../../models/operations/GetPlaylistContentsRole.md)> | :heavy_minus_sign: | N/A | [
{
"tag": "Gina Torres"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsPart.md b/docs/models/operations/GetPlaylistContentsPart.md new file mode 100644 index 00000000..ee1c0a3d --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsPart.md @@ -0,0 +1,17 @@ +# GetPlaylistContentsPart + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 15 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 141416 | +| `file` | *String* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 40271948 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsPlaylistsResponseBody.md b/docs/models/operations/GetPlaylistContentsPlaylistsResponseBody.md new file mode 100644 index 00000000..e0e8f4a7 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsPlaylistsResponseBody.md @@ -0,0 +1,10 @@ +# GetPlaylistContentsPlaylistsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsErrors](../../models/operations/GetPlaylistContentsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsRequest.md b/docs/models/operations/GetPlaylistContentsRequest.md new file mode 100644 index 00000000..68ac2ad4 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsRequest.md @@ -0,0 +1,9 @@ +# GetPlaylistContentsRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- | +| `playlistID` | *Double* | :heavy_check_mark: | the ID of the playlist | +| `type` | *Double* | :heavy_check_mark: | the metadata type of the item to return | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsResponse.md b/docs/models/operations/GetPlaylistContentsResponse.md new file mode 100644 index 00000000..3152ff01 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsResponse.md @@ -0,0 +1,12 @@ +# GetPlaylistContentsResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponseBody](../../models/operations/GetPlaylistContentsResponseBody.md) | :heavy_minus_sign: | The playlist contents | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsPlaylistsResponseBody](../../models/operations/GetPlaylistContentsPlaylistsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsResponseBody.md b/docs/models/operations/GetPlaylistContentsResponseBody.md new file mode 100644 index 00000000..478d31af --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsResponseBody.md @@ -0,0 +1,10 @@ +# GetPlaylistContentsResponseBody + +The playlist contents + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsMediaContainer](../../models/operations/GetPlaylistContentsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsRole.md b/docs/models/operations/GetPlaylistContentsRole.md new file mode 100644 index 00000000..6e76dd0a --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsRole.md @@ -0,0 +1,8 @@ +# GetPlaylistContentsRole + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Gina Torres | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsWriter.md b/docs/models/operations/GetPlaylistContentsWriter.md new file mode 100644 index 00000000..224a0492 --- /dev/null +++ b/docs/models/operations/GetPlaylistContentsWriter.md @@ -0,0 +1,8 @@ +# GetPlaylistContentsWriter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Joss Whedon | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistErrors.md b/docs/models/operations/GetPlaylistErrors.md new file mode 100644 index 00000000..883bd553 --- /dev/null +++ b/docs/models/operations/GetPlaylistErrors.md @@ -0,0 +1,10 @@ +# GetPlaylistErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistMediaContainer.md b/docs/models/operations/GetPlaylistMediaContainer.md new file mode 100644 index 00000000..32768041 --- /dev/null +++ b/docs/models/operations/GetPlaylistMediaContainer.md @@ -0,0 +1,9 @@ +# GetPlaylistMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistMetadata](../../models/operations/GetPlaylistMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1",
"ratingKey": "95",
"key": "/playlists/95/items",
"guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91",
"type": "playlist",
"title": "Smart Movie Playlist",
"summary": "",
"smart": true,
"playlistType": "video",
"composite": "/playlists/95/composite/1705717387",
"icon": "playlist://image.smart",
"duration": 282000,
"leafCount": 2,
"addedAt": 1705716493,
"updatedAt": 1705717387
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistMetadata.md b/docs/models/operations/GetPlaylistMetadata.md new file mode 100644 index 00000000..6cab1492 --- /dev/null +++ b/docs/models/operations/GetPlaylistMetadata.md @@ -0,0 +1,22 @@ +# GetPlaylistMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `content` | *String* | :heavy_minus_sign: | N/A | library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1 | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 95 | +| `key` | *String* | :heavy_minus_sign: | N/A | /playlists/95/items | +| `guid` | *String* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91 | +| `type` | *String* | :heavy_minus_sign: | N/A | playlist | +| `title` | *String* | :heavy_minus_sign: | N/A | Smart Movie Playlist | +| `summary` | *String* | :heavy_minus_sign: | N/A | | +| `smart` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `playlistType` | *String* | :heavy_minus_sign: | N/A | video | +| `composite` | *String* | :heavy_minus_sign: | N/A | /playlists/95/composite/1705717387 | +| `icon` | *String* | :heavy_minus_sign: | N/A | playlist://image.smart | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 282000 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705716493 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705717387 | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistPlaylistsResponseBody.md b/docs/models/operations/GetPlaylistPlaylistsResponseBody.md new file mode 100644 index 00000000..c5e052d4 --- /dev/null +++ b/docs/models/operations/GetPlaylistPlaylistsResponseBody.md @@ -0,0 +1,10 @@ +# GetPlaylistPlaylistsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistErrors](../../models/operations/GetPlaylistErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistRequest.md b/docs/models/operations/GetPlaylistRequest.md new file mode 100644 index 00000000..ca655bca --- /dev/null +++ b/docs/models/operations/GetPlaylistRequest.md @@ -0,0 +1,8 @@ +# GetPlaylistRequest + + +## Fields + +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `playlistID` | *Double* | :heavy_check_mark: | the ID of the playlist | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistResponse.md b/docs/models/operations/GetPlaylistResponse.md new file mode 100644 index 00000000..aedf67c5 --- /dev/null +++ b/docs/models/operations/GetPlaylistResponse.md @@ -0,0 +1,12 @@ +# GetPlaylistResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponseBody](../../models/operations/GetPlaylistResponseBody.md) | :heavy_minus_sign: | The playlist | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistPlaylistsResponseBody](../../models/operations/GetPlaylistPlaylistsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistResponseBody.md b/docs/models/operations/GetPlaylistResponseBody.md new file mode 100644 index 00000000..fe7caf3e --- /dev/null +++ b/docs/models/operations/GetPlaylistResponseBody.md @@ -0,0 +1,10 @@ +# GetPlaylistResponseBody + +The playlist + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistMediaContainer](../../models/operations/GetPlaylistMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistsErrors.md b/docs/models/operations/GetPlaylistsErrors.md new file mode 100644 index 00000000..d2edc79f --- /dev/null +++ b/docs/models/operations/GetPlaylistsErrors.md @@ -0,0 +1,10 @@ +# GetPlaylistsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistsMediaContainer.md b/docs/models/operations/GetPlaylistsMediaContainer.md new file mode 100644 index 00000000..4ef695c1 --- /dev/null +++ b/docs/models/operations/GetPlaylistsMediaContainer.md @@ -0,0 +1,9 @@ +# GetPlaylistsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 4 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistsMetadata](../../models/operations/GetPlaylistsMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "92",
"key": "/playlists/92/items",
"guid": "com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903",
"type": "playlist",
"title": "Static Playlist",
"summary": "A Great Playlist",
"smart": false,
"playlistType": "video",
"composite": "/playlists/92/composite/1705716440",
"icon": "playlist://image.smart",
"viewCount": 1,
"lastViewedAt": 1705716298,
"duration": 7328000,
"leafCount": 32,
"addedAt": 1705716298,
"updatedAt": 1705716440
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistsMetadata.md b/docs/models/operations/GetPlaylistsMetadata.md new file mode 100644 index 00000000..6bd758fc --- /dev/null +++ b/docs/models/operations/GetPlaylistsMetadata.md @@ -0,0 +1,23 @@ +# GetPlaylistsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 92 | +| `key` | *String* | :heavy_minus_sign: | N/A | /playlists/92/items | +| `guid` | *String* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903 | +| `type` | *String* | :heavy_minus_sign: | N/A | playlist | +| `title` | *String* | :heavy_minus_sign: | N/A | Static Playlist | +| `summary` | *String* | :heavy_minus_sign: | N/A | A Great Playlist | +| `smart` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `playlistType` | *String* | :heavy_minus_sign: | N/A | video | +| `composite` | *String* | :heavy_minus_sign: | N/A | /playlists/92/composite/1705716440 | +| `icon` | *String* | :heavy_minus_sign: | N/A | playlist://image.smart | +| `viewCount` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `lastViewedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705716298 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 7328000 | +| `leafCount` | *Integer* | :heavy_minus_sign: | N/A | 32 | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705716298 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705716440 | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistsPlaylistsResponseBody.md b/docs/models/operations/GetPlaylistsPlaylistsResponseBody.md new file mode 100644 index 00000000..0e2a73ea --- /dev/null +++ b/docs/models/operations/GetPlaylistsPlaylistsResponseBody.md @@ -0,0 +1,10 @@ +# GetPlaylistsPlaylistsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistsErrors](../../models/operations/GetPlaylistsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistsRequest.md b/docs/models/operations/GetPlaylistsRequest.md new file mode 100644 index 00000000..d645e2af --- /dev/null +++ b/docs/models/operations/GetPlaylistsRequest.md @@ -0,0 +1,9 @@ +# GetPlaylistsRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `playlistType` | [lukehagar.plexapi.plexapi.models.operations.PlaylistType](../../models/operations/PlaylistType.md) | :heavy_minus_sign: | limit to a type of playlist. | +| `smart` | [lukehagar.plexapi.plexapi.models.operations.QueryParamSmart](../../models/operations/QueryParamSmart.md) | :heavy_minus_sign: | type of playlists to return (default is all). | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistsResponse.md b/docs/models/operations/GetPlaylistsResponse.md new file mode 100644 index 00000000..82a8479c --- /dev/null +++ b/docs/models/operations/GetPlaylistsResponse.md @@ -0,0 +1,12 @@ +# GetPlaylistsResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponseBody](../../models/operations/GetPlaylistsResponseBody.md) | :heavy_minus_sign: | returns all playlists | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistsPlaylistsResponseBody](../../models/operations/GetPlaylistsPlaylistsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistsResponseBody.md b/docs/models/operations/GetPlaylistsResponseBody.md new file mode 100644 index 00000000..08338579 --- /dev/null +++ b/docs/models/operations/GetPlaylistsResponseBody.md @@ -0,0 +1,10 @@ +# GetPlaylistsResponseBody + +returns all playlists + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetPlaylistsMediaContainer](../../models/operations/GetPlaylistsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedErrors.md b/docs/models/operations/GetRecentlyAddedErrors.md new file mode 100644 index 00000000..c190a3be --- /dev/null +++ b/docs/models/operations/GetRecentlyAddedErrors.md @@ -0,0 +1,10 @@ +# GetRecentlyAddedErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedLibraryResponseBody.md b/docs/models/operations/GetRecentlyAddedLibraryResponseBody.md new file mode 100644 index 00000000..f320d7f4 --- /dev/null +++ b/docs/models/operations/GetRecentlyAddedLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetRecentlyAddedLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedErrors](../../models/operations/GetRecentlyAddedErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedMediaContainer.md b/docs/models/operations/GetRecentlyAddedMediaContainer.md new file mode 100644 index 00000000..5b208a2b --- /dev/null +++ b/docs/models/operations/GetRecentlyAddedMediaContainer.md @@ -0,0 +1,14 @@ +# GetRecentlyAddedMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | 50 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Double* | :heavy_minus_sign: | N/A | 1680021154 | +| `mixedParents` | *Boolean* | :heavy_minus_sign: | N/A | | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.Metadata](../../models/operations/Metadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedResponse.md b/docs/models/operations/GetRecentlyAddedResponse.md new file mode 100644 index 00000000..69c9136a --- /dev/null +++ b/docs/models/operations/GetRecentlyAddedResponse.md @@ -0,0 +1,12 @@ +# GetRecentlyAddedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponseBody](../../models/operations/GetRecentlyAddedResponseBody.md) | :heavy_minus_sign: | The recently added content | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedLibraryResponseBody](../../models/operations/GetRecentlyAddedLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedResponseBody.md b/docs/models/operations/GetRecentlyAddedResponseBody.md new file mode 100644 index 00000000..96d17091 --- /dev/null +++ b/docs/models/operations/GetRecentlyAddedResponseBody.md @@ -0,0 +1,10 @@ +# GetRecentlyAddedResponseBody + +The recently added content + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedMediaContainer](../../models/operations/GetRecentlyAddedMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetResizedPhotoErrors.md b/docs/models/operations/GetResizedPhotoErrors.md new file mode 100644 index 00000000..74930fbb --- /dev/null +++ b/docs/models/operations/GetResizedPhotoErrors.md @@ -0,0 +1,10 @@ +# GetResizedPhotoErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetResizedPhotoRequest.md b/docs/models/operations/GetResizedPhotoRequest.md new file mode 100644 index 00000000..17428291 --- /dev/null +++ b/docs/models/operations/GetResizedPhotoRequest.md @@ -0,0 +1,14 @@ +# GetResizedPhotoRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `width` | *Double* | :heavy_check_mark: | The width for the resized photo | 110 | +| `height` | *Double* | :heavy_check_mark: | The height for the resized photo | 165 | +| `opacity` | *Long* | :heavy_check_mark: | The opacity for the resized photo | | +| `blur` | *Double* | :heavy_check_mark: | The width for the resized photo | 0 | +| `minSize` | [lukehagar.plexapi.plexapi.models.operations.MinSize](../../models/operations/MinSize.md) | :heavy_check_mark: | images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against. | | +| `upscale` | [lukehagar.plexapi.plexapi.models.operations.Upscale](../../models/operations/Upscale.md) | :heavy_check_mark: | allow images to be resized beyond native dimensions. | | +| `url` | *String* | :heavy_check_mark: | path to image within Plex | /library/metadata/49564/thumb/1654258204 | \ No newline at end of file diff --git a/docs/models/operations/GetResizedPhotoResponse.md b/docs/models/operations/GetResizedPhotoResponse.md new file mode 100644 index 00000000..407c882f --- /dev/null +++ b/docs/models/operations/GetResizedPhotoResponse.md @@ -0,0 +1,11 @@ +# GetResizedPhotoResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoResponseBody](../../models/operations/GetResizedPhotoResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetResizedPhotoResponseBody.md b/docs/models/operations/GetResizedPhotoResponseBody.md new file mode 100644 index 00000000..d5880aa8 --- /dev/null +++ b/docs/models/operations/GetResizedPhotoResponseBody.md @@ -0,0 +1,10 @@ +# GetResizedPhotoResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoErrors](../../models/operations/GetResizedPhotoErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsCountry.md b/docs/models/operations/GetSearchResultsCountry.md new file mode 100644 index 00000000..dd1f6d76 --- /dev/null +++ b/docs/models/operations/GetSearchResultsCountry.md @@ -0,0 +1,8 @@ +# GetSearchResultsCountry + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsDirector.md b/docs/models/operations/GetSearchResultsDirector.md new file mode 100644 index 00000000..9feb5c7b --- /dev/null +++ b/docs/models/operations/GetSearchResultsDirector.md @@ -0,0 +1,8 @@ +# GetSearchResultsDirector + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Brian De Palma | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsErrors.md b/docs/models/operations/GetSearchResultsErrors.md new file mode 100644 index 00000000..41b45578 --- /dev/null +++ b/docs/models/operations/GetSearchResultsErrors.md @@ -0,0 +1,10 @@ +# GetSearchResultsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsGenre.md b/docs/models/operations/GetSearchResultsGenre.md new file mode 100644 index 00000000..72a6f2d6 --- /dev/null +++ b/docs/models/operations/GetSearchResultsGenre.md @@ -0,0 +1,8 @@ +# GetSearchResultsGenre + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Action | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsMedia.md b/docs/models/operations/GetSearchResultsMedia.md new file mode 100644 index 00000000..f6cd05e2 --- /dev/null +++ b/docs/models/operations/GetSearchResultsMedia.md @@ -0,0 +1,22 @@ +# GetSearchResultsMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `id` | *Double* | :heavy_minus_sign: | N/A | 26610 | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 6612628 | +| `bitrate` | *Double* | :heavy_minus_sign: | N/A | 4751 | +| `width` | *Double* | :heavy_minus_sign: | N/A | 1916 | +| `height` | *Double* | :heavy_minus_sign: | N/A | 796 | +| `aspectRatio` | *Double* | :heavy_minus_sign: | N/A | 2.35 | +| `audioChannels` | *Double* | :heavy_minus_sign: | N/A | 6 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | aac | +| `videoCodec` | *String* | :heavy_minus_sign: | N/A | hevc | +| `videoResolution` | *Double* | :heavy_minus_sign: | N/A | 1080 | +| `container` | *String* | :heavy_minus_sign: | N/A | mkv | +| `videoFrameRate` | *String* | :heavy_minus_sign: | N/A | 24p | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | main 10 | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsPart](../../models/operations/GetSearchResultsPart.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsMediaContainer.md b/docs/models/operations/GetSearchResultsMediaContainer.md new file mode 100644 index 00000000..ffde8698 --- /dev/null +++ b/docs/models/operations/GetSearchResultsMediaContainer.md @@ -0,0 +1,13 @@ +# GetSearchResultsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | 26 | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Double* | :heavy_minus_sign: | N/A | 1680021154 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsMetadata](../../models/operations/GetSearchResultsMetadata.md)> | :heavy_minus_sign: | N/A | | +| `provider` | List<[lukehagar.plexapi.plexapi.models.operations.Provider](../../models/operations/Provider.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsMetadata.md b/docs/models/operations/GetSearchResultsMetadata.md new file mode 100644 index 00000000..cad02e51 --- /dev/null +++ b/docs/models/operations/GetSearchResultsMetadata.md @@ -0,0 +1,41 @@ +# GetSearchResultsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | | +| `librarySectionID` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionUUID` | *String* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | +| `personal` | *Boolean* | :heavy_minus_sign: | N/A | | +| `sourceTitle` | *String* | :heavy_minus_sign: | N/A | Hera | +| `ratingKey` | *Double* | :heavy_minus_sign: | N/A | 10398 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/10398 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://movie/5d7768284de0ee001fcc8f52 | +| `studio` | *String* | :heavy_minus_sign: | N/A | Paramount | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Mission: Impossible | +| `contentRating` | *String* | :heavy_minus_sign: | N/A | PG-13 | +| `summary` | *String* | :heavy_minus_sign: | N/A | When Ethan Hunt the leader of a crack espionage team whose perilous operation has gone awry with no explanation discovers that a mole has penetrated the CIA he's surprised to learn that he's the No. 1 suspect. To clear his name Hunt now must ferret out the real double agent and in the process even the score. | +| `rating` | *Double* | :heavy_minus_sign: | N/A | 6.6 | +| `audienceRating` | *Double* | :heavy_minus_sign: | N/A | 7.1 | +| `year` | *Double* | :heavy_minus_sign: | N/A | 1996 | +| `tagline` | *String* | :heavy_minus_sign: | N/A | Expect the impossible. | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/10398/thumb/1679505055 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/10398/art/1679505055 | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 6612628 | +| `originallyAvailableAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | 1996-05-22 00:00:00 +0000 UTC | +| `addedAt` | *Double* | :heavy_minus_sign: | N/A | 1589234571 | +| `updatedAt` | *Double* | :heavy_minus_sign: | N/A | 1679505055 | +| `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/10501 | +| `ratingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | +| `media` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsMedia](../../models/operations/GetSearchResultsMedia.md)> | :heavy_minus_sign: | N/A | | +| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsGenre](../../models/operations/GetSearchResultsGenre.md)> | :heavy_minus_sign: | N/A | | +| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsDirector](../../models/operations/GetSearchResultsDirector.md)> | :heavy_minus_sign: | N/A | | +| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsWriter](../../models/operations/GetSearchResultsWriter.md)> | :heavy_minus_sign: | N/A | | +| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsCountry](../../models/operations/GetSearchResultsCountry.md)> | :heavy_minus_sign: | N/A | | +| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsRole](../../models/operations/GetSearchResultsRole.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsPart.md b/docs/models/operations/GetSearchResultsPart.md new file mode 100644 index 00000000..e87dd792 --- /dev/null +++ b/docs/models/operations/GetSearchResultsPart.md @@ -0,0 +1,15 @@ +# GetSearchResultsPart + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `id` | *Double* | :heavy_minus_sign: | N/A | 26610 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/26610/1589234571/file.mkv | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 6612628 | +| `file` | *String* | :heavy_minus_sign: | N/A | /movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv | +| `size` | *Double* | :heavy_minus_sign: | N/A | 3926903851 | +| `audioProfile` | *String* | :heavy_minus_sign: | N/A | lc | +| `container` | *String* | :heavy_minus_sign: | N/A | mkv | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | main 10 | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsRequest.md b/docs/models/operations/GetSearchResultsRequest.md new file mode 100644 index 00000000..cc56e4f3 --- /dev/null +++ b/docs/models/operations/GetSearchResultsRequest.md @@ -0,0 +1,8 @@ +# GetSearchResultsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `query` | *String* | :heavy_check_mark: | The search query string to use | 110 | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsResponse.md b/docs/models/operations/GetSearchResultsResponse.md new file mode 100644 index 00000000..26bb3aa6 --- /dev/null +++ b/docs/models/operations/GetSearchResultsResponse.md @@ -0,0 +1,12 @@ +# GetSearchResultsResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetSearchResultsResponseBody](../../models/operations/GetSearchResultsResponseBody.md) | :heavy_minus_sign: | Search Results | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetSearchResultsSearchResponseBody](../../models/operations/GetSearchResultsSearchResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsResponseBody.md b/docs/models/operations/GetSearchResultsResponseBody.md new file mode 100644 index 00000000..3cef70b0 --- /dev/null +++ b/docs/models/operations/GetSearchResultsResponseBody.md @@ -0,0 +1,10 @@ +# GetSearchResultsResponseBody + +Search Results + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetSearchResultsMediaContainer](../../models/operations/GetSearchResultsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsRole.md b/docs/models/operations/GetSearchResultsRole.md new file mode 100644 index 00000000..13cc8bcf --- /dev/null +++ b/docs/models/operations/GetSearchResultsRole.md @@ -0,0 +1,8 @@ +# GetSearchResultsRole + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Tom Cruise | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsSearchResponseBody.md b/docs/models/operations/GetSearchResultsSearchResponseBody.md new file mode 100644 index 00000000..021bd7ae --- /dev/null +++ b/docs/models/operations/GetSearchResultsSearchResponseBody.md @@ -0,0 +1,10 @@ +# GetSearchResultsSearchResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetSearchResultsErrors](../../models/operations/GetSearchResultsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSearchResultsWriter.md b/docs/models/operations/GetSearchResultsWriter.md new file mode 100644 index 00000000..7e628e35 --- /dev/null +++ b/docs/models/operations/GetSearchResultsWriter.md @@ -0,0 +1,8 @@ +# GetSearchResultsWriter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | David Koepp | \ No newline at end of file diff --git a/docs/models/operations/GetServerActivitiesActivitiesResponseBody.md b/docs/models/operations/GetServerActivitiesActivitiesResponseBody.md new file mode 100644 index 00000000..821d3ee0 --- /dev/null +++ b/docs/models/operations/GetServerActivitiesActivitiesResponseBody.md @@ -0,0 +1,10 @@ +# GetServerActivitiesActivitiesResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesErrors](../../models/operations/GetServerActivitiesErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerActivitiesErrors.md b/docs/models/operations/GetServerActivitiesErrors.md new file mode 100644 index 00000000..f175ff51 --- /dev/null +++ b/docs/models/operations/GetServerActivitiesErrors.md @@ -0,0 +1,10 @@ +# GetServerActivitiesErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetServerActivitiesMediaContainer.md b/docs/models/operations/GetServerActivitiesMediaContainer.md new file mode 100644 index 00000000..360c39c0 --- /dev/null +++ b/docs/models/operations/GetServerActivitiesMediaContainer.md @@ -0,0 +1,9 @@ +# GetServerActivitiesMediaContainer + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | +| `activity` | List<[lukehagar.plexapi.plexapi.models.operations.Activity](../../models/operations/Activity.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerActivitiesResponse.md b/docs/models/operations/GetServerActivitiesResponse.md new file mode 100644 index 00000000..be75e6e5 --- /dev/null +++ b/docs/models/operations/GetServerActivitiesResponse.md @@ -0,0 +1,12 @@ +# GetServerActivitiesResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponseBody](../../models/operations/GetServerActivitiesResponseBody.md) | :heavy_minus_sign: | The Server Activities | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesActivitiesResponseBody](../../models/operations/GetServerActivitiesActivitiesResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetServerActivitiesResponseBody.md b/docs/models/operations/GetServerActivitiesResponseBody.md new file mode 100644 index 00000000..f2ef1c1f --- /dev/null +++ b/docs/models/operations/GetServerActivitiesResponseBody.md @@ -0,0 +1,10 @@ +# GetServerActivitiesResponseBody + +The Server Activities + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesMediaContainer](../../models/operations/GetServerActivitiesMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerCapabilitiesResponse.md b/docs/models/operations/GetServerCapabilitiesResponse.md new file mode 100644 index 00000000..f50d38e7 --- /dev/null +++ b/docs/models/operations/GetServerCapabilitiesResponse.md @@ -0,0 +1,12 @@ +# GetServerCapabilitiesResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponseBody](../../models/operations/GetServerCapabilitiesResponseBody.md) | :heavy_minus_sign: | The Server Capabilities | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesServerResponseBody](../../models/operations/GetServerCapabilitiesServerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetServerCapabilitiesResponseBody.md b/docs/models/operations/GetServerCapabilitiesResponseBody.md new file mode 100644 index 00000000..b2fa2767 --- /dev/null +++ b/docs/models/operations/GetServerCapabilitiesResponseBody.md @@ -0,0 +1,10 @@ +# GetServerCapabilitiesResponseBody + +The Server Capabilities + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.MediaContainer](../../models/operations/MediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerCapabilitiesServerResponseBody.md b/docs/models/operations/GetServerCapabilitiesServerResponseBody.md new file mode 100644 index 00000000..593761d9 --- /dev/null +++ b/docs/models/operations/GetServerCapabilitiesServerResponseBody.md @@ -0,0 +1,10 @@ +# GetServerCapabilitiesServerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.Errors](../../models/operations/Errors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerIdentityErrors.md b/docs/models/operations/GetServerIdentityErrors.md new file mode 100644 index 00000000..892921d4 --- /dev/null +++ b/docs/models/operations/GetServerIdentityErrors.md @@ -0,0 +1,10 @@ +# GetServerIdentityErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetServerIdentityMediaContainer.md b/docs/models/operations/GetServerIdentityMediaContainer.md new file mode 100644 index 00000000..8c6c71cf --- /dev/null +++ b/docs/models/operations/GetServerIdentityMediaContainer.md @@ -0,0 +1,11 @@ +# GetServerIdentityMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | 0 | +| `claimed` | *Boolean* | :heavy_minus_sign: | N/A | | +| `machineIdentifier` | *String* | :heavy_minus_sign: | N/A | 96f2fe7a78c9dc1f16a16bedbe90f98149be16b4 | +| `version` | *String* | :heavy_minus_sign: | N/A | 1.31.3.6868-28fc46b27 | \ No newline at end of file diff --git a/docs/models/operations/GetServerIdentityResponse.md b/docs/models/operations/GetServerIdentityResponse.md new file mode 100644 index 00000000..42005076 --- /dev/null +++ b/docs/models/operations/GetServerIdentityResponse.md @@ -0,0 +1,12 @@ +# GetServerIdentityResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerIdentityResponseBody](../../models/operations/GetServerIdentityResponseBody.md) | :heavy_minus_sign: | The Server Identity information | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerIdentityServerResponseBody](../../models/operations/GetServerIdentityServerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetServerIdentityResponseBody.md b/docs/models/operations/GetServerIdentityResponseBody.md new file mode 100644 index 00000000..227e49f6 --- /dev/null +++ b/docs/models/operations/GetServerIdentityResponseBody.md @@ -0,0 +1,10 @@ +# GetServerIdentityResponseBody + +The Server Identity information + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetServerIdentityMediaContainer](../../models/operations/GetServerIdentityMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerIdentityServerResponseBody.md b/docs/models/operations/GetServerIdentityServerResponseBody.md new file mode 100644 index 00000000..3df7ea44 --- /dev/null +++ b/docs/models/operations/GetServerIdentityServerResponseBody.md @@ -0,0 +1,10 @@ +# GetServerIdentityServerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetServerIdentityErrors](../../models/operations/GetServerIdentityErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerListErrors.md b/docs/models/operations/GetServerListErrors.md new file mode 100644 index 00000000..e1be382d --- /dev/null +++ b/docs/models/operations/GetServerListErrors.md @@ -0,0 +1,10 @@ +# GetServerListErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetServerListMediaContainer.md b/docs/models/operations/GetServerListMediaContainer.md new file mode 100644 index 00000000..7051ccb2 --- /dev/null +++ b/docs/models/operations/GetServerListMediaContainer.md @@ -0,0 +1,9 @@ +# GetServerListMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `server` | List<[lukehagar.plexapi.plexapi.models.operations.GetServerListServer](../../models/operations/GetServerListServer.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetServerListResponse.md b/docs/models/operations/GetServerListResponse.md new file mode 100644 index 00000000..73d16f50 --- /dev/null +++ b/docs/models/operations/GetServerListResponse.md @@ -0,0 +1,12 @@ +# GetServerListResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerListResponseBody](../../models/operations/GetServerListResponseBody.md) | :heavy_minus_sign: | List of Servers | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerListServerResponseBody](../../models/operations/GetServerListServerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetServerListResponseBody.md b/docs/models/operations/GetServerListResponseBody.md new file mode 100644 index 00000000..9061c5c3 --- /dev/null +++ b/docs/models/operations/GetServerListResponseBody.md @@ -0,0 +1,10 @@ +# GetServerListResponseBody + +List of Servers + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetServerListMediaContainer](../../models/operations/GetServerListMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerListServer.md b/docs/models/operations/GetServerListServer.md new file mode 100644 index 00000000..e98b2286 --- /dev/null +++ b/docs/models/operations/GetServerListServer.md @@ -0,0 +1,13 @@ +# GetServerListServer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `name` | *String* | :heavy_minus_sign: | N/A | Hera | +| `host` | *String* | :heavy_minus_sign: | N/A | 10.10.10.47 | +| `address` | *String* | :heavy_minus_sign: | N/A | 10.10.10.47 | +| `port` | *Double* | :heavy_minus_sign: | N/A | 32400 | +| `machineIdentifier` | *String* | :heavy_minus_sign: | N/A | 96f2fe7a78c9dc1f16a16bedbe90f98149be16b4 | +| `version` | *String* | :heavy_minus_sign: | N/A | 1.31.3.6868-28fc46b27 | \ No newline at end of file diff --git a/docs/models/operations/GetServerListServerResponseBody.md b/docs/models/operations/GetServerListServerResponseBody.md new file mode 100644 index 00000000..ff655ac1 --- /dev/null +++ b/docs/models/operations/GetServerListServerResponseBody.md @@ -0,0 +1,10 @@ +# GetServerListServerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetServerListErrors](../../models/operations/GetServerListErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerPreferencesErrors.md b/docs/models/operations/GetServerPreferencesErrors.md new file mode 100644 index 00000000..3c2fe155 --- /dev/null +++ b/docs/models/operations/GetServerPreferencesErrors.md @@ -0,0 +1,10 @@ +# GetServerPreferencesErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetServerPreferencesMediaContainer.md b/docs/models/operations/GetServerPreferencesMediaContainer.md new file mode 100644 index 00000000..e4baa613 --- /dev/null +++ b/docs/models/operations/GetServerPreferencesMediaContainer.md @@ -0,0 +1,9 @@ +# GetServerPreferencesMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 161 | +| `setting` | List<[lukehagar.plexapi.plexapi.models.operations.Setting](../../models/operations/Setting.md)> | :heavy_minus_sign: | N/A | [
{
"id": "EnableDatabaseTrace",
"label": "",
"summary": "",
"type": "bool",
"default": false,
"value": false,
"hidden": true,
"advanced": false,
"group": "",
"enumValues": "1:admin only\|2:everyone"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetServerPreferencesResponse.md b/docs/models/operations/GetServerPreferencesResponse.md new file mode 100644 index 00000000..44db06f1 --- /dev/null +++ b/docs/models/operations/GetServerPreferencesResponse.md @@ -0,0 +1,12 @@ +# GetServerPreferencesResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesResponseBody](../../models/operations/GetServerPreferencesResponseBody.md) | :heavy_minus_sign: | Server Preferences | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesServerResponseBody](../../models/operations/GetServerPreferencesServerResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetServerPreferencesResponseBody.md b/docs/models/operations/GetServerPreferencesResponseBody.md new file mode 100644 index 00000000..5265ac09 --- /dev/null +++ b/docs/models/operations/GetServerPreferencesResponseBody.md @@ -0,0 +1,10 @@ +# GetServerPreferencesResponseBody + +Server Preferences + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesMediaContainer](../../models/operations/GetServerPreferencesMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetServerPreferencesServerResponseBody.md b/docs/models/operations/GetServerPreferencesServerResponseBody.md new file mode 100644 index 00000000..3576a991 --- /dev/null +++ b/docs/models/operations/GetServerPreferencesServerResponseBody.md @@ -0,0 +1,10 @@ +# GetServerPreferencesServerResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesErrors](../../models/operations/GetServerPreferencesErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSessionHistoryErrors.md b/docs/models/operations/GetSessionHistoryErrors.md new file mode 100644 index 00000000..42b0275a --- /dev/null +++ b/docs/models/operations/GetSessionHistoryErrors.md @@ -0,0 +1,10 @@ +# GetSessionHistoryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetSessionHistoryMediaContainer.md b/docs/models/operations/GetSessionHistoryMediaContainer.md new file mode 100644 index 00000000..fc03b2bc --- /dev/null +++ b/docs/models/operations/GetSessionHistoryMediaContainer.md @@ -0,0 +1,9 @@ +# GetSessionHistoryMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 10855 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryMetadata](../../models/operations/GetSessionHistoryMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"historyKey": "/status/sessions/history/1",
"key": "/library/metadata/32171",
"ratingKey": "32171",
"librarySectionID": "2",
"parentKey": "/library/metadata/32170",
"grandparentKey": "/library/metadata/32132",
"title": "The Noise That Blue Makes",
"grandparentTitle": "Taskmaster",
"type": "episode",
"thumb": "/library/metadata/32171/thumb/-1",
"parentThumb": "/library/metadata/32170/thumb/1654134301",
"grandparentThumb": "/library/metadata/32132/thumb/1703933346",
"grandparentArt": "/library/metadata/32132/art/1703933346",
"index": 1,
"parentIndex": 13,
"originallyAvailableAt": "2022-04-14T00:00:00Z",
"viewedAt": 1654139223,
"accountID": 1,
"deviceID": 5
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetSessionHistoryMetadata.md b/docs/models/operations/GetSessionHistoryMetadata.md new file mode 100644 index 00000000..c889810b --- /dev/null +++ b/docs/models/operations/GetSessionHistoryMetadata.md @@ -0,0 +1,26 @@ +# GetSessionHistoryMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `historyKey` | *String* | :heavy_minus_sign: | N/A | /status/sessions/history/1 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/32171 | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 32171 | +| `librarySectionID` | *String* | :heavy_minus_sign: | N/A | 2 | +| `parentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/32170 | +| `grandparentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/32132 | +| `title` | *String* | :heavy_minus_sign: | N/A | The Noise That Blue Makes | +| `grandparentTitle` | *String* | :heavy_minus_sign: | N/A | Taskmaster | +| `type` | *String* | :heavy_minus_sign: | N/A | episode | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/32171/thumb/-1 | +| `parentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/32170/thumb/1654134301 | +| `grandparentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/32132/thumb/1703933346 | +| `grandparentArt` | *String* | :heavy_minus_sign: | N/A | /library/metadata/32132/art/1703933346 | +| `index` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `parentIndex` | *Integer* | :heavy_minus_sign: | N/A | 13 | +| `originallyAvailableAt` | [LocalDate](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) | :heavy_minus_sign: | N/A | 2022-04-14 00:00:00 +0000 UTC | +| `viewedAt` | *Integer* | :heavy_minus_sign: | N/A | 1654139223 | +| `accountID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `deviceID` | *Integer* | :heavy_minus_sign: | N/A | 5 | \ No newline at end of file diff --git a/docs/models/operations/GetSessionHistoryResponse.md b/docs/models/operations/GetSessionHistoryResponse.md new file mode 100644 index 00000000..4a7497b1 --- /dev/null +++ b/docs/models/operations/GetSessionHistoryResponse.md @@ -0,0 +1,12 @@ +# GetSessionHistoryResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryResponseBody](../../models/operations/GetSessionHistoryResponseBody.md) | :heavy_minus_sign: | List of Plex Sessions | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetSessionHistorySessionsResponseBody](../../models/operations/GetSessionHistorySessionsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetSessionHistoryResponseBody.md b/docs/models/operations/GetSessionHistoryResponseBody.md new file mode 100644 index 00000000..20a9a728 --- /dev/null +++ b/docs/models/operations/GetSessionHistoryResponseBody.md @@ -0,0 +1,10 @@ +# GetSessionHistoryResponseBody + +List of Plex Sessions + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryMediaContainer](../../models/operations/GetSessionHistoryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSessionHistorySessionsResponseBody.md b/docs/models/operations/GetSessionHistorySessionsResponseBody.md new file mode 100644 index 00000000..da0f79ad --- /dev/null +++ b/docs/models/operations/GetSessionHistorySessionsResponseBody.md @@ -0,0 +1,10 @@ +# GetSessionHistorySessionsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryErrors](../../models/operations/GetSessionHistoryErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsErrors.md b/docs/models/operations/GetSessionsErrors.md new file mode 100644 index 00000000..7e890a56 --- /dev/null +++ b/docs/models/operations/GetSessionsErrors.md @@ -0,0 +1,10 @@ +# GetSessionsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsMedia.md b/docs/models/operations/GetSessionsMedia.md new file mode 100644 index 00000000..83a48f86 --- /dev/null +++ b/docs/models/operations/GetSessionsMedia.md @@ -0,0 +1,15 @@ +# GetSessionsMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `audioChannels` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | flac | +| `bitrate` | *Integer* | :heavy_minus_sign: | N/A | 1014 | +| `container` | *String* | :heavy_minus_sign: | N/A | flac | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 186240 | +| `id` | *String* | :heavy_minus_sign: | N/A | 130355 | +| `selected` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsPart](../../models/operations/GetSessionsPart.md)> | :heavy_minus_sign: | N/A | [
{
"container": "flac",
"duration": 186240,
"file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac",
"hasThumbnail": "1",
"id": "130625",
"key": "/library/parts/130625/1705543268/file.flac",
"size": 23644000,
"decision": "directplay",
"selected": true,
"Stream": [
{
"albumGain": "-12.94",
"albumPeak": "1.000000",
"albumRange": "4.751014",
"audioChannelLayout": "stereo",
"bitDepth": 16,
"bitrate": 1014,
"channels": 2,
"codec": "flac",
"displayTitle": "FLAC (Stereo)",
"extendedDisplayTitle": "FLAC (Stereo)",
"gain": "-12.94",
"id": "352487",
"index": 0,
"loudness": "-5.94",
"lra": "1.74",
"peak": "1.000000",
"samplingRate": 44100,
"selected": true,
"streamType": 2,
"location": "direct"
}
]
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsMediaContainer.md b/docs/models/operations/GetSessionsMediaContainer.md new file mode 100644 index 00000000..3c3c758e --- /dev/null +++ b/docs/models/operations/GetSessionsMediaContainer.md @@ -0,0 +1,9 @@ +# GetSessionsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsMetadata](../../models/operations/GetSessionsMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"addedAt": 1705543312,
"art": "/library/metadata/39904/art/1705310687",
"duration": 186240,
"grandparentArt": "/library/metadata/39904/art/1705310687",
"grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480",
"grandparentKey": "/library/metadata/39904",
"grandparentRatingKey": "39904",
"grandparentThumb": "/library/metadata/39904/thumb/1705310687",
"grandparentTitle": "Green Day",
"guid": "plex://track/6535834f71f22f36f71a8e8f",
"index": 1,
"key": "/library/metadata/67085",
"librarySectionID": "3",
"librarySectionKey": "/library/sections/3",
"librarySectionTitle": "Music",
"musicAnalysisVersion": "1",
"parentGuid": "plex://album/65394d6d472b8ab03ef47f12",
"parentIndex": 1,
"parentKey": "/library/metadata/67084",
"parentRatingKey": "67084",
"parentStudio": "Reprise Records",
"parentThumb": "/library/metadata/67084/thumb/1705543314",
"parentTitle": "Saviors",
"parentYear": 2024,
"ratingCount": 45885,
"ratingKey": "67085",
"sessionKey": "203",
"thumb": "/library/metadata/67084/thumb/1705543314",
"title": "The American Dream Is Killing Me",
"titleSort": "American Dream Is Killing Me",
"type": "track",
"updatedAt": 1705543314,
"viewOffset": 1000,
"Media": [
{
"audioChannels": 2,
"audioCodec": "flac",
"bitrate": 1014,
"container": "flac",
"duration": 186240,
"id": "130355",
"selected": true,
"Part": [
{
"container": "flac",
"duration": 186240,
"file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac",
"hasThumbnail": "1",
"id": "130625",
"key": "/library/parts/130625/1705543268/file.flac",
"size": 23644000,
"decision": "directplay",
"selected": true,
"Stream": [
{
"albumGain": "-12.94",
"albumPeak": "1.000000",
"albumRange": "4.751014",
"audioChannelLayout": "stereo",
"bitDepth": 16,
"bitrate": 1014,
"channels": 2,
"codec": "flac",
"displayTitle": "FLAC (Stereo)",
"extendedDisplayTitle": "FLAC (Stereo)",
"gain": "-12.94",
"id": "352487",
"index": 0,
"loudness": "-5.94",
"lra": "1.74",
"peak": "1.000000",
"samplingRate": 44100,
"selected": true,
"streamType": 2,
"location": "direct"
}
]
}
]
}
],
"User": {
"id": "1",
"thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661",
"title": "Blindkitty38"
},
"Player": {
"address": "10.10.10.171",
"machineIdentifier": "3tsdzir85m2onc3qyr255aq1",
"model": "standalone",
"platform": "windows",
"platformVersion": "10.0.22621",
"product": "Plex for Windows",
"profile": "Plex Desktop",
"remotePublicAddress": "68.248.140.20",
"state": "playing",
"title": "DESKTOP-BL80MTD",
"version": "1.85.0.4071-21128b56",
"local": true,
"relayed": false,
"secure": true,
"userID": 1
},
"Session": {
"id": "93h7e00ncblxncqw9lkfaoxi",
"bandwidth": 1050,
"location": "lan"
}
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsMetadata.md b/docs/models/operations/GetSessionsMetadata.md new file mode 100644 index 00000000..8539962d --- /dev/null +++ b/docs/models/operations/GetSessionsMetadata.md @@ -0,0 +1,44 @@ +# GetSessionsMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705543312 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 186240 | +| `grandparentArt` | *String* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 | +| `grandparentGuid` | *String* | :heavy_minus_sign: | N/A | plex://artist/5d07bbfd403c6402904a6480 | +| `grandparentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/39904 | +| `grandparentRatingKey` | *String* | :heavy_minus_sign: | N/A | 39904 | +| `grandparentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/39904/thumb/1705310687 | +| `grandparentTitle` | *String* | :heavy_minus_sign: | N/A | Green Day | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://track/6535834f71f22f36f71a8e8f | +| `index` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/67085 | +| `librarySectionID` | *String* | :heavy_minus_sign: | N/A | 3 | +| `librarySectionKey` | *String* | :heavy_minus_sign: | N/A | /library/sections/3 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Music | +| `musicAnalysisVersion` | *String* | :heavy_minus_sign: | N/A | 1 | +| `parentGuid` | *String* | :heavy_minus_sign: | N/A | plex://album/65394d6d472b8ab03ef47f12 | +| `parentIndex` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `parentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/67084 | +| `parentRatingKey` | *String* | :heavy_minus_sign: | N/A | 67084 | +| `parentStudio` | *String* | :heavy_minus_sign: | N/A | Reprise Records | +| `parentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/67084/thumb/1705543314 | +| `parentTitle` | *String* | :heavy_minus_sign: | N/A | Saviors | +| `parentYear` | *Integer* | :heavy_minus_sign: | N/A | 2024 | +| `ratingCount` | *Integer* | :heavy_minus_sign: | N/A | 45885 | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 67085 | +| `sessionKey` | *String* | :heavy_minus_sign: | N/A | 203 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/67084/thumb/1705543314 | +| `title` | *String* | :heavy_minus_sign: | N/A | The American Dream Is Killing Me | +| `titleSort` | *String* | :heavy_minus_sign: | N/A | American Dream Is Killing Me | +| `type` | *String* | :heavy_minus_sign: | N/A | track | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705543314 | +| `viewOffset` | *Integer* | :heavy_minus_sign: | N/A | 1000 | +| `media` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsMedia](../../models/operations/GetSessionsMedia.md)> | :heavy_minus_sign: | N/A | [
{
"audioChannels": 2,
"audioCodec": "flac",
"bitrate": 1014,
"container": "flac",
"duration": 186240,
"id": "130355",
"selected": true,
"Part": [
{
"container": "flac",
"duration": 186240,
"file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac",
"hasThumbnail": "1",
"id": "130625",
"key": "/library/parts/130625/1705543268/file.flac",
"size": 23644000,
"decision": "directplay",
"selected": true,
"Stream": [
{
"albumGain": "-12.94",
"albumPeak": "1.000000",
"albumRange": "4.751014",
"audioChannelLayout": "stereo",
"bitDepth": 16,
"bitrate": 1014,
"channels": 2,
"codec": "flac",
"displayTitle": "FLAC (Stereo)",
"extendedDisplayTitle": "FLAC (Stereo)",
"gain": "-12.94",
"id": "352487",
"index": 0,
"loudness": "-5.94",
"lra": "1.74",
"peak": "1.000000",
"samplingRate": 44100,
"selected": true,
"streamType": 2,
"location": "direct"
}
]
}
]
}
] | +| `user` | [lukehagar.plexapi.plexapi.models.operations.User](../../models/operations/User.md) | :heavy_minus_sign: | N/A | | +| `player` | [lukehagar.plexapi.plexapi.models.operations.Player](../../models/operations/Player.md) | :heavy_minus_sign: | N/A | | +| `session` | [lukehagar.plexapi.plexapi.models.operations.Session](../../models/operations/Session.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsPart.md b/docs/models/operations/GetSessionsPart.md new file mode 100644 index 00000000..c53e6e82 --- /dev/null +++ b/docs/models/operations/GetSessionsPart.md @@ -0,0 +1,17 @@ +# GetSessionsPart + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `container` | *String* | :heavy_minus_sign: | N/A | flac | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 186240 | +| `file` | *String* | :heavy_minus_sign: | N/A | /music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac | +| `hasThumbnail` | *String* | :heavy_minus_sign: | N/A | 1 | +| `id` | *String* | :heavy_minus_sign: | N/A | 130625 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/130625/1705543268/file.flac | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 23644000 | +| `decision` | *String* | :heavy_minus_sign: | N/A | directplay | +| `selected` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `stream` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsStream](../../models/operations/GetSessionsStream.md)> | :heavy_minus_sign: | N/A | [
{
"albumGain": "-12.94",
"albumPeak": "1.000000",
"albumRange": "4.751014",
"audioChannelLayout": "stereo",
"bitDepth": 16,
"bitrate": 1014,
"channels": 2,
"codec": "flac",
"displayTitle": "FLAC (Stereo)",
"extendedDisplayTitle": "FLAC (Stereo)",
"gain": "-12.94",
"id": "352487",
"index": 0,
"loudness": "-5.94",
"lra": "1.74",
"peak": "1.000000",
"samplingRate": 44100,
"selected": true,
"streamType": 2,
"location": "direct"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsResponse.md b/docs/models/operations/GetSessionsResponse.md new file mode 100644 index 00000000..dd3d9ddf --- /dev/null +++ b/docs/models/operations/GetSessionsResponse.md @@ -0,0 +1,12 @@ +# GetSessionsResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetSessionsResponseBody](../../models/operations/GetSessionsResponseBody.md) | :heavy_minus_sign: | List of Active Plex Sessions | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetSessionsSessionsResponseBody](../../models/operations/GetSessionsSessionsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsResponseBody.md b/docs/models/operations/GetSessionsResponseBody.md new file mode 100644 index 00000000..fff2b1c1 --- /dev/null +++ b/docs/models/operations/GetSessionsResponseBody.md @@ -0,0 +1,10 @@ +# GetSessionsResponseBody + +List of Active Plex Sessions + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetSessionsMediaContainer](../../models/operations/GetSessionsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsSessionsResponseBody.md b/docs/models/operations/GetSessionsSessionsResponseBody.md new file mode 100644 index 00000000..bafac48a --- /dev/null +++ b/docs/models/operations/GetSessionsSessionsResponseBody.md @@ -0,0 +1,10 @@ +# GetSessionsSessionsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsErrors](../../models/operations/GetSessionsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetSessionsStream.md b/docs/models/operations/GetSessionsStream.md new file mode 100644 index 00000000..9f0c7271 --- /dev/null +++ b/docs/models/operations/GetSessionsStream.md @@ -0,0 +1,27 @@ +# GetSessionsStream + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `albumGain` | *String* | :heavy_minus_sign: | N/A | -12.94 | +| `albumPeak` | *String* | :heavy_minus_sign: | N/A | 1.000000 | +| `albumRange` | *String* | :heavy_minus_sign: | N/A | 4.751014 | +| `audioChannelLayout` | *String* | :heavy_minus_sign: | N/A | stereo | +| `bitDepth` | *Integer* | :heavy_minus_sign: | N/A | 16 | +| `bitrate` | *Integer* | :heavy_minus_sign: | N/A | 1014 | +| `channels` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `codec` | *String* | :heavy_minus_sign: | N/A | flac | +| `displayTitle` | *String* | :heavy_minus_sign: | N/A | FLAC (Stereo) | +| `extendedDisplayTitle` | *String* | :heavy_minus_sign: | N/A | FLAC (Stereo) | +| `gain` | *String* | :heavy_minus_sign: | N/A | -12.94 | +| `id` | *String* | :heavy_minus_sign: | N/A | 352487 | +| `index` | *Integer* | :heavy_minus_sign: | N/A | 0 | +| `loudness` | *String* | :heavy_minus_sign: | N/A | -5.94 | +| `lra` | *String* | :heavy_minus_sign: | N/A | 1.74 | +| `peak` | *String* | :heavy_minus_sign: | N/A | 1.000000 | +| `samplingRate` | *Integer* | :heavy_minus_sign: | N/A | 44100 | +| `selected` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `streamType` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `location` | *String* | :heavy_minus_sign: | N/A | direct | \ No newline at end of file diff --git a/docs/models/operations/GetSourceConnectionInformationErrors.md b/docs/models/operations/GetSourceConnectionInformationErrors.md new file mode 100644 index 00000000..deb31dc9 --- /dev/null +++ b/docs/models/operations/GetSourceConnectionInformationErrors.md @@ -0,0 +1,10 @@ +# GetSourceConnectionInformationErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetSourceConnectionInformationRequest.md b/docs/models/operations/GetSourceConnectionInformationRequest.md new file mode 100644 index 00000000..a173a061 --- /dev/null +++ b/docs/models/operations/GetSourceConnectionInformationRequest.md @@ -0,0 +1,8 @@ +# GetSourceConnectionInformationRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | +| `source` | *String* | :heavy_check_mark: | The source identifier with an included prefix. | server://client-identifier | \ No newline at end of file diff --git a/docs/models/operations/GetSourceConnectionInformationResponse.md b/docs/models/operations/GetSourceConnectionInformationResponse.md new file mode 100644 index 00000000..0ad4b6b0 --- /dev/null +++ b/docs/models/operations/GetSourceConnectionInformationResponse.md @@ -0,0 +1,11 @@ +# GetSourceConnectionInformationResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationResponseBody](../../models/operations/GetSourceConnectionInformationResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetSourceConnectionInformationResponseBody.md b/docs/models/operations/GetSourceConnectionInformationResponseBody.md new file mode 100644 index 00000000..80e0f17e --- /dev/null +++ b/docs/models/operations/GetSourceConnectionInformationResponseBody.md @@ -0,0 +1,10 @@ +# GetSourceConnectionInformationResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationErrors](../../models/operations/GetSourceConnectionInformationErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetStatisticsDevice.md b/docs/models/operations/GetStatisticsDevice.md new file mode 100644 index 00000000..273b63ec --- /dev/null +++ b/docs/models/operations/GetStatisticsDevice.md @@ -0,0 +1,12 @@ +# GetStatisticsDevice + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 208 | +| `name` | *String* | :heavy_minus_sign: | N/A | Roku Express | +| `platform` | *String* | :heavy_minus_sign: | N/A | Roku | +| `clientIdentifier` | *String* | :heavy_minus_sign: | N/A | 793095d235660625108ef785cc7646e9 | +| `createdAt` | *Integer* | :heavy_minus_sign: | N/A | 1706470556 | \ No newline at end of file diff --git a/docs/models/operations/GetStatisticsErrors.md b/docs/models/operations/GetStatisticsErrors.md new file mode 100644 index 00000000..bd312cf7 --- /dev/null +++ b/docs/models/operations/GetStatisticsErrors.md @@ -0,0 +1,10 @@ +# GetStatisticsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetStatisticsMediaContainer.md b/docs/models/operations/GetStatisticsMediaContainer.md new file mode 100644 index 00000000..055d419b --- /dev/null +++ b/docs/models/operations/GetStatisticsMediaContainer.md @@ -0,0 +1,11 @@ +# GetStatisticsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 5497 | +| `device` | List<[lukehagar.plexapi.plexapi.models.operations.GetStatisticsDevice](../../models/operations/GetStatisticsDevice.md)> | :heavy_minus_sign: | N/A | [
{
"id": 208,
"name": "Roku Express",
"platform": "Roku",
"clientIdentifier": "793095d235660625108ef785cc7646e9",
"createdAt": 1706470556
}
] | +| `account` | List<[lukehagar.plexapi.plexapi.models.operations.Account](../../models/operations/Account.md)> | :heavy_minus_sign: | N/A | [
{
"id": 238960586,
"key": "/accounts/238960586",
"name": "Diane",
"defaultAudioLanguage": "en",
"autoSelectAudio": true,
"defaultSubtitleLanguage": "en",
"subtitleMode": 1,
"thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"
}
] | +| `statisticsMedia` | List<[lukehagar.plexapi.plexapi.models.operations.StatisticsMedia](../../models/operations/StatisticsMedia.md)> | :heavy_minus_sign: | N/A | [
{
"accountID": 1,
"deviceID": 13,
"timespan": 4,
"at": 1707141600,
"metadataType": 4,
"count": 1,
"duration": 1555
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetStatisticsRequest.md b/docs/models/operations/GetStatisticsRequest.md new file mode 100644 index 00000000..fd6ca4b7 --- /dev/null +++ b/docs/models/operations/GetStatisticsRequest.md @@ -0,0 +1,8 @@ +# GetStatisticsRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `timespan` | *Long* | :heavy_minus_sign: | The timespan to retrieve statistics for
the exact meaning of this parameter is not known
| \ No newline at end of file diff --git a/docs/models/operations/GetStatisticsResponse.md b/docs/models/operations/GetStatisticsResponse.md new file mode 100644 index 00000000..9b62edba --- /dev/null +++ b/docs/models/operations/GetStatisticsResponse.md @@ -0,0 +1,12 @@ +# GetStatisticsResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponseBody](../../models/operations/GetStatisticsResponseBody.md) | :heavy_minus_sign: | Media Statistics | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetStatisticsStatisticsResponseBody](../../models/operations/GetStatisticsStatisticsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetStatisticsResponseBody.md b/docs/models/operations/GetStatisticsResponseBody.md new file mode 100644 index 00000000..6ec0d026 --- /dev/null +++ b/docs/models/operations/GetStatisticsResponseBody.md @@ -0,0 +1,10 @@ +# GetStatisticsResponseBody + +Media Statistics + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetStatisticsMediaContainer](../../models/operations/GetStatisticsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetStatisticsStatisticsResponseBody.md b/docs/models/operations/GetStatisticsStatisticsResponseBody.md new file mode 100644 index 00000000..d5d4f457 --- /dev/null +++ b/docs/models/operations/GetStatisticsStatisticsResponseBody.md @@ -0,0 +1,10 @@ +# GetStatisticsStatisticsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetStatisticsErrors](../../models/operations/GetStatisticsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetTimelineErrors.md b/docs/models/operations/GetTimelineErrors.md new file mode 100644 index 00000000..29a5f1a7 --- /dev/null +++ b/docs/models/operations/GetTimelineErrors.md @@ -0,0 +1,10 @@ +# GetTimelineErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetTimelineRequest.md b/docs/models/operations/GetTimelineRequest.md new file mode 100644 index 00000000..d770e55d --- /dev/null +++ b/docs/models/operations/GetTimelineRequest.md @@ -0,0 +1,17 @@ +# GetTimelineRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `ratingKey` | *Double* | :heavy_check_mark: | The rating key of the media item | +| `key` | *String* | :heavy_check_mark: | The key of the media item to get the timeline for | +| `state` | [lukehagar.plexapi.plexapi.models.operations.State](../../models/operations/State.md) | :heavy_check_mark: | The state of the media item | +| `hasMDE` | *Double* | :heavy_check_mark: | Whether the media item has MDE | +| `time` | *Double* | :heavy_check_mark: | The time of the media item | +| `duration` | *Double* | :heavy_check_mark: | The duration of the media item | +| `context` | *String* | :heavy_check_mark: | The context of the media item | +| `playQueueItemID` | *Double* | :heavy_check_mark: | The play queue item ID of the media item | +| `playBackTime` | *Double* | :heavy_check_mark: | The playback time of the media item | +| `row` | *Double* | :heavy_check_mark: | The row of the media item | \ No newline at end of file diff --git a/docs/models/operations/GetTimelineResponse.md b/docs/models/operations/GetTimelineResponse.md new file mode 100644 index 00000000..1001cda4 --- /dev/null +++ b/docs/models/operations/GetTimelineResponse.md @@ -0,0 +1,11 @@ +# GetTimelineResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.GetTimelineResponseBody](../../models/operations/GetTimelineResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetTimelineResponseBody.md b/docs/models/operations/GetTimelineResponseBody.md new file mode 100644 index 00000000..ae9fb10b --- /dev/null +++ b/docs/models/operations/GetTimelineResponseBody.md @@ -0,0 +1,10 @@ +# GetTimelineResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetTimelineErrors](../../models/operations/GetTimelineErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetTokenErrors.md b/docs/models/operations/GetTokenErrors.md new file mode 100644 index 00000000..450d9820 --- /dev/null +++ b/docs/models/operations/GetTokenErrors.md @@ -0,0 +1,10 @@ +# GetTokenErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1000 | +| `message` | *String* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | +| `status` | *Double* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/models/operations/GetTokenRequest.md b/docs/models/operations/GetTokenRequest.md new file mode 100644 index 00000000..35b42626 --- /dev/null +++ b/docs/models/operations/GetTokenRequest.md @@ -0,0 +1,9 @@ +# GetTokenRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `pinID` | *String* | :heavy_check_mark: | The PinID to retrieve an access token for | +| `xPlexClientIdentifier` | *String* | :heavy_check_mark: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| \ No newline at end of file diff --git a/docs/models/operations/GetTokenResponse.md b/docs/models/operations/GetTokenResponse.md new file mode 100644 index 00000000..6cfcc8d1 --- /dev/null +++ b/docs/models/operations/GetTokenResponse.md @@ -0,0 +1,11 @@ +# GetTokenResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.GetTokenResponseBody](../../models/operations/GetTokenResponseBody.md) | :heavy_minus_sign: | X-Plex-Client-Identifier is missing | \ No newline at end of file diff --git a/docs/models/operations/GetTokenResponseBody.md b/docs/models/operations/GetTokenResponseBody.md new file mode 100644 index 00000000..d0380067 --- /dev/null +++ b/docs/models/operations/GetTokenResponseBody.md @@ -0,0 +1,10 @@ +# GetTokenResponseBody + +X-Plex-Client-Identifier is missing + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetTokenErrors](../../models/operations/GetTokenErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetTranscodeSessionsErrors.md b/docs/models/operations/GetTranscodeSessionsErrors.md new file mode 100644 index 00000000..3e8759d3 --- /dev/null +++ b/docs/models/operations/GetTranscodeSessionsErrors.md @@ -0,0 +1,10 @@ +# GetTranscodeSessionsErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetTranscodeSessionsMediaContainer.md b/docs/models/operations/GetTranscodeSessionsMediaContainer.md new file mode 100644 index 00000000..e3b7c2be --- /dev/null +++ b/docs/models/operations/GetTranscodeSessionsMediaContainer.md @@ -0,0 +1,9 @@ +# GetTranscodeSessionsMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `transcodeSession` | List<[lukehagar.plexapi.plexapi.models.operations.TranscodeSession](../../models/operations/TranscodeSession.md)> | :heavy_minus_sign: | N/A | [
{
"key": "vv3i2q2lax92qlzul1hbd4bx",
"throttled": false,
"complete": false,
"progress": 1.7999999523162842,
"size": -22,
"speed": 25.100000381469727,
"error": false,
"duration": 1445695,
"remaining": 53,
"context": "streaming",
"sourceVideoCodec": "h264",
"sourceAudioCodec": "aac",
"videoDecision": "transcode",
"audioDecision": "transcode",
"subtitleDecision": "burn",
"protocol": "http",
"container": "mkv",
"videoCodec": "h264",
"audioCodec": "opus",
"audioChannels": 1,
"transcodeHwRequested": true,
"timeStamp": 1705895805.4919229,
"maxOffsetAvailable": 29.53,
"minOffsetAvailable": 3.003000020980835
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetTranscodeSessionsResponse.md b/docs/models/operations/GetTranscodeSessionsResponse.md new file mode 100644 index 00000000..53ae78ee --- /dev/null +++ b/docs/models/operations/GetTranscodeSessionsResponse.md @@ -0,0 +1,12 @@ +# GetTranscodeSessionsResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsResponseBody](../../models/operations/GetTranscodeSessionsResponseBody.md) | :heavy_minus_sign: | The Transcode Sessions | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsSessionsResponseBody](../../models/operations/GetTranscodeSessionsSessionsResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetTranscodeSessionsResponseBody.md b/docs/models/operations/GetTranscodeSessionsResponseBody.md new file mode 100644 index 00000000..fe1cc585 --- /dev/null +++ b/docs/models/operations/GetTranscodeSessionsResponseBody.md @@ -0,0 +1,10 @@ +# GetTranscodeSessionsResponseBody + +The Transcode Sessions + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsMediaContainer](../../models/operations/GetTranscodeSessionsMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetTranscodeSessionsSessionsResponseBody.md b/docs/models/operations/GetTranscodeSessionsSessionsResponseBody.md new file mode 100644 index 00000000..9d0e8c9e --- /dev/null +++ b/docs/models/operations/GetTranscodeSessionsSessionsResponseBody.md @@ -0,0 +1,10 @@ +# GetTranscodeSessionsSessionsResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsErrors](../../models/operations/GetTranscodeSessionsErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetTransientTokenErrors.md b/docs/models/operations/GetTransientTokenErrors.md new file mode 100644 index 00000000..b2bbd9fd --- /dev/null +++ b/docs/models/operations/GetTransientTokenErrors.md @@ -0,0 +1,10 @@ +# GetTransientTokenErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetTransientTokenQueryParamType.md b/docs/models/operations/GetTransientTokenQueryParamType.md new file mode 100644 index 00000000..5c33dc3d --- /dev/null +++ b/docs/models/operations/GetTransientTokenQueryParamType.md @@ -0,0 +1,10 @@ +# GetTransientTokenQueryParamType + +`delegation` - This is the only supported `type` parameter. + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `DELEGATION` | delegation | \ No newline at end of file diff --git a/docs/models/operations/GetTransientTokenRequest.md b/docs/models/operations/GetTransientTokenRequest.md new file mode 100644 index 00000000..9a93ae2b --- /dev/null +++ b/docs/models/operations/GetTransientTokenRequest.md @@ -0,0 +1,9 @@ +# GetTransientTokenRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [lukehagar.plexapi.plexapi.models.operations.GetTransientTokenQueryParamType](../../models/operations/GetTransientTokenQueryParamType.md) | :heavy_check_mark: | `delegation` - This is the only supported `type` parameter. | +| `scope` | [lukehagar.plexapi.plexapi.models.operations.Scope](../../models/operations/Scope.md) | :heavy_check_mark: | `all` - This is the only supported `scope` parameter. | \ No newline at end of file diff --git a/docs/models/operations/GetTransientTokenResponse.md b/docs/models/operations/GetTransientTokenResponse.md new file mode 100644 index 00000000..f7de6f83 --- /dev/null +++ b/docs/models/operations/GetTransientTokenResponse.md @@ -0,0 +1,11 @@ +# GetTransientTokenResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.GetTransientTokenResponseBody](../../models/operations/GetTransientTokenResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetTransientTokenResponseBody.md b/docs/models/operations/GetTransientTokenResponseBody.md new file mode 100644 index 00000000..29027794 --- /dev/null +++ b/docs/models/operations/GetTransientTokenResponseBody.md @@ -0,0 +1,10 @@ +# GetTransientTokenResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetTransientTokenErrors](../../models/operations/GetTransientTokenErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetUpdateStatusErrors.md b/docs/models/operations/GetUpdateStatusErrors.md new file mode 100644 index 00000000..b13dd761 --- /dev/null +++ b/docs/models/operations/GetUpdateStatusErrors.md @@ -0,0 +1,10 @@ +# GetUpdateStatusErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/GetUpdateStatusMediaContainer.md b/docs/models/operations/GetUpdateStatusMediaContainer.md new file mode 100644 index 00000000..b9cc183f --- /dev/null +++ b/docs/models/operations/GetUpdateStatusMediaContainer.md @@ -0,0 +1,13 @@ +# GetUpdateStatusMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `canInstall` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `checkedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705801232 | +| `downloadURL` | *String* | :heavy_minus_sign: | N/A | https://plex.tv/downloads/latest/5?channel=8&build=linux-x86_64&distro=redhat&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx | +| `status` | *Integer* | :heavy_minus_sign: | N/A | 0 | +| `release` | List<[lukehagar.plexapi.plexapi.models.operations.Release](../../models/operations/Release.md)> | :heavy_minus_sign: | N/A | [
{
"key": "https://plex.tv/updater/releases/5136",
"version": "1.40.0.7775-456fbaf97",
"added": "(PLEASE NOTE) This version makes changes to the database which will make it compatible only with server versions 1.31.2 or higher (released March 14). You will not be able to use your database on Plex Media Server versions lower than this after this update. Please also be patient when updating to this version if you have a very large database and allow the upgrade process to finish.\n(Collections) Items added to a collection from the item context menu will now lock the collection field on the items (#12793)\n(Music) Store track genres and add filtering options (#14653)\n(Music) Support ID3v2.4 null-separated tags for genres and release type (#14653)\n(View History) No longer create a view history entry for items marked as played (#10888)\n(Web) Updated to 4.118.0",
"fixed": "(Agents) Changing a 'Other Videos' type library to the modern movie agent would fail (#14483)\n(Agents) It is possible that agents are not initialised during startup on rare occasions (#14654)\n(Agents) Remove the legacy OpenSubtitles agent which is no longer supported upstream (#14667)\n(Collection) Server could become unresponsive when collection membership changes (#14612)\n(DVR) Previously watched recordings could be deleted without being watched again (#13779)\n(Libraries) When performing fix match on items from certain music libraries the language would default to Arabic (#14501)\n(Library) The Content Rating not equal to None filter does not work (#14620)\n(Search) Album search results could contain all the album's tracks too (#14486)\n(Subtitles) In some circumstances, sidecar subtitles can show up for media when they're no longer available (#14674)\n(Transcoder) HW encoding would fail on devices with no rate control (#14222)\n(Transcoder) Software transcoding on Ubuntu could cause unexpected behavior (#14605)",
"downloadURL": "https://plex.tv/downloads/latest/5?channel=8\u0026build=linux-x86_64\u0026distro=redhat\u0026X-Plex-Token=xxxxxxxxxxxxxxxxxxxx",
"state": "notify"
}
] | \ No newline at end of file diff --git a/docs/models/operations/GetUpdateStatusResponse.md b/docs/models/operations/GetUpdateStatusResponse.md new file mode 100644 index 00000000..02092af6 --- /dev/null +++ b/docs/models/operations/GetUpdateStatusResponse.md @@ -0,0 +1,12 @@ +# GetUpdateStatusResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `twoHundredApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusResponseBody](../../models/operations/GetUpdateStatusResponseBody.md) | :heavy_minus_sign: | The Server Updates | +| `fourHundredAndOneApplicationJsonObject` | [lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusUpdaterResponseBody](../../models/operations/GetUpdateStatusUpdaterResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/GetUpdateStatusResponseBody.md b/docs/models/operations/GetUpdateStatusResponseBody.md new file mode 100644 index 00000000..6276eee0 --- /dev/null +++ b/docs/models/operations/GetUpdateStatusResponseBody.md @@ -0,0 +1,10 @@ +# GetUpdateStatusResponseBody + +The Server Updates + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusMediaContainer](../../models/operations/GetUpdateStatusMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetUpdateStatusUpdaterResponseBody.md b/docs/models/operations/GetUpdateStatusUpdaterResponseBody.md new file mode 100644 index 00000000..47f91a6c --- /dev/null +++ b/docs/models/operations/GetUpdateStatusUpdaterResponseBody.md @@ -0,0 +1,10 @@ +# GetUpdateStatusUpdaterResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusErrors](../../models/operations/GetUpdateStatusErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Guids.md b/docs/models/operations/Guids.md new file mode 100644 index 00000000..1f1bf529 --- /dev/null +++ b/docs/models/operations/Guids.md @@ -0,0 +1,8 @@ +# Guids + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *String* | :heavy_minus_sign: | N/A | tvdb://2337 | \ No newline at end of file diff --git a/docs/models/operations/Hub.md b/docs/models/operations/Hub.md new file mode 100644 index 00000000..16462a3e --- /dev/null +++ b/docs/models/operations/Hub.md @@ -0,0 +1,18 @@ +# Hub + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `hubKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/50768,65523,58188,57341,57302,57070 | +| `key` | *String* | :heavy_minus_sign: | N/A | /playlists/all?type=15&sort=lastViewedAt:desc&playlistType=video,audio | +| `title` | *String* | :heavy_minus_sign: | N/A | Recent Playlists | +| `type` | *String* | :heavy_minus_sign: | N/A | playlist | +| `hubIdentifier` | *String* | :heavy_minus_sign: | N/A | home.playlists | +| `context` | *String* | :heavy_minus_sign: | N/A | hub.home.playlists | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 6 | +| `more` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `style` | *String* | :heavy_minus_sign: | N/A | shelf | +| `promoted` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsMetadata](../../models/operations/GetGlobalHubsMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "57070",
"key": "/playlists/57070/items",
"guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c",
"type": "playlist",
"title": "November Movie Day",
"titleSort": "Tracks",
"summary": "",
"smart": false,
"playlistType": "video",
"composite": "/playlists/57070/composite/1668787730",
"icon": "playlist://image.smart",
"viewCount": 2,
"lastViewedAt": 1668787732,
"duration": 16873000,
"leafCount": 3,
"addedAt": 1668779618,
"updatedAt": 1668787730
}
] | \ No newline at end of file diff --git a/docs/models/operations/IncludeDetails.md b/docs/models/operations/IncludeDetails.md new file mode 100644 index 00000000..55129417 --- /dev/null +++ b/docs/models/operations/IncludeDetails.md @@ -0,0 +1,13 @@ +# IncludeDetails + +Whether or not to include details for a section (types, filters, and sorts). +Only exists for backwards compatibility, media providers other than the server libraries have it on always. + + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/Level.md b/docs/models/operations/Level.md new file mode 100644 index 00000000..6f8db56a --- /dev/null +++ b/docs/models/operations/Level.md @@ -0,0 +1,20 @@ +# Level + +An integer log level to write to the PMS log with. +0: Error +1: Warning +2: Info +3: Debug +4: Verbose + + + +## Values + +| Name | Value | +| ------- | ------- | +| `ZERO` | 0 | +| `ONE` | 1 | +| `TWO` | 2 | +| `THREE` | 3 | +| `FOUR` | 4 | \ No newline at end of file diff --git a/docs/models/operations/Location.md b/docs/models/operations/Location.md new file mode 100644 index 00000000..6b483955 --- /dev/null +++ b/docs/models/operations/Location.md @@ -0,0 +1,17 @@ +# Location + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | +| `code` | *String* | :heavy_minus_sign: | N/A | US | +| `europeanUnionMember` | *Boolean* | :heavy_minus_sign: | N/A | | +| `continentCode` | *String* | :heavy_minus_sign: | N/A | NA | +| `country` | *String* | :heavy_minus_sign: | N/A | United States | +| `city` | *String* | :heavy_minus_sign: | N/A | Austin | +| `timeZone` | *String* | :heavy_minus_sign: | N/A | America/Chicago | +| `postalCode` | *Double* | :heavy_minus_sign: | N/A | 78732 | +| `inPrivacyRestrictedCountry` | *Boolean* | :heavy_minus_sign: | N/A | | +| `subdivisions` | *String* | :heavy_minus_sign: | N/A | Texas | +| `coordinates` | *String* | :heavy_minus_sign: | N/A | 30.3768 -97.8935 | \ No newline at end of file diff --git a/docs/models/operations/LogLineErrors.md b/docs/models/operations/LogLineErrors.md new file mode 100644 index 00000000..d7963955 --- /dev/null +++ b/docs/models/operations/LogLineErrors.md @@ -0,0 +1,10 @@ +# LogLineErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/LogLineRequest.md b/docs/models/operations/LogLineRequest.md new file mode 100644 index 00000000..1e72ae16 --- /dev/null +++ b/docs/models/operations/LogLineRequest.md @@ -0,0 +1,10 @@ +# LogLineRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `level` | [lukehagar.plexapi.plexapi.models.operations.Level](../../models/operations/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.
0: Error
1: Warning
2: Info
3: Debug
4: Verbose
| | +| `message` | *String* | :heavy_check_mark: | The text of the message to write to the log. | Test log message | +| `source` | *String* | :heavy_check_mark: | a string indicating the source of the message. | Postman | \ No newline at end of file diff --git a/docs/models/operations/LogLineResponse.md b/docs/models/operations/LogLineResponse.md new file mode 100644 index 00000000..e14a56fa --- /dev/null +++ b/docs/models/operations/LogLineResponse.md @@ -0,0 +1,11 @@ +# LogLineResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.LogLineResponseBody](../../models/operations/LogLineResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/LogLineResponseBody.md b/docs/models/operations/LogLineResponseBody.md new file mode 100644 index 00000000..7ddb8781 --- /dev/null +++ b/docs/models/operations/LogLineResponseBody.md @@ -0,0 +1,10 @@ +# LogLineResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.LogLineErrors](../../models/operations/LogLineErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/LogMultiLineErrors.md b/docs/models/operations/LogMultiLineErrors.md new file mode 100644 index 00000000..18bcdfe2 --- /dev/null +++ b/docs/models/operations/LogMultiLineErrors.md @@ -0,0 +1,10 @@ +# LogMultiLineErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/LogMultiLineResponse.md b/docs/models/operations/LogMultiLineResponse.md new file mode 100644 index 00000000..c48c04d8 --- /dev/null +++ b/docs/models/operations/LogMultiLineResponse.md @@ -0,0 +1,11 @@ +# LogMultiLineResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.LogMultiLineResponseBody](../../models/operations/LogMultiLineResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/LogMultiLineResponseBody.md b/docs/models/operations/LogMultiLineResponseBody.md new file mode 100644 index 00000000..e7fac304 --- /dev/null +++ b/docs/models/operations/LogMultiLineResponseBody.md @@ -0,0 +1,10 @@ +# LogMultiLineResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.LogMultiLineErrors](../../models/operations/LogMultiLineErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/MarkPlayedErrors.md b/docs/models/operations/MarkPlayedErrors.md new file mode 100644 index 00000000..a5efd4f4 --- /dev/null +++ b/docs/models/operations/MarkPlayedErrors.md @@ -0,0 +1,10 @@ +# MarkPlayedErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/MarkPlayedRequest.md b/docs/models/operations/MarkPlayedRequest.md new file mode 100644 index 00000000..7a7e1e87 --- /dev/null +++ b/docs/models/operations/MarkPlayedRequest.md @@ -0,0 +1,8 @@ +# MarkPlayedRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `key` | *Double* | :heavy_check_mark: | The media key to mark as played | 59398 | \ No newline at end of file diff --git a/docs/models/operations/MarkPlayedResponse.md b/docs/models/operations/MarkPlayedResponse.md new file mode 100644 index 00000000..fa00db9c --- /dev/null +++ b/docs/models/operations/MarkPlayedResponse.md @@ -0,0 +1,11 @@ +# MarkPlayedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.MarkPlayedResponseBody](../../models/operations/MarkPlayedResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/MarkPlayedResponseBody.md b/docs/models/operations/MarkPlayedResponseBody.md new file mode 100644 index 00000000..6057f113 --- /dev/null +++ b/docs/models/operations/MarkPlayedResponseBody.md @@ -0,0 +1,10 @@ +# MarkPlayedResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.MarkPlayedErrors](../../models/operations/MarkPlayedErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/MarkUnplayedErrors.md b/docs/models/operations/MarkUnplayedErrors.md new file mode 100644 index 00000000..9d73acad --- /dev/null +++ b/docs/models/operations/MarkUnplayedErrors.md @@ -0,0 +1,10 @@ +# MarkUnplayedErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/MarkUnplayedRequest.md b/docs/models/operations/MarkUnplayedRequest.md new file mode 100644 index 00000000..aef06ee9 --- /dev/null +++ b/docs/models/operations/MarkUnplayedRequest.md @@ -0,0 +1,8 @@ +# MarkUnplayedRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `key` | *Double* | :heavy_check_mark: | The media key to mark as Unplayed | 59398 | \ No newline at end of file diff --git a/docs/models/operations/MarkUnplayedResponse.md b/docs/models/operations/MarkUnplayedResponse.md new file mode 100644 index 00000000..261b6314 --- /dev/null +++ b/docs/models/operations/MarkUnplayedResponse.md @@ -0,0 +1,11 @@ +# MarkUnplayedResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.MarkUnplayedResponseBody](../../models/operations/MarkUnplayedResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/MarkUnplayedResponseBody.md b/docs/models/operations/MarkUnplayedResponseBody.md new file mode 100644 index 00000000..7e4800b7 --- /dev/null +++ b/docs/models/operations/MarkUnplayedResponseBody.md @@ -0,0 +1,10 @@ +# MarkUnplayedResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.MarkUnplayedErrors](../../models/operations/MarkUnplayedErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Media.md b/docs/models/operations/Media.md new file mode 100644 index 00000000..67a152d7 --- /dev/null +++ b/docs/models/operations/Media.md @@ -0,0 +1,23 @@ +# Media + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `id` | *Double* | :heavy_minus_sign: | N/A | 120345 | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 7474422 | +| `bitrate` | *Double* | :heavy_minus_sign: | N/A | 3623 | +| `width` | *Double* | :heavy_minus_sign: | N/A | 1920 | +| `height` | *Double* | :heavy_minus_sign: | N/A | 804 | +| `aspectRatio` | *Double* | :heavy_minus_sign: | N/A | 2.35 | +| `audioChannels` | *Double* | :heavy_minus_sign: | N/A | 6 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | ac3 | +| `videoCodec` | *String* | :heavy_minus_sign: | N/A | h264 | +| `videoResolution` | *Double* | :heavy_minus_sign: | N/A | 1080 | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `videoFrameRate` | *String* | :heavy_minus_sign: | N/A | 24p | +| `optimizedForStreaming` | *Double* | :heavy_minus_sign: | N/A | 0 | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | +| `part` | List<[lukehagar.plexapi.plexapi.models.operations.Part](../../models/operations/Part.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/MediaContainer.md b/docs/models/operations/MediaContainer.md new file mode 100644 index 00000000..5acea438 --- /dev/null +++ b/docs/models/operations/MediaContainer.md @@ -0,0 +1,58 @@ +# MediaContainer + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| `size` | *Double* | :heavy_minus_sign: | N/A | +| `allowCameraUpload` | *Boolean* | :heavy_minus_sign: | N/A | +| `allowChannelAccess` | *Boolean* | :heavy_minus_sign: | N/A | +| `allowMediaDeletion` | *Boolean* | :heavy_minus_sign: | N/A | +| `allowSharing` | *Boolean* | :heavy_minus_sign: | N/A | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | +| `allowTuners` | *Boolean* | :heavy_minus_sign: | N/A | +| `backgroundProcessing` | *Boolean* | :heavy_minus_sign: | N/A | +| `certificate` | *Boolean* | :heavy_minus_sign: | N/A | +| `companionProxy` | *Boolean* | :heavy_minus_sign: | N/A | +| `countryCode` | *String* | :heavy_minus_sign: | N/A | +| `diagnostics` | *String* | :heavy_minus_sign: | N/A | +| `eventStream` | *Boolean* | :heavy_minus_sign: | N/A | +| `friendlyName` | *String* | :heavy_minus_sign: | N/A | +| `hubSearch` | *Boolean* | :heavy_minus_sign: | N/A | +| `itemClusters` | *Boolean* | :heavy_minus_sign: | N/A | +| `livetv` | *Double* | :heavy_minus_sign: | N/A | +| `machineIdentifier` | *String* | :heavy_minus_sign: | N/A | +| `mediaProviders` | *Boolean* | :heavy_minus_sign: | N/A | +| `multiuser` | *Boolean* | :heavy_minus_sign: | N/A | +| `musicAnalysis` | *Double* | :heavy_minus_sign: | N/A | +| `myPlex` | *Boolean* | :heavy_minus_sign: | N/A | +| `myPlexMappingState` | *String* | :heavy_minus_sign: | N/A | +| `myPlexSigninState` | *String* | :heavy_minus_sign: | N/A | +| `myPlexSubscription` | *Boolean* | :heavy_minus_sign: | N/A | +| `myPlexUsername` | *String* | :heavy_minus_sign: | N/A | +| `offlineTranscode` | *Double* | :heavy_minus_sign: | N/A | +| `ownerFeatures` | *String* | :heavy_minus_sign: | N/A | +| `photoAutoTag` | *Boolean* | :heavy_minus_sign: | N/A | +| `platform` | *String* | :heavy_minus_sign: | N/A | +| `platformVersion` | *String* | :heavy_minus_sign: | N/A | +| `pluginHost` | *Boolean* | :heavy_minus_sign: | N/A | +| `pushNotifications` | *Boolean* | :heavy_minus_sign: | N/A | +| `readOnlyLibraries` | *Boolean* | :heavy_minus_sign: | N/A | +| `streamingBrainABRVersion` | *Double* | :heavy_minus_sign: | N/A | +| `streamingBrainVersion` | *Double* | :heavy_minus_sign: | N/A | +| `sync` | *Boolean* | :heavy_minus_sign: | N/A | +| `transcoderActiveVideoSessions` | *Double* | :heavy_minus_sign: | N/A | +| `transcoderAudio` | *Boolean* | :heavy_minus_sign: | N/A | +| `transcoderLyrics` | *Boolean* | :heavy_minus_sign: | N/A | +| `transcoderPhoto` | *Boolean* | :heavy_minus_sign: | N/A | +| `transcoderSubtitles` | *Boolean* | :heavy_minus_sign: | N/A | +| `transcoderVideo` | *Boolean* | :heavy_minus_sign: | N/A | +| `transcoderVideoBitrates` | *String* | :heavy_minus_sign: | N/A | +| `transcoderVideoQualities` | *String* | :heavy_minus_sign: | N/A | +| `transcoderVideoResolutions` | *String* | :heavy_minus_sign: | N/A | +| `updatedAt` | *Double* | :heavy_minus_sign: | N/A | +| `updater` | *Boolean* | :heavy_minus_sign: | N/A | +| `version` | *String* | :heavy_minus_sign: | N/A | +| `voiceSearch` | *Boolean* | :heavy_minus_sign: | N/A | +| `directory` | List<[lukehagar.plexapi.plexapi.models.operations.Directory](../../models/operations/Directory.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Metadata.md b/docs/models/operations/Metadata.md new file mode 100644 index 00000000..ba4364b2 --- /dev/null +++ b/docs/models/operations/Metadata.md @@ -0,0 +1,39 @@ +# Metadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | | +| `librarySectionID` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *String* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionUUID` | *String* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | +| `ratingKey` | *Double* | :heavy_minus_sign: | N/A | 59398 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/59398 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://movie/5e161a83bea6ac004126e148 | +| `studio` | *String* | :heavy_minus_sign: | N/A | Marvel Studios | +| `type` | *String* | :heavy_minus_sign: | N/A | movie | +| `title` | *String* | :heavy_minus_sign: | N/A | Ant-Man and the Wasp: Quantumania | +| `contentRating` | *String* | :heavy_minus_sign: | N/A | PG-13 | +| `summary` | *String* | :heavy_minus_sign: | N/A | Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible. | +| `rating` | *Double* | :heavy_minus_sign: | N/A | 4.7 | +| `audienceRating` | *Double* | :heavy_minus_sign: | N/A | 8.3 | +| `year` | *Double* | :heavy_minus_sign: | N/A | 2023 | +| `tagline` | *String* | :heavy_minus_sign: | N/A | Witness the beginning of a new dynasty. | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/59398/thumb/1681888010 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/59398/art/1681888010 | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 7474422 | +| `originallyAvailableAt` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | 2023-02-15 00:00:00 +0000 UTC | +| `addedAt` | *Double* | :heavy_minus_sign: | N/A | 1681803215 | +| `updatedAt` | *Double* | :heavy_minus_sign: | N/A | 1681888010 | +| `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/59399 | +| `ratingImage` | *String* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.rotten | +| `media` | List<[lukehagar.plexapi.plexapi.models.operations.Media](../../models/operations/Media.md)> | :heavy_minus_sign: | N/A | | +| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.Genre](../../models/operations/Genre.md)> | :heavy_minus_sign: | N/A | | +| `director` | List<[lukehagar.plexapi.plexapi.models.operations.Director](../../models/operations/Director.md)> | :heavy_minus_sign: | N/A | | +| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.Writer](../../models/operations/Writer.md)> | :heavy_minus_sign: | N/A | | +| `country` | List<[lukehagar.plexapi.plexapi.models.operations.Country](../../models/operations/Country.md)> | :heavy_minus_sign: | N/A | | +| `role` | List<[lukehagar.plexapi.plexapi.models.operations.Role](../../models/operations/Role.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/MinSize.md b/docs/models/operations/MinSize.md new file mode 100644 index 00000000..815444ca --- /dev/null +++ b/docs/models/operations/MinSize.md @@ -0,0 +1,11 @@ +# MinSize + +images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against. + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/MyPlex.md b/docs/models/operations/MyPlex.md new file mode 100644 index 00000000..8614e8db --- /dev/null +++ b/docs/models/operations/MyPlex.md @@ -0,0 +1,19 @@ +# MyPlex + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `authToken` | *String* | :heavy_minus_sign: | N/A | Z5v-PrNASDFpsaCi3CPK7 | +| `username` | *String* | :heavy_minus_sign: | N/A | example.email@mail.com | +| `mappingState` | *String* | :heavy_minus_sign: | N/A | mapped | +| `mappingError` | *String* | :heavy_minus_sign: | N/A | | +| `signInState` | *String* | :heavy_minus_sign: | N/A | ok | +| `publicAddress` | *String* | :heavy_minus_sign: | N/A | 140.20.68.140 | +| `publicPort` | *Double* | :heavy_minus_sign: | N/A | 32400 | +| `privateAddress` | *String* | :heavy_minus_sign: | N/A | 10.10.10.47 | +| `privatePort` | *Double* | :heavy_minus_sign: | N/A | 32400 | +| `subscriptionFeatures` | *String* | :heavy_minus_sign: | N/A | federated-auth,hardware_transcoding,home,hwtranscode,item_clusters,kevin-bacon,livetv,loudness,lyrics,music-analysis,music_videos,pass,photo_autotags,photos-v5,photosV6-edit,photosV6-tv-albums,premium_music_metadata,radio,server-manager,session_bandwidth_restrictions,session_kick,shared-radio,sync,trailers,tuner-sharing,type-first,unsupportedtuners,webhooks | +| `subscriptionActive` | *Boolean* | :heavy_minus_sign: | N/A | | +| `subscriptionState` | *String* | :heavy_minus_sign: | N/A | Active | \ No newline at end of file diff --git a/docs/models/operations/OnlyTransient.md b/docs/models/operations/OnlyTransient.md new file mode 100644 index 00000000..c91d3d73 --- /dev/null +++ b/docs/models/operations/OnlyTransient.md @@ -0,0 +1,11 @@ +# OnlyTransient + +Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/Operator.md b/docs/models/operations/Operator.md new file mode 100644 index 00000000..4436a984 --- /dev/null +++ b/docs/models/operations/Operator.md @@ -0,0 +1,9 @@ +# Operator + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *String* | :heavy_minus_sign: | N/A | = | +| `title` | *String* | :heavy_minus_sign: | N/A | is | \ No newline at end of file diff --git a/docs/models/operations/Part.md b/docs/models/operations/Part.md new file mode 100644 index 00000000..e82788e5 --- /dev/null +++ b/docs/models/operations/Part.md @@ -0,0 +1,17 @@ +# Part + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `id` | *Double* | :heavy_minus_sign: | N/A | 120353 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/parts/120353/1681803203/file.mp4 | +| `duration` | *Double* | :heavy_minus_sign: | N/A | 7474422 | +| `file` | *String* | :heavy_minus_sign: | N/A | /movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4 | +| `size` | *Double* | :heavy_minus_sign: | N/A | 3395307162 | +| `container` | *String* | :heavy_minus_sign: | N/A | mp4 | +| `has64bitOffsets` | *Boolean* | :heavy_minus_sign: | N/A | | +| `hasThumbnail` | *Double* | :heavy_minus_sign: | N/A | 1 | +| `optimizedForStreaming` | *Boolean* | :heavy_minus_sign: | N/A | | +| `videoProfile` | *String* | :heavy_minus_sign: | N/A | high | \ No newline at end of file diff --git a/docs/models/operations/PathParamTaskName.md b/docs/models/operations/PathParamTaskName.md new file mode 100644 index 00000000..87cffd14 --- /dev/null +++ b/docs/models/operations/PathParamTaskName.md @@ -0,0 +1,23 @@ +# PathParamTaskName + +The name of the task to be started. + + +## Values + +| Name | Value | +| ----------------------------- | ----------------------------- | +| `BACKUP_DATABASE` | BackupDatabase | +| `BUILD_GRACENOTE_COLLECTIONS` | BuildGracenoteCollections | +| `CHECK_FOR_UPDATES` | CheckForUpdates | +| `CLEAN_OLD_BUNDLES` | CleanOldBundles | +| `CLEAN_OLD_CACHE_FILES` | CleanOldCacheFiles | +| `DEEP_MEDIA_ANALYSIS` | DeepMediaAnalysis | +| `GENERATE_AUTO_TAGS` | GenerateAutoTags | +| `GENERATE_CHAPTER_THUMBS` | GenerateChapterThumbs | +| `GENERATE_MEDIA_INDEX_FILES` | GenerateMediaIndexFiles | +| `OPTIMIZE_DATABASE` | OptimizeDatabase | +| `REFRESH_LIBRARIES` | RefreshLibraries | +| `REFRESH_LOCAL_MEDIA` | RefreshLocalMedia | +| `REFRESH_PERIODIC_METADATA` | RefreshPeriodicMetadata | +| `UPGRADE_MEDIA_ANALYSIS` | UpgradeMediaAnalysis | \ No newline at end of file diff --git a/docs/models/operations/PerformSearchErrors.md b/docs/models/operations/PerformSearchErrors.md new file mode 100644 index 00000000..848ae874 --- /dev/null +++ b/docs/models/operations/PerformSearchErrors.md @@ -0,0 +1,10 @@ +# PerformSearchErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/PerformSearchRequest.md b/docs/models/operations/PerformSearchRequest.md new file mode 100644 index 00000000..71a9ea41 --- /dev/null +++ b/docs/models/operations/PerformSearchRequest.md @@ -0,0 +1,10 @@ +# PerformSearchRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `query` | *String* | :heavy_check_mark: | The query term | arnold | +| `sectionId` | *Double* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | | +| `limit` | *Double* | :heavy_minus_sign: | The number of items to return per hub | 5 | \ No newline at end of file diff --git a/docs/models/operations/PerformSearchResponse.md b/docs/models/operations/PerformSearchResponse.md new file mode 100644 index 00000000..064a2b51 --- /dev/null +++ b/docs/models/operations/PerformSearchResponse.md @@ -0,0 +1,11 @@ +# PerformSearchResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.PerformSearchResponseBody](../../models/operations/PerformSearchResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/PerformSearchResponseBody.md b/docs/models/operations/PerformSearchResponseBody.md new file mode 100644 index 00000000..67bf4c74 --- /dev/null +++ b/docs/models/operations/PerformSearchResponseBody.md @@ -0,0 +1,10 @@ +# PerformSearchResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.PerformSearchErrors](../../models/operations/PerformSearchErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/PerformVoiceSearchErrors.md b/docs/models/operations/PerformVoiceSearchErrors.md new file mode 100644 index 00000000..9459cd08 --- /dev/null +++ b/docs/models/operations/PerformVoiceSearchErrors.md @@ -0,0 +1,10 @@ +# PerformVoiceSearchErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/PerformVoiceSearchRequest.md b/docs/models/operations/PerformVoiceSearchRequest.md new file mode 100644 index 00000000..f4cb2f7c --- /dev/null +++ b/docs/models/operations/PerformVoiceSearchRequest.md @@ -0,0 +1,10 @@ +# PerformVoiceSearchRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `query` | *String* | :heavy_check_mark: | The query term | dead+poop | +| `sectionId` | *Double* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | | +| `limit` | *Double* | :heavy_minus_sign: | The number of items to return per hub | 5 | \ No newline at end of file diff --git a/docs/models/operations/PerformVoiceSearchResponse.md b/docs/models/operations/PerformVoiceSearchResponse.md new file mode 100644 index 00000000..dfee78d4 --- /dev/null +++ b/docs/models/operations/PerformVoiceSearchResponse.md @@ -0,0 +1,11 @@ +# PerformVoiceSearchResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponseBody](../../models/operations/PerformVoiceSearchResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/PerformVoiceSearchResponseBody.md b/docs/models/operations/PerformVoiceSearchResponseBody.md new file mode 100644 index 00000000..b7079bfd --- /dev/null +++ b/docs/models/operations/PerformVoiceSearchResponseBody.md @@ -0,0 +1,10 @@ +# PerformVoiceSearchResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchErrors](../../models/operations/PerformVoiceSearchErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Player.md b/docs/models/operations/Player.md new file mode 100644 index 00000000..efb53379 --- /dev/null +++ b/docs/models/operations/Player.md @@ -0,0 +1,22 @@ +# Player + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `address` | *String* | :heavy_minus_sign: | N/A | 10.10.10.171 | +| `machineIdentifier` | *String* | :heavy_minus_sign: | N/A | 3tsdzir85m2onc3qyr255aq1 | +| `model` | *String* | :heavy_minus_sign: | N/A | standalone | +| `platform` | *String* | :heavy_minus_sign: | N/A | windows | +| `platformVersion` | *String* | :heavy_minus_sign: | N/A | 10.0.22621 | +| `product` | *String* | :heavy_minus_sign: | N/A | Plex for Windows | +| `profile` | *String* | :heavy_minus_sign: | N/A | Plex Desktop | +| `remotePublicAddress` | *String* | :heavy_minus_sign: | N/A | 68.248.140.20 | +| `state` | *String* | :heavy_minus_sign: | N/A | playing | +| `title` | *String* | :heavy_minus_sign: | N/A | DESKTOP-BL80MTD | +| `version` | *String* | :heavy_minus_sign: | N/A | 1.85.0.4071-21128b56 | +| `local` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `relayed` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `secure` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `userID` | *Integer* | :heavy_minus_sign: | N/A | 1 | \ No newline at end of file diff --git a/docs/models/operations/PlaylistType.md b/docs/models/operations/PlaylistType.md new file mode 100644 index 00000000..276ac5f7 --- /dev/null +++ b/docs/models/operations/PlaylistType.md @@ -0,0 +1,12 @@ +# PlaylistType + +limit to a type of playlist. + + +## Values + +| Name | Value | +| ------- | ------- | +| `AUDIO` | audio | +| `VIDEO` | video | +| `PHOTO` | photo | \ No newline at end of file diff --git a/docs/models/operations/Producer.md b/docs/models/operations/Producer.md new file mode 100644 index 00000000..134858e9 --- /dev/null +++ b/docs/models/operations/Producer.md @@ -0,0 +1,12 @@ +# Producer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 221 | +| `filter` | *String* | :heavy_minus_sign: | N/A | producer=221 | +| `tag` | *String* | :heavy_minus_sign: | N/A | Barry Mendel | +| `tagKey` | *String* | :heavy_minus_sign: | N/A | 5d776826961905001eb90e2b | +| `thumb` | *String* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/8/people/87877371326a964634d18556d94547e1.jpg | \ No newline at end of file diff --git a/docs/models/operations/Provider.md b/docs/models/operations/Provider.md new file mode 100644 index 00000000..4bec09d4 --- /dev/null +++ b/docs/models/operations/Provider.md @@ -0,0 +1,10 @@ +# Provider + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *String* | :heavy_minus_sign: | N/A | /system/search | +| `title` | *String* | :heavy_minus_sign: | N/A | Local Network | +| `type` | *String* | :heavy_minus_sign: | N/A | mixed | \ No newline at end of file diff --git a/docs/models/operations/QueryParamOnlyTransient.md b/docs/models/operations/QueryParamOnlyTransient.md new file mode 100644 index 00000000..6c2e1403 --- /dev/null +++ b/docs/models/operations/QueryParamOnlyTransient.md @@ -0,0 +1,11 @@ +# QueryParamOnlyTransient + +Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/QueryParamSmart.md b/docs/models/operations/QueryParamSmart.md new file mode 100644 index 00000000..bb53a11a --- /dev/null +++ b/docs/models/operations/QueryParamSmart.md @@ -0,0 +1,11 @@ +# QueryParamSmart + +type of playlists to return (default is all). + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/QueryParamType.md b/docs/models/operations/QueryParamType.md new file mode 100644 index 00000000..c72a4f72 --- /dev/null +++ b/docs/models/operations/QueryParamType.md @@ -0,0 +1,12 @@ +# QueryParamType + +type of playlist to create + + +## Values + +| Name | Value | +| ------- | ------- | +| `AUDIO` | audio | +| `VIDEO` | video | +| `PHOTO` | photo | \ No newline at end of file diff --git a/docs/models/operations/Ratings.md b/docs/models/operations/Ratings.md new file mode 100644 index 00000000..3c004374 --- /dev/null +++ b/docs/models/operations/Ratings.md @@ -0,0 +1,10 @@ +# Ratings + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `image` | *String* | :heavy_minus_sign: | N/A | themoviedb://image.rating | +| `value` | *Double* | :heavy_minus_sign: | N/A | 7.4 | +| `type` | *String* | :heavy_minus_sign: | N/A | audience | \ No newline at end of file diff --git a/docs/models/operations/RefreshLibraryErrors.md b/docs/models/operations/RefreshLibraryErrors.md new file mode 100644 index 00000000..edf62cb3 --- /dev/null +++ b/docs/models/operations/RefreshLibraryErrors.md @@ -0,0 +1,10 @@ +# RefreshLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/RefreshLibraryRequest.md b/docs/models/operations/RefreshLibraryRequest.md new file mode 100644 index 00000000..b62d56bb --- /dev/null +++ b/docs/models/operations/RefreshLibraryRequest.md @@ -0,0 +1,8 @@ +# RefreshLibraryRequest + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `sectionId` | *Double* | :heavy_check_mark: | the Id of the library to refresh | \ No newline at end of file diff --git a/docs/models/operations/RefreshLibraryResponse.md b/docs/models/operations/RefreshLibraryResponse.md new file mode 100644 index 00000000..cab2689f --- /dev/null +++ b/docs/models/operations/RefreshLibraryResponse.md @@ -0,0 +1,11 @@ +# RefreshLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.RefreshLibraryResponseBody](../../models/operations/RefreshLibraryResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/RefreshLibraryResponseBody.md b/docs/models/operations/RefreshLibraryResponseBody.md new file mode 100644 index 00000000..7a77b69c --- /dev/null +++ b/docs/models/operations/RefreshLibraryResponseBody.md @@ -0,0 +1,10 @@ +# RefreshLibraryResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.RefreshLibraryErrors](../../models/operations/RefreshLibraryErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Release.md b/docs/models/operations/Release.md new file mode 100644 index 00000000..d596e2ea --- /dev/null +++ b/docs/models/operations/Release.md @@ -0,0 +1,13 @@ +# Release + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key` | *String* | :heavy_minus_sign: | N/A | https://plex.tv/updater/releases/5136 | +| `version` | *String* | :heavy_minus_sign: | N/A | 1.40.0.7775-456fbaf97 | +| `added` | *String* | :heavy_minus_sign: | N/A | (PLEASE NOTE) This version makes changes to the database which will make it compatible only with server versions 1.31.2 or higher (released March 14). You will not be able to use your database on Plex Media Server versions lower than this after this update. Please also be patient when updating to this version if you have a very large database and allow the upgrade process to finish.
(Collections) Items added to a collection from the item context menu will now lock the collection field on the items (#12793)
(Music) Store track genres and add filtering options (#14653)
(Music) Support ID3v2.4 null-separated tags for genres and release type (#14653)
(View History) No longer create a view history entry for items marked as played (#10888)
(Web) Updated to 4.118.0 | +| `fixed` | *String* | :heavy_minus_sign: | N/A | (Agents) Changing a 'Other Videos' type library to the modern movie agent would fail (#14483)
(Agents) It is possible that agents are not initialised during startup on rare occasions (#14654)
(Agents) Remove the legacy OpenSubtitles agent which is no longer supported upstream (#14667)
(Collection) Server could become unresponsive when collection membership changes (#14612)
(DVR) Previously watched recordings could be deleted without being watched again (#13779)
(Libraries) When performing fix match on items from certain music libraries the language would default to Arabic (#14501)
(Library) The Content Rating not equal to None filter does not work (#14620)
(Search) Album search results could contain all the album's tracks too (#14486)
(Subtitles) In some circumstances, sidecar subtitles can show up for media when they're no longer available (#14674)
(Transcoder) HW encoding would fail on devices with no rate control (#14222)
(Transcoder) Software transcoding on Ubuntu could cause unexpected behavior (#14605) | +| `downloadURL` | *String* | :heavy_minus_sign: | N/A | https://plex.tv/downloads/latest/5?channel=8&build=linux-x86_64&distro=redhat&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx | +| `state` | *String* | :heavy_minus_sign: | N/A | notify | \ No newline at end of file diff --git a/docs/models/operations/Role.md b/docs/models/operations/Role.md new file mode 100644 index 00000000..860e2212 --- /dev/null +++ b/docs/models/operations/Role.md @@ -0,0 +1,8 @@ +# Role + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Paul Rudd | \ No newline at end of file diff --git a/docs/models/operations/Scope.md b/docs/models/operations/Scope.md new file mode 100644 index 00000000..dfa16809 --- /dev/null +++ b/docs/models/operations/Scope.md @@ -0,0 +1,10 @@ +# Scope + +`all` - This is the only supported `scope` parameter. + + +## Values + +| Name | Value | +| ----- | ----- | +| `ALL` | all | \ No newline at end of file diff --git a/docs/models/operations/SearchLibraryMediaContainer.md b/docs/models/operations/SearchLibraryMediaContainer.md new file mode 100644 index 00000000..ed89741d --- /dev/null +++ b/docs/models/operations/SearchLibraryMediaContainer.md @@ -0,0 +1,20 @@ +# SearchLibraryMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `size` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `allowSync` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `art` | *String* | :heavy_minus_sign: | N/A | /:/resources/show-fanart.jpg | +| `identifier` | *String* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `mediaTagPrefix` | *String* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *Integer* | :heavy_minus_sign: | N/A | 1698860922 | +| `nocache` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /:/resources/show.png | +| `title1` | *String* | :heavy_minus_sign: | N/A | TV Shows | +| `title2` | *String* | :heavy_minus_sign: | N/A | Search for '' | +| `viewGroup` | *String* | :heavy_minus_sign: | N/A | season | +| `viewMode` | *Integer* | :heavy_minus_sign: | N/A | 65593 | +| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.SearchLibraryMetadata](../../models/operations/SearchLibraryMetadata.md)> | :heavy_minus_sign: | N/A | [
{
"ratingKey": "2",
"key": "/library/metadata/2/children",
"parentRatingKey": "1",
"guid": "plex://season/602e67e766dfdb002c0a1b5b",
"parentGuid": "plex://show/5d9c086c7d06d9001ffd27aa",
"parentStudio": "Mutant Enemy Productions",
"type": "season",
"title": "Season 1",
"parentKey": "/library/metadata/1",
"parentTitle": "Firefly",
"summary": "Captain Malcolm 'Mal' Reynolds is a former galactic war veteran who is the captain of the transport ship \"Serenity\". Mal and his crew, ensign Zoe Alleyne Washburne; Zoe's husband, pilot Hoban 'Wash' Washburne; muscular mercenary Jayne Cobb; young mechanic Kaylee Frye; former Alliance medical officer Simon Tam; his disturbed teenage sister River (both on the run from the interplanetary government \"The Alliance\"); the beautiful courtesan Inara Serra; and preacher Shepherd Book do any jobs, legal or illegal, they can find as the Serenity crew travels across the outskirts of outer space.",
"index": 1,
"parentIndex": 1,
"parentYear": 2002,
"thumb": "/library/metadata/2/thumb/1705636920",
"art": "/library/metadata/1/art/1705636920",
"parentThumb": "/library/metadata/1/thumb/1705636920",
"parentTheme": "/library/metadata/1/theme/1705636920",
"addedAt": 1705636916,
"updatedAt": 1705636920
}
] | \ No newline at end of file diff --git a/docs/models/operations/SearchLibraryMetadata.md b/docs/models/operations/SearchLibraryMetadata.md new file mode 100644 index 00000000..a55f9458 --- /dev/null +++ b/docs/models/operations/SearchLibraryMetadata.md @@ -0,0 +1,27 @@ +# SearchLibraryMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_minus_sign: | N/A | 2 | +| `key` | *String* | :heavy_minus_sign: | N/A | /library/metadata/2/children | +| `parentRatingKey` | *String* | :heavy_minus_sign: | N/A | 1 | +| `guid` | *String* | :heavy_minus_sign: | N/A | plex://season/602e67e766dfdb002c0a1b5b | +| `parentGuid` | *String* | :heavy_minus_sign: | N/A | plex://show/5d9c086c7d06d9001ffd27aa | +| `parentStudio` | *String* | :heavy_minus_sign: | N/A | Mutant Enemy Productions | +| `type` | *String* | :heavy_minus_sign: | N/A | season | +| `title` | *String* | :heavy_minus_sign: | N/A | Season 1 | +| `parentKey` | *String* | :heavy_minus_sign: | N/A | /library/metadata/1 | +| `parentTitle` | *String* | :heavy_minus_sign: | N/A | Firefly | +| `summary` | *String* | :heavy_minus_sign: | N/A | Captain Malcolm 'Mal' Reynolds is a former galactic war veteran who is the captain of the transport ship "Serenity". Mal and his crew, ensign Zoe Alleyne Washburne; Zoe's husband, pilot Hoban 'Wash' Washburne; muscular mercenary Jayne Cobb; young mechanic Kaylee Frye; former Alliance medical officer Simon Tam; his disturbed teenage sister River (both on the run from the interplanetary government "The Alliance"); the beautiful courtesan Inara Serra; and preacher Shepherd Book do any jobs, legal or illegal, they can find as the Serenity crew travels across the outskirts of outer space. | +| `index` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `parentIndex` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `parentYear` | *Integer* | :heavy_minus_sign: | N/A | 2002 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/2/thumb/1705636920 | +| `art` | *String* | :heavy_minus_sign: | N/A | /library/metadata/1/art/1705636920 | +| `parentThumb` | *String* | :heavy_minus_sign: | N/A | /library/metadata/1/thumb/1705636920 | +| `parentTheme` | *String* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 | +| `addedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705636916 | +| `updatedAt` | *Integer* | :heavy_minus_sign: | N/A | 1705636920 | \ No newline at end of file diff --git a/docs/models/operations/SearchLibraryRequest.md b/docs/models/operations/SearchLibraryRequest.md new file mode 100644 index 00000000..f2da008a --- /dev/null +++ b/docs/models/operations/SearchLibraryRequest.md @@ -0,0 +1,9 @@ +# SearchLibraryRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `sectionId` | *Long* | :heavy_check_mark: | the Id of the library to query | +| `type` | [lukehagar.plexapi.plexapi.models.operations.Type](../../models/operations/Type.md) | :heavy_check_mark: | Plex content type to search for | \ No newline at end of file diff --git a/docs/models/operations/SearchLibraryResponse.md b/docs/models/operations/SearchLibraryResponse.md new file mode 100644 index 00000000..4d61f374 --- /dev/null +++ b/docs/models/operations/SearchLibraryResponse.md @@ -0,0 +1,11 @@ +# SearchLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.SearchLibraryResponseBody](../../models/operations/SearchLibraryResponseBody.md) | :heavy_minus_sign: | The contents of the library by section and type | \ No newline at end of file diff --git a/docs/models/operations/SearchLibraryResponseBody.md b/docs/models/operations/SearchLibraryResponseBody.md new file mode 100644 index 00000000..0c402b6c --- /dev/null +++ b/docs/models/operations/SearchLibraryResponseBody.md @@ -0,0 +1,10 @@ +# SearchLibraryResponseBody + +The contents of the library by section and type + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [lukehagar.plexapi.plexapi.models.operations.SearchLibraryMediaContainer](../../models/operations/SearchLibraryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Server.md b/docs/models/operations/Server.md new file mode 100644 index 00000000..8bab4fb1 --- /dev/null +++ b/docs/models/operations/Server.md @@ -0,0 +1,18 @@ +# Server + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | +| `name` | *String* | :heavy_minus_sign: | N/A | iPad | +| `host` | *String* | :heavy_minus_sign: | N/A | 10.10.10.102 | +| `address` | *String* | :heavy_minus_sign: | N/A | 10.10.10.102 | +| `port` | *Double* | :heavy_minus_sign: | N/A | 32500 | +| `machineIdentifier` | *String* | :heavy_minus_sign: | N/A | A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05 | +| `version` | *String* | :heavy_minus_sign: | N/A | 8.17 | +| `protocol` | *String* | :heavy_minus_sign: | N/A | plex | +| `product` | *String* | :heavy_minus_sign: | N/A | Plex for iOS | +| `deviceClass` | *String* | :heavy_minus_sign: | N/A | tablet | +| `protocolVersion` | *Double* | :heavy_minus_sign: | N/A | 2 | +| `protocolCapabilities` | *String* | :heavy_minus_sign: | N/A | playback,playqueues,timeline,provider-playback | \ No newline at end of file diff --git a/docs/models/operations/Session.md b/docs/models/operations/Session.md new file mode 100644 index 00000000..4fc69e94 --- /dev/null +++ b/docs/models/operations/Session.md @@ -0,0 +1,10 @@ +# Session + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `id` | *String* | :heavy_minus_sign: | N/A | 93h7e00ncblxncqw9lkfaoxi | +| `bandwidth` | *Integer* | :heavy_minus_sign: | N/A | 1050 | +| `location` | *String* | :heavy_minus_sign: | N/A | lan | \ No newline at end of file diff --git a/docs/models/operations/Setting.md b/docs/models/operations/Setting.md new file mode 100644 index 00000000..fd8fc2d2 --- /dev/null +++ b/docs/models/operations/Setting.md @@ -0,0 +1,17 @@ +# Setting + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `id` | *String* | :heavy_minus_sign: | N/A | EnableDatabaseTrace | +| `label` | *String* | :heavy_minus_sign: | N/A | | +| `summary` | *String* | :heavy_minus_sign: | N/A | | +| `type` | *String* | :heavy_minus_sign: | N/A | bool | +| `default_` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `value` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `hidden` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `advanced` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `group` | *String* | :heavy_minus_sign: | N/A | | +| `enumValues` | *String* | :heavy_minus_sign: | N/A | 1:admin only\|2:everyone | \ No newline at end of file diff --git a/docs/models/operations/Skip.md b/docs/models/operations/Skip.md new file mode 100644 index 00000000..5e71f0e6 --- /dev/null +++ b/docs/models/operations/Skip.md @@ -0,0 +1,11 @@ +# Skip + +Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`. + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/Smart.md b/docs/models/operations/Smart.md new file mode 100644 index 00000000..a4d5e784 --- /dev/null +++ b/docs/models/operations/Smart.md @@ -0,0 +1,11 @@ +# Smart + +whether the playlist is smart or not + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/Sort.md b/docs/models/operations/Sort.md new file mode 100644 index 00000000..311600b7 --- /dev/null +++ b/docs/models/operations/Sort.md @@ -0,0 +1,13 @@ +# Sort + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `default_` | *String* | :heavy_minus_sign: | N/A | asc | +| `defaultDirection` | *String* | :heavy_minus_sign: | N/A | desc | +| `descKey` | *String* | :heavy_minus_sign: | N/A | random:desc | +| `firstCharacterKey` | *String* | :heavy_minus_sign: | N/A | /library/sections/1/firstCharacter | +| `key` | *String* | :heavy_minus_sign: | N/A | random | +| `title` | *String* | :heavy_minus_sign: | N/A | Randomly | \ No newline at end of file diff --git a/docs/models/operations/StartAllTasksErrors.md b/docs/models/operations/StartAllTasksErrors.md new file mode 100644 index 00000000..aa6558c5 --- /dev/null +++ b/docs/models/operations/StartAllTasksErrors.md @@ -0,0 +1,10 @@ +# StartAllTasksErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/StartAllTasksResponse.md b/docs/models/operations/StartAllTasksResponse.md new file mode 100644 index 00000000..081b8200 --- /dev/null +++ b/docs/models/operations/StartAllTasksResponse.md @@ -0,0 +1,11 @@ +# StartAllTasksResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.StartAllTasksResponseBody](../../models/operations/StartAllTasksResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/StartAllTasksResponseBody.md b/docs/models/operations/StartAllTasksResponseBody.md new file mode 100644 index 00000000..07022af3 --- /dev/null +++ b/docs/models/operations/StartAllTasksResponseBody.md @@ -0,0 +1,10 @@ +# StartAllTasksResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.StartAllTasksErrors](../../models/operations/StartAllTasksErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/StartTaskErrors.md b/docs/models/operations/StartTaskErrors.md new file mode 100644 index 00000000..2e395eb5 --- /dev/null +++ b/docs/models/operations/StartTaskErrors.md @@ -0,0 +1,10 @@ +# StartTaskErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/StartTaskRequest.md b/docs/models/operations/StartTaskRequest.md new file mode 100644 index 00000000..aeabe2ba --- /dev/null +++ b/docs/models/operations/StartTaskRequest.md @@ -0,0 +1,8 @@ +# StartTaskRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `taskName` | [lukehagar.plexapi.plexapi.models.operations.TaskName](../../models/operations/TaskName.md) | :heavy_check_mark: | the name of the task to be started. | \ No newline at end of file diff --git a/docs/models/operations/StartTaskResponse.md b/docs/models/operations/StartTaskResponse.md new file mode 100644 index 00000000..47c2ad00 --- /dev/null +++ b/docs/models/operations/StartTaskResponse.md @@ -0,0 +1,11 @@ +# StartTaskResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.StartTaskResponseBody](../../models/operations/StartTaskResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/StartTaskResponseBody.md b/docs/models/operations/StartTaskResponseBody.md new file mode 100644 index 00000000..32d42daa --- /dev/null +++ b/docs/models/operations/StartTaskResponseBody.md @@ -0,0 +1,10 @@ +# StartTaskResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.StartTaskErrors](../../models/operations/StartTaskErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/StartUniversalTranscodeErrors.md b/docs/models/operations/StartUniversalTranscodeErrors.md new file mode 100644 index 00000000..91f184a4 --- /dev/null +++ b/docs/models/operations/StartUniversalTranscodeErrors.md @@ -0,0 +1,10 @@ +# StartUniversalTranscodeErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/StartUniversalTranscodeRequest.md b/docs/models/operations/StartUniversalTranscodeRequest.md new file mode 100644 index 00000000..8003958a --- /dev/null +++ b/docs/models/operations/StartUniversalTranscodeRequest.md @@ -0,0 +1,23 @@ +# StartUniversalTranscodeRequest + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | +| `hasMDE` | *Double* | :heavy_check_mark: | Whether the media item has MDE | +| `path` | *String* | :heavy_check_mark: | The path to the media item to transcode | +| `mediaIndex` | *Double* | :heavy_check_mark: | The index of the media item to transcode | +| `partIndex` | *Double* | :heavy_check_mark: | The index of the part to transcode | +| `protocol` | *String* | :heavy_check_mark: | The protocol to use for the transcode session | +| `fastSeek` | *Double* | :heavy_minus_sign: | Whether to use fast seek or not | +| `directPlay` | *Double* | :heavy_minus_sign: | Whether to use direct play or not | +| `directStream` | *Double* | :heavy_minus_sign: | Whether to use direct stream or not | +| `subtitleSize` | *Double* | :heavy_minus_sign: | The size of the subtitles | +| `subtites` | *String* | :heavy_minus_sign: | The subtitles | +| `audioBoost` | *Double* | :heavy_minus_sign: | The audio boost | +| `location` | *String* | :heavy_minus_sign: | The location of the transcode session | +| `mediaBufferSize` | *Double* | :heavy_minus_sign: | The size of the media buffer | +| `session` | *String* | :heavy_minus_sign: | The session ID | +| `addDebugOverlay` | *Double* | :heavy_minus_sign: | Whether to add a debug overlay or not | +| `autoAdjustQuality` | *Double* | :heavy_minus_sign: | Whether to auto adjust quality or not | \ No newline at end of file diff --git a/docs/models/operations/StartUniversalTranscodeResponse.md b/docs/models/operations/StartUniversalTranscodeResponse.md new file mode 100644 index 00000000..bb1e4f11 --- /dev/null +++ b/docs/models/operations/StartUniversalTranscodeResponse.md @@ -0,0 +1,11 @@ +# StartUniversalTranscodeResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeResponseBody](../../models/operations/StartUniversalTranscodeResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/StartUniversalTranscodeResponseBody.md b/docs/models/operations/StartUniversalTranscodeResponseBody.md new file mode 100644 index 00000000..cd9790ea --- /dev/null +++ b/docs/models/operations/StartUniversalTranscodeResponseBody.md @@ -0,0 +1,10 @@ +# StartUniversalTranscodeResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeErrors](../../models/operations/StartUniversalTranscodeErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/State.md b/docs/models/operations/State.md new file mode 100644 index 00000000..f4f712a5 --- /dev/null +++ b/docs/models/operations/State.md @@ -0,0 +1,12 @@ +# State + +The state of the media item + + +## Values + +| Name | Value | +| --------- | --------- | +| `PLAYING` | playing | +| `PAUSED` | paused | +| `STOPPED` | stopped | \ No newline at end of file diff --git a/docs/models/operations/StatisticsMedia.md b/docs/models/operations/StatisticsMedia.md new file mode 100644 index 00000000..1e3ebb73 --- /dev/null +++ b/docs/models/operations/StatisticsMedia.md @@ -0,0 +1,14 @@ +# StatisticsMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `accountID` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `deviceID` | *Integer* | :heavy_minus_sign: | N/A | 13 | +| `timespan` | *Integer* | :heavy_minus_sign: | N/A | 4 | +| `at` | *Integer* | :heavy_minus_sign: | N/A | 1707141600 | +| `metadataType` | *Integer* | :heavy_minus_sign: | N/A | 4 | +| `count` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 1555 | \ No newline at end of file diff --git a/docs/models/operations/StopAllTasksErrors.md b/docs/models/operations/StopAllTasksErrors.md new file mode 100644 index 00000000..fe9fdc5b --- /dev/null +++ b/docs/models/operations/StopAllTasksErrors.md @@ -0,0 +1,10 @@ +# StopAllTasksErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/StopAllTasksResponse.md b/docs/models/operations/StopAllTasksResponse.md new file mode 100644 index 00000000..e4128f48 --- /dev/null +++ b/docs/models/operations/StopAllTasksResponse.md @@ -0,0 +1,11 @@ +# StopAllTasksResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.StopAllTasksResponseBody](../../models/operations/StopAllTasksResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/StopAllTasksResponseBody.md b/docs/models/operations/StopAllTasksResponseBody.md new file mode 100644 index 00000000..2f2b1007 --- /dev/null +++ b/docs/models/operations/StopAllTasksResponseBody.md @@ -0,0 +1,10 @@ +# StopAllTasksResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.StopAllTasksErrors](../../models/operations/StopAllTasksErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/StopTaskErrors.md b/docs/models/operations/StopTaskErrors.md new file mode 100644 index 00000000..9e7f439e --- /dev/null +++ b/docs/models/operations/StopTaskErrors.md @@ -0,0 +1,10 @@ +# StopTaskErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/StopTaskRequest.md b/docs/models/operations/StopTaskRequest.md new file mode 100644 index 00000000..7e84af8f --- /dev/null +++ b/docs/models/operations/StopTaskRequest.md @@ -0,0 +1,8 @@ +# StopTaskRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `taskName` | [lukehagar.plexapi.plexapi.models.operations.PathParamTaskName](../../models/operations/PathParamTaskName.md) | :heavy_check_mark: | The name of the task to be started. | \ No newline at end of file diff --git a/docs/models/operations/StopTaskResponse.md b/docs/models/operations/StopTaskResponse.md new file mode 100644 index 00000000..0c481c84 --- /dev/null +++ b/docs/models/operations/StopTaskResponse.md @@ -0,0 +1,11 @@ +# StopTaskResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.StopTaskResponseBody](../../models/operations/StopTaskResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/StopTaskResponseBody.md b/docs/models/operations/StopTaskResponseBody.md new file mode 100644 index 00000000..6f36f78e --- /dev/null +++ b/docs/models/operations/StopTaskResponseBody.md @@ -0,0 +1,10 @@ +# StopTaskResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.StopTaskErrors](../../models/operations/StopTaskErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/StopTranscodeSessionErrors.md b/docs/models/operations/StopTranscodeSessionErrors.md new file mode 100644 index 00000000..c551631e --- /dev/null +++ b/docs/models/operations/StopTranscodeSessionErrors.md @@ -0,0 +1,10 @@ +# StopTranscodeSessionErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/StopTranscodeSessionRequest.md b/docs/models/operations/StopTranscodeSessionRequest.md new file mode 100644 index 00000000..863a31c0 --- /dev/null +++ b/docs/models/operations/StopTranscodeSessionRequest.md @@ -0,0 +1,8 @@ +# StopTranscodeSessionRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `sessionKey` | *String* | :heavy_check_mark: | the Key of the transcode session to stop | zz7llzqlx8w9vnrsbnwhbmep | \ No newline at end of file diff --git a/docs/models/operations/StopTranscodeSessionResponse.md b/docs/models/operations/StopTranscodeSessionResponse.md new file mode 100644 index 00000000..6fe94987 --- /dev/null +++ b/docs/models/operations/StopTranscodeSessionResponse.md @@ -0,0 +1,11 @@ +# StopTranscodeSessionResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionResponseBody](../../models/operations/StopTranscodeSessionResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/StopTranscodeSessionResponseBody.md b/docs/models/operations/StopTranscodeSessionResponseBody.md new file mode 100644 index 00000000..596baa18 --- /dev/null +++ b/docs/models/operations/StopTranscodeSessionResponseBody.md @@ -0,0 +1,10 @@ +# StopTranscodeSessionResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionErrors](../../models/operations/StopTranscodeSessionErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Stream.md b/docs/models/operations/Stream.md new file mode 100644 index 00000000..3b89f34e --- /dev/null +++ b/docs/models/operations/Stream.md @@ -0,0 +1,39 @@ +# Stream + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `id` | *Integer* | :heavy_minus_sign: | N/A | 29 | +| `streamType` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `default_` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `codec` | *String* | :heavy_minus_sign: | N/A | aac | +| `index` | *Integer* | :heavy_minus_sign: | N/A | 0 | +| `bitrate` | *Integer* | :heavy_minus_sign: | N/A | 128 | +| `bitDepth` | *Integer* | :heavy_minus_sign: | N/A | 8 | +| `chromaLocation` | *String* | :heavy_minus_sign: | N/A | left | +| `chromaSubsampling` | *String* | :heavy_minus_sign: | N/A | 14520 | +| `codedHeight` | *Integer* | :heavy_minus_sign: | N/A | 816 | +| `codedWidth` | *Integer* | :heavy_minus_sign: | N/A | 1920 | +| `colorPrimaries` | *String* | :heavy_minus_sign: | N/A | bt709 | +| `colorRange` | *String* | :heavy_minus_sign: | N/A | tv | +| `colorSpace` | *String* | :heavy_minus_sign: | N/A | bt709 | +| `colorTrc` | *String* | :heavy_minus_sign: | N/A | bt709 | +| `frameRate` | *Integer* | :heavy_minus_sign: | N/A | 24 | +| `hasScalingMatrix` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `height` | *Integer* | :heavy_minus_sign: | N/A | 814 | +| `level` | *Integer* | :heavy_minus_sign: | N/A | 40 | +| `profile` | *String* | :heavy_minus_sign: | N/A | lc | +| `refFrames` | *Integer* | :heavy_minus_sign: | N/A | 4 | +| `scanType` | *String* | :heavy_minus_sign: | N/A | progressive | +| `streamIdentifier` | *String* | :heavy_minus_sign: | N/A | 1 | +| `width` | *Integer* | :heavy_minus_sign: | N/A | 1920 | +| `displayTitle` | *String* | :heavy_minus_sign: | N/A | English (AAC Stereo) | +| `extendedDisplayTitle` | *String* | :heavy_minus_sign: | N/A | English (AAC Stereo) | +| `selected` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `channels` | *Integer* | :heavy_minus_sign: | N/A | 2 | +| `language` | *String* | :heavy_minus_sign: | N/A | English | +| `languageTag` | *String* | :heavy_minus_sign: | N/A | en | +| `languageCode` | *String* | :heavy_minus_sign: | N/A | eng | +| `samplingRate` | *Integer* | :heavy_minus_sign: | N/A | 44100 | \ No newline at end of file diff --git a/docs/models/operations/Tag.md b/docs/models/operations/Tag.md new file mode 100644 index 00000000..19a3a0df --- /dev/null +++ b/docs/models/operations/Tag.md @@ -0,0 +1,28 @@ +# Tag + +A key representing a specific tag within the section. + + +## Values + +| Name | Value | +| ----------------- | ----------------- | +| `ALL` | all | +| `UNWATCHED` | unwatched | +| `NEWEST` | newest | +| `RECENTLY_ADDED` | recentlyAdded | +| `RECENTLY_VIEWED` | recentlyViewed | +| `ON_DECK` | onDeck | +| `COLLECTION` | collection | +| `EDITION` | edition | +| `GENRE` | genre | +| `YEAR` | year | +| `DECADE` | decade | +| `DIRECTOR` | director | +| `ACTOR` | actor | +| `COUNTRY` | country | +| `CONTENT_RATING` | contentRating | +| `RATING` | rating | +| `RESOLUTION` | resolution | +| `FIRST_CHARACTER` | firstCharacter | +| `FOLDER` | folder | \ No newline at end of file diff --git a/docs/models/operations/TaskName.md b/docs/models/operations/TaskName.md new file mode 100644 index 00000000..44383b38 --- /dev/null +++ b/docs/models/operations/TaskName.md @@ -0,0 +1,23 @@ +# TaskName + +the name of the task to be started. + + +## Values + +| Name | Value | +| ----------------------------- | ----------------------------- | +| `BACKUP_DATABASE` | BackupDatabase | +| `BUILD_GRACENOTE_COLLECTIONS` | BuildGracenoteCollections | +| `CHECK_FOR_UPDATES` | CheckForUpdates | +| `CLEAN_OLD_BUNDLES` | CleanOldBundles | +| `CLEAN_OLD_CACHE_FILES` | CleanOldCacheFiles | +| `DEEP_MEDIA_ANALYSIS` | DeepMediaAnalysis | +| `GENERATE_AUTO_TAGS` | GenerateAutoTags | +| `GENERATE_CHAPTER_THUMBS` | GenerateChapterThumbs | +| `GENERATE_MEDIA_INDEX_FILES` | GenerateMediaIndexFiles | +| `OPTIMIZE_DATABASE` | OptimizeDatabase | +| `REFRESH_LIBRARIES` | RefreshLibraries | +| `REFRESH_LOCAL_MEDIA` | RefreshLocalMedia | +| `REFRESH_PERIODIC_METADATA` | RefreshPeriodicMetadata | +| `UPGRADE_MEDIA_ANALYSIS` | UpgradeMediaAnalysis | \ No newline at end of file diff --git a/docs/models/operations/Tonight.md b/docs/models/operations/Tonight.md new file mode 100644 index 00000000..7bf98ba0 --- /dev/null +++ b/docs/models/operations/Tonight.md @@ -0,0 +1,11 @@ +# Tonight + +Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/TranscodeSession.md b/docs/models/operations/TranscodeSession.md new file mode 100644 index 00000000..80ca01a1 --- /dev/null +++ b/docs/models/operations/TranscodeSession.md @@ -0,0 +1,31 @@ +# TranscodeSession + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `key` | *String* | :heavy_minus_sign: | N/A | vv3i2q2lax92qlzul1hbd4bx | +| `throttled` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `complete` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `progress` | *Double* | :heavy_minus_sign: | N/A | 1.7999999523162842 | +| `size` | *Integer* | :heavy_minus_sign: | N/A | -22 | +| `speed` | *Double* | :heavy_minus_sign: | N/A | 25.100000381469727 | +| `error` | *Boolean* | :heavy_minus_sign: | N/A | false | +| `duration` | *Integer* | :heavy_minus_sign: | N/A | 1445695 | +| `remaining` | *Integer* | :heavy_minus_sign: | N/A | 53 | +| `context` | *String* | :heavy_minus_sign: | N/A | streaming | +| `sourceVideoCodec` | *String* | :heavy_minus_sign: | N/A | h264 | +| `sourceAudioCodec` | *String* | :heavy_minus_sign: | N/A | aac | +| `videoDecision` | *String* | :heavy_minus_sign: | N/A | transcode | +| `audioDecision` | *String* | :heavy_minus_sign: | N/A | transcode | +| `subtitleDecision` | *String* | :heavy_minus_sign: | N/A | burn | +| `protocol` | *String* | :heavy_minus_sign: | N/A | http | +| `container` | *String* | :heavy_minus_sign: | N/A | mkv | +| `videoCodec` | *String* | :heavy_minus_sign: | N/A | h264 | +| `audioCodec` | *String* | :heavy_minus_sign: | N/A | opus | +| `audioChannels` | *Integer* | :heavy_minus_sign: | N/A | 1 | +| `transcodeHwRequested` | *Boolean* | :heavy_minus_sign: | N/A | true | +| `timeStamp` | *Double* | :heavy_minus_sign: | N/A | 1.7058958054919229e+09 | +| `maxOffsetAvailable` | *Double* | :heavy_minus_sign: | N/A | 29.53 | +| `minOffsetAvailable` | *Double* | :heavy_minus_sign: | N/A | 3.003000020980835 | \ No newline at end of file diff --git a/docs/models/operations/Type.md b/docs/models/operations/Type.md new file mode 100644 index 00000000..8cfa2e45 --- /dev/null +++ b/docs/models/operations/Type.md @@ -0,0 +1,13 @@ +# Type + +Plex content type to search for + + +## Values + +| Name | Value | +| ------- | ------- | +| `ONE` | 1 | +| `TWO` | 2 | +| `THREE` | 3 | +| `FOUR` | 4 | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlayProgressErrors.md b/docs/models/operations/UpdatePlayProgressErrors.md new file mode 100644 index 00000000..99b07420 --- /dev/null +++ b/docs/models/operations/UpdatePlayProgressErrors.md @@ -0,0 +1,10 @@ +# UpdatePlayProgressErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlayProgressRequest.md b/docs/models/operations/UpdatePlayProgressRequest.md new file mode 100644 index 00000000..69b2d5ae --- /dev/null +++ b/docs/models/operations/UpdatePlayProgressRequest.md @@ -0,0 +1,10 @@ +# UpdatePlayProgressRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `key` | *String* | :heavy_check_mark: | the media key | +| `time` | *Double* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. | +| `state` | *String* | :heavy_check_mark: | The playback state of the media item. | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlayProgressResponse.md b/docs/models/operations/UpdatePlayProgressResponse.md new file mode 100644 index 00000000..b2405ba8 --- /dev/null +++ b/docs/models/operations/UpdatePlayProgressResponse.md @@ -0,0 +1,11 @@ +# UpdatePlayProgressResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressResponseBody](../../models/operations/UpdatePlayProgressResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlayProgressResponseBody.md b/docs/models/operations/UpdatePlayProgressResponseBody.md new file mode 100644 index 00000000..9404b433 --- /dev/null +++ b/docs/models/operations/UpdatePlayProgressResponseBody.md @@ -0,0 +1,10 @@ +# UpdatePlayProgressResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressErrors](../../models/operations/UpdatePlayProgressErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlaylistErrors.md b/docs/models/operations/UpdatePlaylistErrors.md new file mode 100644 index 00000000..cebd7e10 --- /dev/null +++ b/docs/models/operations/UpdatePlaylistErrors.md @@ -0,0 +1,10 @@ +# UpdatePlaylistErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlaylistRequest.md b/docs/models/operations/UpdatePlaylistRequest.md new file mode 100644 index 00000000..43a67029 --- /dev/null +++ b/docs/models/operations/UpdatePlaylistRequest.md @@ -0,0 +1,10 @@ +# UpdatePlaylistRequest + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `playlistID` | *Double* | :heavy_check_mark: | the ID of the playlist | +| `title` | *String* | :heavy_minus_sign: | name of the playlist | +| `summary` | *String* | :heavy_minus_sign: | summary description of the playlist | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlaylistResponse.md b/docs/models/operations/UpdatePlaylistResponse.md new file mode 100644 index 00000000..6bc76755 --- /dev/null +++ b/docs/models/operations/UpdatePlaylistResponse.md @@ -0,0 +1,11 @@ +# UpdatePlaylistResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponseBody](../../models/operations/UpdatePlaylistResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/UpdatePlaylistResponseBody.md b/docs/models/operations/UpdatePlaylistResponseBody.md new file mode 100644 index 00000000..2eaaa256 --- /dev/null +++ b/docs/models/operations/UpdatePlaylistResponseBody.md @@ -0,0 +1,10 @@ +# UpdatePlaylistResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistErrors](../../models/operations/UpdatePlaylistErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/UploadPlaylistErrors.md b/docs/models/operations/UploadPlaylistErrors.md new file mode 100644 index 00000000..48dc96e6 --- /dev/null +++ b/docs/models/operations/UploadPlaylistErrors.md @@ -0,0 +1,10 @@ +# UploadPlaylistErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Double* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *String* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Double* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/operations/UploadPlaylistRequest.md b/docs/models/operations/UploadPlaylistRequest.md new file mode 100644 index 00000000..619b645e --- /dev/null +++ b/docs/models/operations/UploadPlaylistRequest.md @@ -0,0 +1,9 @@ +# UploadPlaylistRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `path` | *String* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
| /home/barkley/playlist.m3u | +| `force` | [lukehagar.plexapi.plexapi.models.operations.Force](../../models/operations/Force.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| | \ No newline at end of file diff --git a/docs/models/operations/UploadPlaylistResponse.md b/docs/models/operations/UploadPlaylistResponse.md new file mode 100644 index 00000000..96124140 --- /dev/null +++ b/docs/models/operations/UploadPlaylistResponse.md @@ -0,0 +1,11 @@ +# UploadPlaylistResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [lukehagar.plexapi.plexapi.models.operations.UploadPlaylistResponseBody](../../models/operations/UploadPlaylistResponseBody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | \ No newline at end of file diff --git a/docs/models/operations/UploadPlaylistResponseBody.md b/docs/models/operations/UploadPlaylistResponseBody.md new file mode 100644 index 00000000..128ca61d --- /dev/null +++ b/docs/models/operations/UploadPlaylistResponseBody.md @@ -0,0 +1,10 @@ +# UploadPlaylistResponseBody + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `errors` | List<[lukehagar.plexapi.plexapi.models.operations.UploadPlaylistErrors](../../models/operations/UploadPlaylistErrors.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/Upscale.md b/docs/models/operations/Upscale.md new file mode 100644 index 00000000..1622f51f --- /dev/null +++ b/docs/models/operations/Upscale.md @@ -0,0 +1,11 @@ +# Upscale + +allow images to be resized beyond native dimensions. + + +## Values + +| Name | Value | +| ------ | ------ | +| `ZERO` | 0 | +| `ONE` | 1 | \ No newline at end of file diff --git a/docs/models/operations/User.md b/docs/models/operations/User.md new file mode 100644 index 00000000..25a41d71 --- /dev/null +++ b/docs/models/operations/User.md @@ -0,0 +1,10 @@ +# User + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `id` | *String* | :heavy_minus_sign: | N/A | 1 | +| `thumb` | *String* | :heavy_minus_sign: | N/A | https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661 | +| `title` | *String* | :heavy_minus_sign: | N/A | Blindkitty38 | \ No newline at end of file diff --git a/docs/models/operations/Writer.md b/docs/models/operations/Writer.md new file mode 100644 index 00000000..ac543a7d --- /dev/null +++ b/docs/models/operations/Writer.md @@ -0,0 +1,8 @@ +# Writer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *String* | :heavy_minus_sign: | N/A | Jeff Loveness | \ No newline at end of file diff --git a/docs/models/shared/Security.md b/docs/models/shared/Security.md new file mode 100644 index 00000000..751e411e --- /dev/null +++ b/docs/models/shared/Security.md @@ -0,0 +1,8 @@ +# Security + + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `accessToken` | *String* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/gen.yaml b/gen.yaml index 60e0063b..b077ec4d 100644 --- a/gen.yaml +++ b/gen.yaml @@ -9,6 +9,8 @@ generation: nameResolutionDec2023: false parameterOrderingFeb2024: false requestResponseComponentNamesFeb2024: false + auth: + oAuth2ClientCredentialsEnabled: false java: version: 0.0.1 artifactID: plexapi diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 zcmb5WV{~QRw(p$^Dz@00IL3?^hro$gg*4VI_WAaTyVM5Foj~O|-84 z$;06hMwt*rV;^8iB z1~&0XWpYJmG?Ts^K9PC62H*`G}xom%S%yq|xvG~FIfP=9*f zZoDRJBm*Y0aId=qJ?7dyb)6)JGWGwe)MHeNSzhi)Ko6J<-m@v=a%NsP537lHe0R* z`If4$aaBA#S=w!2z&m>{lpTy^Lm^mg*3?M&7HFv}7K6x*cukLIGX;bQG|QWdn{%_6 zHnwBKr84#B7Z+AnBXa16a?or^R?+>$4`}{*a_>IhbjvyTtWkHw)|ay)ahWUd-qq$~ zMbh6roVsj;_qnC-R{G+Cy6bApVOinSU-;(DxUEl!i2)1EeQ9`hrfqj(nKI7?Z>Xur zoJz-a`PxkYit1HEbv|jy%~DO^13J-ut986EEG=66S}D3!L}Efp;Bez~7tNq{QsUMm zh9~(HYg1pA*=37C0}n4g&bFbQ+?-h-W}onYeE{q;cIy%eZK9wZjSwGvT+&Cgv z?~{9p(;bY_1+k|wkt_|N!@J~aoY@|U_RGoWX<;p{Nu*D*&_phw`8jYkMNpRTWx1H* z>J-Mi_!`M468#5Aix$$u1M@rJEIOc?k^QBc?T(#=n&*5eS#u*Y)?L8Ha$9wRWdH^3D4|Ps)Y?m0q~SiKiSfEkJ!=^`lJ(%W3o|CZ zSrZL-Xxc{OrmsQD&s~zPfNJOpSZUl%V8tdG%ei}lQkM+z@-4etFPR>GOH9+Y_F<3=~SXln9Kb-o~f>2a6Xz@AS3cn^;c_>lUwlK(n>z?A>NbC z`Ud8^aQy>wy=$)w;JZzA)_*Y$Z5hU=KAG&htLw1Uh00yE!|Nu{EZkch zY9O6x7Y??>!7pUNME*d!=R#s)ghr|R#41l!c?~=3CS8&zr6*aA7n9*)*PWBV2w+&I zpW1-9fr3j{VTcls1>ua}F*bbju_Xq%^v;-W~paSqlf zolj*dt`BBjHI)H9{zrkBo=B%>8}4jeBO~kWqO!~Thi!I1H(in=n^fS%nuL=X2+s!p}HfTU#NBGiwEBF^^tKU zbhhv+0dE-sbK$>J#t-J!B$TMgN@Wh5wTtK2BG}4BGfsZOoRUS#G8Cxv|6EI*n&Xxq zt{&OxCC+BNqz$9b0WM7_PyBJEVObHFh%%`~!@MNZlo*oXDCwDcFwT~Rls!aApL<)^ zbBftGKKBRhB!{?fX@l2_y~%ygNFfF(XJzHh#?`WlSL{1lKT*gJM zs>bd^H9NCxqxn(IOky5k-wALFowQr(gw%|`0991u#9jXQh?4l|l>pd6a&rx|v=fPJ z1mutj{YzpJ_gsClbWFk(G}bSlFi-6@mwoQh-XeD*j@~huW4(8ub%^I|azA)h2t#yG z7e_V_<4jlM3D(I+qX}yEtqj)cpzN*oCdYHa!nm%0t^wHm)EmFP*|FMw!tb@&`G-u~ zK)=Sf6z+BiTAI}}i{*_Ac$ffr*Wrv$F7_0gJkjx;@)XjYSh`RjAgrCck`x!zP>Ifu z&%he4P|S)H*(9oB4uvH67^0}I-_ye_!w)u3v2+EY>eD3#8QR24<;7?*hj8k~rS)~7 zSXs5ww)T(0eHSp$hEIBnW|Iun<_i`}VE0Nc$|-R}wlSIs5pV{g_Dar(Zz<4X3`W?K z6&CAIl4U(Qk-tTcK{|zYF6QG5ArrEB!;5s?tW7 zrE3hcFY&k)+)e{+YOJ0X2uDE_hd2{|m_dC}kgEKqiE9Q^A-+>2UonB+L@v3$9?AYw zVQv?X*pK;X4Ovc6Ev5Gbg{{Eu*7{N3#0@9oMI~}KnObQE#Y{&3mM4`w%wN+xrKYgD zB-ay0Q}m{QI;iY`s1Z^NqIkjrTlf`B)B#MajZ#9u41oRBC1oM1vq0i|F59> z#StM@bHt|#`2)cpl_rWB($DNJ3Lap}QM-+A$3pe}NyP(@+i1>o^fe-oxX#Bt`mcQc zb?pD4W%#ep|3%CHAYnr*^M6Czg>~L4?l16H1OozM{P*en298b+`i4$|w$|4AHbzqB zHpYUsHZET$Z0ztC;U+0*+amF!@PI%^oUIZy{`L{%O^i{Xk}X0&nl)n~tVEpcAJSJ} zverw15zP1P-O8h9nd!&hj$zuwjg?DoxYIw{jWM zW5_pj+wFy8Tsa9g<7Qa21WaV&;ejoYflRKcz?#fSH_)@*QVlN2l4(QNk| z4aPnv&mrS&0|6NHq05XQw$J^RR9T{3SOcMKCXIR1iSf+xJ0E_Wv?jEc*I#ZPzyJN2 zUG0UOXHl+PikM*&g$U@g+KbG-RY>uaIl&DEtw_Q=FYq?etc!;hEC_}UX{eyh%dw2V zTTSlap&5>PY{6I#(6`j-9`D&I#|YPP8a;(sOzgeKDWsLa!i-$frD>zr-oid!Hf&yS z!i^cr&7tN}OOGmX2)`8k?Tn!!4=tz~3hCTq_9CdiV!NIblUDxHh(FJ$zs)B2(t5@u z-`^RA1ShrLCkg0)OhfoM;4Z{&oZmAec$qV@ zGQ(7(!CBk<5;Ar%DLJ0p0!ResC#U<+3i<|vib1?{5gCebG7$F7URKZXuX-2WgF>YJ^i zMhHDBsh9PDU8dlZ$yJKtc6JA#y!y$57%sE>4Nt+wF1lfNIWyA`=hF=9Gj%sRwi@vd z%2eVV3y&dvAgyuJ=eNJR+*080dbO_t@BFJO<@&#yqTK&+xc|FRR;p;KVk@J3$S{p` zGaMj6isho#%m)?pOG^G0mzOAw0z?!AEMsv=0T>WWcE>??WS=fII$t$(^PDPMU(P>o z_*0s^W#|x)%tx8jIgZY~A2yG;US0m2ZOQt6yJqW@XNY_>_R7(Nxb8Ged6BdYW6{prd!|zuX$@Q2o6Ona8zzYC1u!+2!Y$Jc9a;wy+pXt}o6~Bu1oF1c zp7Y|SBTNi@=I(K%A60PMjM#sfH$y*c{xUgeSpi#HB`?|`!Tb&-qJ3;vxS!TIzuTZs-&%#bAkAyw9m4PJgvey zM5?up*b}eDEY+#@tKec)-c(#QF0P?MRlD1+7%Yk*jW;)`f;0a-ZJ6CQA?E%>i2Dt7T9?s|9ZF|KP4;CNWvaVKZ+Qeut;Jith_y{v*Ny6Co6!8MZx;Wgo z=qAi%&S;8J{iyD&>3CLCQdTX*$+Rx1AwA*D_J^0>suTgBMBb=*hefV+Ars#mmr+YsI3#!F@Xc1t4F-gB@6aoyT+5O(qMz*zG<9Qq*f0w^V!03rpr*-WLH}; zfM{xSPJeu6D(%8HU%0GEa%waFHE$G?FH^kMS-&I3)ycx|iv{T6Wx}9$$D&6{%1N_8 z_CLw)_9+O4&u94##vI9b-HHm_95m)fa??q07`DniVjAy`t7;)4NpeyAY(aAk(+T_O z1om+b5K2g_B&b2DCTK<>SE$Ode1DopAi)xaJjU>**AJK3hZrnhEQ9E`2=|HHe<^tv z63e(bn#fMWuz>4erc47}!J>U58%<&N<6AOAewyzNTqi7hJc|X{782&cM zHZYclNbBwU6673=!ClmxMfkC$(CykGR@10F!zN1Se83LR&a~$Ht&>~43OX22mt7tcZUpa;9@q}KDX3O&Ugp6< zLZLfIMO5;pTee1vNyVC$FGxzK2f>0Z-6hM82zKg44nWo|n}$Zk6&;5ry3`(JFEX$q zK&KivAe${e^5ZGc3a9hOt|!UOE&OocpVryE$Y4sPcs4rJ>>Kbi2_subQ9($2VN(3o zb~tEzMsHaBmBtaHAyES+d3A(qURgiskSSwUc9CfJ@99&MKp2sooSYZu+-0t0+L*!I zYagjOlPgx|lep9tiU%ts&McF6b0VE57%E0Ho%2oi?=Ks+5%aj#au^OBwNwhec zta6QAeQI^V!dF1C)>RHAmB`HnxyqWx?td@4sd15zPd*Fc9hpDXP23kbBenBxGeD$k z;%0VBQEJ-C)&dTAw_yW@k0u?IUk*NrkJ)(XEeI z9Y>6Vel>#s_v@=@0<{4A{pl=9cQ&Iah0iD0H`q)7NeCIRz8zx;! z^OO;1+IqoQNak&pV`qKW+K0^Hqp!~gSohcyS)?^P`JNZXw@gc6{A3OLZ?@1Uc^I2v z+X!^R*HCm3{7JPq{8*Tn>5;B|X7n4QQ0Bs79uTU%nbqOJh`nX(BVj!#f;#J+WZxx4 z_yM&1Y`2XzhfqkIMO7tB3raJKQS+H5F%o83bM+hxbQ zeeJm=Dvix$2j|b4?mDacb67v-1^lTp${z=jc1=j~QD>7c*@+1?py>%Kj%Ejp7Y-!? z8iYRUlGVrQPandAaxFfks53@2EC#0)%mrnmGRn&>=$H$S8q|kE_iWko4`^vCS2aWg z#!`RHUGyOt*k?bBYu3*j3u0gB#v(3tsije zgIuNNWNtrOkx@Pzs;A9un+2LX!zw+p3_NX^Sh09HZAf>m8l@O*rXy_82aWT$Q>iyy zqO7Of)D=wcSn!0+467&!Hl))eff=$aneB?R!YykdKW@k^_uR!+Q1tR)+IJb`-6=jj zymzA>Sv4>Z&g&WWu#|~GcP7qP&m*w-S$)7Xr;(duqCTe7p8H3k5>Y-n8438+%^9~K z3r^LIT_K{i7DgEJjIocw_6d0!<;wKT`X;&vv+&msmhAAnIe!OTdybPctzcEzBy88_ zWO{6i4YT%e4^WQZB)KHCvA(0tS zHu_Bg+6Ko%a9~$EjRB90`P(2~6uI@SFibxct{H#o&y40MdiXblu@VFXbhz>Nko;7R z70Ntmm-FePqhb%9gL+7U8@(ch|JfH5Fm)5${8|`Lef>LttM_iww6LW2X61ldBmG0z zax3y)njFe>j*T{i0s8D4=L>X^j0)({R5lMGVS#7(2C9@AxL&C-lZQx~czI7Iv+{%1 z2hEG>RzX4S8x3v#9sgGAnPzptM)g&LB}@%E>fy0vGSa(&q0ch|=ncKjNrK z`jA~jObJhrJ^ri|-)J^HUyeZXz~XkBp$VhcTEcTdc#a2EUOGVX?@mYx#Vy*!qO$Jv zQ4rgOJ~M*o-_Wptam=~krnmG*p^j!JAqoQ%+YsDFW7Cc9M%YPiBOrVcD^RY>m9Pd< zu}#9M?K{+;UIO!D9qOpq9yxUquQRmQNMo0pT`@$pVt=rMvyX)ph(-CCJLvUJy71DI zBk7oc7)-%ngdj~s@76Yse3L^gV0 z2==qfp&Q~L(+%RHP0n}+xH#k(hPRx(!AdBM$JCfJ5*C=K3ts>P?@@SZ_+{U2qFZb>4kZ{Go37{# zSQc+-dq*a-Vy4?taS&{Ht|MLRiS)Sn14JOONyXqPNnpq&2y~)6wEG0oNy>qvod$FF z`9o&?&6uZjhZ4_*5qWVrEfu(>_n2Xi2{@Gz9MZ8!YmjYvIMasE9yVQL10NBrTCczq zcTY1q^PF2l!Eraguf{+PtHV3=2A?Cu&NN&a8V(y;q(^_mFc6)%Yfn&X&~Pq zU1?qCj^LF(EQB1F`8NxNjyV%fde}dEa(Hx=r7$~ts2dzDwyi6ByBAIx$NllB4%K=O z$AHz1<2bTUb>(MCVPpK(E9wlLElo(aSd(Os)^Raum`d(g9Vd_+Bf&V;l=@mM=cC>) z)9b0enb)u_7V!!E_bl>u5nf&Rl|2r=2F3rHMdb7y9E}}F82^$Rf+P8%dKnOeKh1vs zhH^P*4Ydr^$)$h@4KVzxrHyy#cKmWEa9P5DJ|- zG;!Qi35Tp7XNj60=$!S6U#!(${6hyh7d4q=pF{`0t|N^|L^d8pD{O9@tF~W;#Je*P z&ah%W!KOIN;SyAEhAeTafJ4uEL`(RtnovM+cb(O#>xQnk?dzAjG^~4$dFn^<@-Na3 z395;wBnS{t*H;Jef2eE!2}u5Ns{AHj>WYZDgQJt8v%x?9{MXqJsGP|l%OiZqQ1aB! z%E=*Ig`(!tHh>}4_z5IMpg{49UvD*Pp9!pxt_gdAW%sIf3k6CTycOT1McPl=_#0?8 zVjz8Hj*Vy9c5-krd-{BQ{6Xy|P$6LJvMuX$* zA+@I_66_ET5l2&gk9n4$1M3LN8(yEViRx&mtd#LD}AqEs?RW=xKC(OCWH;~>(X6h!uDxXIPH06xh z*`F4cVlbDP`A)-fzf>MuScYsmq&1LUMGaQ3bRm6i7OsJ|%uhTDT zlvZA1M}nz*SalJWNT|`dBm1$xlaA>CCiQ zK`xD-RuEn>-`Z?M{1%@wewf#8?F|(@1e0+T4>nmlSRrNK5f)BJ2H*$q(H>zGD0>eL zQ!tl_Wk)k*e6v^m*{~A;@6+JGeWU-q9>?+L_#UNT%G?4&BnOgvm9@o7l?ov~XL+et zbGT)|G7)KAeqb=wHSPk+J1bdg7N3$vp(ekjI1D9V$G5Cj!=R2w=3*4!z*J-r-cyeb zd(i2KmX!|Lhey!snRw z?#$Gu%S^SQEKt&kep)up#j&9}e+3=JJBS(s>MH+|=R(`8xK{mmndWo_r`-w1#SeRD&YtAJ#GiVI*TkQZ}&aq<+bU2+coU3!jCI6E+Ad_xFW*ghnZ$q zAoF*i&3n1j#?B8x;kjSJD${1jdRB;)R*)Ao!9bd|C7{;iqDo|T&>KSh6*hCD!rwv= zyK#F@2+cv3=|S1Kef(E6Niv8kyLVLX&e=U;{0x{$tDfShqkjUME>f8d(5nzSkY6@! z^-0>DM)wa&%m#UF1F?zR`8Y3X#tA!*7Q$P3lZJ%*KNlrk_uaPkxw~ zxZ1qlE;Zo;nb@!SMazSjM>;34ROOoygo%SF);LL>rRonWwR>bmSd1XD^~sGSu$Gg# zFZ`|yKU0%!v07dz^v(tY%;So(e`o{ZYTX`hm;@b0%8|H>VW`*cr8R%3n|ehw2`(9B+V72`>SY}9^8oh$En80mZK9T4abVG*to;E z1_S6bgDOW?!Oy1LwYy=w3q~KKdbNtyH#d24PFjX)KYMY93{3-mPP-H>@M-_>N~DDu zENh~reh?JBAK=TFN-SfDfT^=+{w4ea2KNWXq2Y<;?(gf(FgVp8Zp-oEjKzB%2Iqj;48GmY3h=bcdYJ}~&4tS`Q1sb=^emaW$IC$|R+r-8V- zf0$gGE(CS_n4s>oicVk)MfvVg#I>iDvf~Ov8bk}sSxluG!6#^Z_zhB&U^`eIi1@j( z^CK$z^stBHtaDDHxn+R;3u+>Lil^}fj?7eaGB z&5nl^STqcaBxI@v>%zG|j))G(rVa4aY=B@^2{TFkW~YP!8!9TG#(-nOf^^X-%m9{Z zCC?iC`G-^RcBSCuk=Z`(FaUUe?hf3{0C>>$?Vs z`2Uud9M+T&KB6o4o9kvdi^Q=Bw!asPdxbe#W-Oaa#_NP(qpyF@bVxv5D5))srkU#m zj_KA+#7sqDn*Ipf!F5Byco4HOSd!Ui$l94|IbW%Ny(s1>f4|Mv^#NfB31N~kya9!k zWCGL-$0ZQztBate^fd>R!hXY_N9ZjYp3V~4_V z#eB)Kjr8yW=+oG)BuNdZG?jaZlw+l_ma8aET(s+-x+=F-t#Qoiuu1i`^x8Sj>b^U} zs^z<()YMFP7CmjUC@M=&lA5W7t&cxTlzJAts*%PBDAPuqcV5o7HEnqjif_7xGt)F% zGx2b4w{@!tE)$p=l3&?Bf#`+!-RLOleeRk3 z7#pF|w@6_sBmn1nECqdunmG^}pr5(ZJQVvAt$6p3H(16~;vO>?sTE`Y+mq5YP&PBo zvq!7#W$Gewy`;%6o^!Dtjz~x)T}Bdk*BS#=EY=ODD&B=V6TD2z^hj1m5^d6s)D*wk zu$z~D7QuZ2b?5`p)E8e2_L38v3WE{V`bVk;6fl#o2`) z99JsWhh?$oVRn@$S#)uK&8DL8>An0&S<%V8hnGD7Z^;Y(%6;^9!7kDQ5bjR_V+~wp zfx4m3z6CWmmZ<8gDGUyg3>t8wgJ5NkkiEm^(sedCicP^&3D%}6LtIUq>mXCAt{9eF zNXL$kGcoUTf_Lhm`t;hD-SE)m=iBnxRU(NyL}f6~1uH)`K!hmYZjLI%H}AmEF5RZt z06$wn63GHnApHXZZJ}s^s)j9(BM6e*7IBK6Bq(!)d~zR#rbxK9NVIlgquoMq z=eGZ9NR!SEqP6=9UQg#@!rtbbSBUM#ynF);zKX+|!Zm}*{H z+j=d?aZ2!?@EL7C~%B?6ouCKLnO$uWn;Y6Xz zX8dSwj732u(o*U3F$F=7xwxm>E-B+SVZH;O-4XPuPkLSt_?S0)lb7EEg)Mglk0#eS z9@jl(OnH4juMxY+*r03VDfPx_IM!Lmc(5hOI;`?d37f>jPP$?9jQQIQU@i4vuG6MagEoJrQ=RD7xt@8E;c zeGV*+Pt+t$@pt!|McETOE$9k=_C!70uhwRS9X#b%ZK z%q(TIUXSS^F0`4Cx?Rk07C6wI4!UVPeI~-fxY6`YH$kABdOuiRtl73MqG|~AzZ@iL&^s?24iS;RK_pdlWkhcF z@Wv-Om(Aealfg)D^adlXh9Nvf~Uf@y;g3Y)i(YP zEXDnb1V}1pJT5ZWyw=1i+0fni9yINurD=EqH^ciOwLUGi)C%Da)tyt=zq2P7pV5-G zR7!oq28-Fgn5pW|nlu^b!S1Z#r7!Wtr{5J5PQ>pd+2P7RSD?>(U7-|Y z7ZQ5lhYIl_IF<9?T9^IPK<(Hp;l5bl5tF9>X-zG14_7PfsA>6<$~A338iYRT{a@r_ zuXBaT=`T5x3=s&3=RYx6NgG>No4?5KFBVjE(swfcivcIpPQFx5l+O;fiGsOrl5teR z_Cm+;PW}O0Dwe_(4Z@XZ)O0W-v2X><&L*<~*q3dg;bQW3g7)a#3KiQP>+qj|qo*Hk z?57>f2?f@`=Fj^nkDKeRkN2d$Z@2eNKpHo}ksj-$`QKb6n?*$^*%Fb3_Kbf1(*W9K>{L$mud2WHJ=j0^=g30Xhg8$#g^?36`p1fm;;1@0Lrx+8t`?vN0ZorM zSW?rhjCE8$C|@p^sXdx z|NOHHg+fL;HIlqyLp~SSdIF`TnSHehNCU9t89yr@)FY<~hu+X`tjg(aSVae$wDG*C zq$nY(Y494R)hD!i1|IIyP*&PD_c2FPgeY)&mX1qujB1VHPG9`yFQpLFVQ0>EKS@Bp zAfP5`C(sWGLI?AC{XEjLKR4FVNw(4+9b?kba95ukgR1H?w<8F7)G+6&(zUhIE5Ef% z=fFkL3QKA~M@h{nzjRq!Y_t!%U66#L8!(2-GgFxkD1=JRRqk=n%G(yHKn%^&$dW>; zSjAcjETMz1%205se$iH_)ZCpfg_LwvnsZQAUCS#^FExp8O4CrJb6>JquNV@qPq~3A zZ<6dOU#6|8+fcgiA#~MDmcpIEaUO02L5#T$HV0$EMD94HT_eXLZ2Zi&(! z&5E>%&|FZ`)CN10tM%tLSPD*~r#--K(H-CZqIOb99_;m|D5wdgJ<1iOJz@h2Zkq?} z%8_KXb&hf=2Wza(Wgc;3v3TN*;HTU*q2?#z&tLn_U0Nt!y>Oo>+2T)He6%XuP;fgn z-G!#h$Y2`9>Jtf}hbVrm6D70|ERzLAU>3zoWhJmjWfgM^))T+2u$~5>HF9jQDkrXR z=IzX36)V75PrFjkQ%TO+iqKGCQ-DDXbaE;C#}!-CoWQx&v*vHfyI>$HNRbpvm<`O( zlx9NBWD6_e&J%Ous4yp~s6)Ghni!I6)0W;9(9$y1wWu`$gs<$9Mcf$L*piP zPR0Av*2%ul`W;?-1_-5Zy0~}?`e@Y5A&0H!^ApyVTT}BiOm4GeFo$_oPlDEyeGBbh z1h3q&Dx~GmUS|3@4V36&$2uO8!Yp&^pD7J5&TN{?xphf*-js1fP?B|`>p_K>lh{ij zP(?H%e}AIP?_i^f&Li=FDSQ`2_NWxL+BB=nQr=$ zHojMlXNGauvvwPU>ZLq!`bX-5F4jBJ&So{kE5+ms9UEYD{66!|k~3vsP+mE}x!>%P za98bAU0!h0&ka4EoiDvBM#CP#dRNdXJcb*(%=<(g+M@<)DZ!@v1V>;54En?igcHR2 zhubQMq}VSOK)onqHfczM7YA@s=9*ow;k;8)&?J3@0JiGcP! zP#00KZ1t)GyZeRJ=f0^gc+58lc4Qh*S7RqPIC6GugG1gXe$LIQMRCo8cHf^qXgAa2 z`}t>u2Cq1CbSEpLr~E=c7~=Qkc9-vLE%(v9N*&HF`(d~(0`iukl5aQ9u4rUvc8%m) zr2GwZN4!s;{SB87lJB;veebPmqE}tSpT>+`t?<457Q9iV$th%i__Z1kOMAswFldD6 ztbOvO337S5o#ZZgN2G99_AVqPv!?Gmt3pzgD+Hp3QPQ`9qJ(g=kjvD+fUSS3upJn! zqoG7acIKEFRX~S}3|{EWT$kdz#zrDlJU(rPkxjws_iyLKU8+v|*oS_W*-guAb&Pj1 z35Z`3z<&Jb@2Mwz=KXucNYdY#SNO$tcVFr9KdKm|%^e-TXzs6M`PBper%ajkrIyUe zp$vVxVs9*>Vp4_1NC~Zg)WOCPmOxI1V34QlG4!aSFOH{QqSVq1^1)- z0P!Z?tT&E-ll(pwf0?=F=yOzik=@nh1Clxr9}Vij89z)ePDSCYAqw?lVI?v?+&*zH z)p$CScFI8rrwId~`}9YWPFu0cW1Sf@vRELs&cbntRU6QfPK-SO*mqu|u~}8AJ!Q$z znzu}50O=YbjwKCuSVBs6&CZR#0FTu)3{}qJJYX(>QPr4$RqWiwX3NT~;>cLn*_&1H zaKpIW)JVJ>b{uo2oq>oQt3y=zJjb%fU@wLqM{SyaC6x2snMx-}ivfU<1- znu1Lh;i$3Tf$Kh5Uk))G!D1UhE8pvx&nO~w^fG)BC&L!_hQk%^p`Kp@F{cz>80W&T ziOK=Sq3fdRu*V0=S53rcIfWFazI}Twj63CG(jOB;$*b`*#B9uEnBM`hDk*EwSRdwP8?5T?xGUKs=5N83XsR*)a4|ijz|c{4tIU+4j^A5C<#5 z*$c_d=5ml~%pGxw#?*q9N7aRwPux5EyqHVkdJO=5J>84!X6P>DS8PTTz>7C#FO?k#edkntG+fJk8ZMn?pmJSO@`x-QHq;7^h6GEXLXo1TCNhH z8ZDH{*NLAjo3WM`xeb=X{((uv3H(8&r8fJJg_uSs_%hOH%JDD?hu*2NvWGYD+j)&` zz#_1%O1wF^o5ryt?O0n;`lHbzp0wQ?rcbW(F1+h7_EZZ9{>rePvLAPVZ_R|n@;b$;UchU=0j<6k8G9QuQf@76oiE*4 zXOLQ&n3$NR#p4<5NJMVC*S);5x2)eRbaAM%VxWu9ohlT;pGEk7;002enCbQ>2r-us z3#bpXP9g|mE`65VrN`+3mC)M(eMj~~eOf)do<@l+fMiTR)XO}422*1SL{wyY(%oMpBgJagtiDf zz>O6(m;};>Hi=t8o{DVC@YigqS(Qh+ix3Rwa9aliH}a}IlOCW1@?%h_bRbq-W{KHF z%Vo?-j@{Xi@=~Lz5uZP27==UGE15|g^0gzD|3x)SCEXrx`*MP^FDLl%pOi~~Il;dc z^hrwp9sYeT7iZ)-ajKy@{a`kr0-5*_!XfBpXwEcFGJ;%kV$0Nx;apKrur zJN2J~CAv{Zjj%FolyurtW8RaFmpn&zKJWL>(0;;+q(%(Hx!GMW4AcfP0YJ*Vz!F4g z!ZhMyj$BdXL@MlF%KeInmPCt~9&A!;cRw)W!Hi@0DY(GD_f?jeV{=s=cJ6e}JktJw zQORnxxj3mBxfrH=x{`_^Z1ddDh}L#V7i}$njUFRVwOX?qOTKjfPMBO4y(WiU<)epb zvB9L=%jW#*SL|Nd_G?E*_h1^M-$PG6Pc_&QqF0O-FIOpa4)PAEPsyvB)GKasmBoEt z?_Q2~QCYGH+hW31x-B=@5_AN870vY#KB~3a*&{I=f);3Kv7q4Q7s)0)gVYx2#Iz9g(F2;=+Iy4 z6KI^8GJ6D@%tpS^8boU}zpi=+(5GfIR)35PzrbuXeL1Y1N%JK7PG|^2k3qIqHfX;G zQ}~JZ-UWx|60P5?d1e;AHx!_;#PG%d=^X(AR%i`l0jSpYOpXoKFW~7ip7|xvN;2^? zsYC9fanpO7rO=V7+KXqVc;Q5z%Bj})xHVrgoR04sA2 zl~DAwv=!(()DvH*=lyhIlU^hBkA0$e*7&fJpB0|oB7)rqGK#5##2T`@_I^|O2x4GO z;xh6ROcV<9>?e0)MI(y++$-ksV;G;Xe`lh76T#Htuia+(UrIXrf9?

L(tZ$0BqX1>24?V$S+&kLZ`AodQ4_)P#Q3*4xg8}lMV-FLwC*cN$< zt65Rf%7z41u^i=P*qO8>JqXPrinQFapR7qHAtp~&RZ85$>ob|Js;GS^y;S{XnGiBc zGa4IGvDl?x%gY`vNhv8wgZnP#UYI-w*^4YCZnxkF85@ldepk$&$#3EAhrJY0U)lR{F6sM3SONV^+$;Zx8BD&Eku3K zKNLZyBni3)pGzU0;n(X@1fX8wYGKYMpLmCu{N5-}epPDxClPFK#A@02WM3!myN%bkF z|GJ4GZ}3sL{3{qXemy+#Uk{4>Kf8v11;f8I&c76+B&AQ8udd<8gU7+BeWC`akUU~U zgXoxie>MS@rBoyY8O8Tc&8id!w+_ooxcr!1?#rc$-|SBBtH6S?)1e#P#S?jFZ8u-Bs&k`yLqW|{j+%c#A4AQ>+tj$Y z^CZajspu$F%73E68Lw5q7IVREED9r1Ijsg#@DzH>wKseye>hjsk^{n0g?3+gs@7`i zHx+-!sjLx^fS;fY!ERBU+Q zVJ!e0hJH%P)z!y%1^ZyG0>PN@5W~SV%f>}c?$H8r;Sy-ui>aruVTY=bHe}$e zi&Q4&XK!qT7-XjCrDaufT@>ieQ&4G(SShUob0Q>Gznep9fR783jGuUynAqc6$pYX; z7*O@@JW>O6lKIk0G00xsm|=*UVTQBB`u1f=6wGAj%nHK_;Aqmfa!eAykDmi-@u%6~ z;*c!pS1@V8r@IX9j&rW&d*}wpNs96O2Ute>%yt{yv>k!6zfT6pru{F1M3P z2WN1JDYqoTB#(`kE{H676QOoX`cnqHl1Yaru)>8Ky~VU{)r#{&s86Vz5X)v15ULHA zAZDb{99+s~qI6;-dQ5DBjHJP@GYTwn;Dv&9kE<0R!d z8tf1oq$kO`_sV(NHOSbMwr=To4r^X$`sBW4$gWUov|WY?xccQJN}1DOL|GEaD_!@& z15p?Pj+>7d`@LvNIu9*^hPN)pwcv|akvYYq)ks%`G>!+!pW{-iXPZsRp8 z35LR;DhseQKWYSD`%gO&k$Dj6_6q#vjWA}rZcWtQr=Xn*)kJ9kacA=esi*I<)1>w^ zO_+E>QvjP)qiSZg9M|GNeLtO2D7xT6vsj`88sd!94j^AqxFLi}@w9!Y*?nwWARE0P znuI_7A-saQ+%?MFA$gttMV-NAR^#tjl_e{R$N8t2NbOlX373>e7Ox=l=;y#;M7asp zRCz*CLnrm$esvSb5{T<$6CjY zmZ(i{Rs_<#pWW>(HPaaYj`%YqBra=Ey3R21O7vUbzOkJJO?V`4-D*u4$Me0Bx$K(lYo`JO}gnC zx`V}a7m-hLU9Xvb@K2ymioF)vj12<*^oAqRuG_4u%(ah?+go%$kOpfb`T96P+L$4> zQ#S+sA%VbH&mD1k5Ak7^^dZoC>`1L%i>ZXmooA!%GI)b+$D&ziKrb)a=-ds9xk#~& z7)3iem6I|r5+ZrTRe_W861x8JpD`DDIYZNm{$baw+$)X^Jtjnl0xlBgdnNY}x%5za zkQ8E6T<^$sKBPtL4(1zi_Rd(tVth*3Xs!ulflX+70?gb&jRTnI8l+*Aj9{|d%qLZ+ z>~V9Z;)`8-lds*Zgs~z1?Fg?Po7|FDl(Ce<*c^2=lFQ~ahwh6rqSjtM5+$GT>3WZW zj;u~w9xwAhOc<kF}~`CJ68 z?(S5vNJa;kriPlim33{N5`C{9?NWhzsna_~^|K2k4xz1`xcui*LXL-1#Y}Hi9`Oo!zQ>x-kgAX4LrPz63uZ+?uG*84@PKq-KgQlMNRwz=6Yes) zY}>YN+qP}nwr$(CZQFjUOI=-6J$2^XGvC~EZ+vrqWaOXB$k?%Suf5k=4>AveC1aJ! ziaW4IS%F$_Babi)kA8Y&u4F7E%99OPtm=vzw$$ zEz#9rvn`Iot_z-r3MtV>k)YvErZ<^Oa${`2>MYYODSr6?QZu+be-~MBjwPGdMvGd!b!elsdi4% z`37W*8+OGulab8YM?`KjJ8e+jM(tqLKSS@=jimq3)Ea2EB%88L8CaM+aG7;27b?5` z4zuUWBr)f)k2o&xg{iZ$IQkJ+SK>lpq4GEacu~eOW4yNFLU!Kgc{w4&D$4ecm0f}~ zTTzquRW@`f0}|IILl`!1P+;69g^upiPA6F{)U8)muWHzexRenBU$E^9X-uIY2%&1w z_=#5*(nmxJ9zF%styBwivi)?#KMG96-H@hD-H_&EZiRNsfk7mjBq{L%!E;Sqn!mVX*}kXhwH6eh;b42eD!*~upVG@ z#smUqz$ICm!Y8wY53gJeS|Iuard0=;k5i5Z_hSIs6tr)R4n*r*rE`>38Pw&lkv{_r!jNN=;#?WbMj|l>cU(9trCq; z%nN~r^y7!kH^GPOf3R}?dDhO=v^3BeP5hF|%4GNQYBSwz;x({21i4OQY->1G=KFyu z&6d`f2tT9Yl_Z8YACZaJ#v#-(gcyeqXMhYGXb=t>)M@fFa8tHp2x;ODX=Ap@a5I=U z0G80^$N0G4=U(>W%mrrThl0DjyQ-_I>+1Tdd_AuB3qpYAqY54upwa3}owa|x5iQ^1 zEf|iTZxKNGRpI>34EwkIQ2zHDEZ=(J@lRaOH>F|2Z%V_t56Km$PUYu^xA5#5Uj4I4RGqHD56xT%H{+P8Ag>e_3pN$4m8n>i%OyJFPNWaEnJ4McUZPa1QmOh?t8~n& z&RulPCors8wUaqMHECG=IhB(-tU2XvHP6#NrLVyKG%Ee*mQ5Ps%wW?mcnriTVRc4J`2YVM>$ixSF2Xi+Wn(RUZnV?mJ?GRdw%lhZ+t&3s7g!~g{%m&i<6 z5{ib-<==DYG93I(yhyv4jp*y3#*WNuDUf6`vTM%c&hiayf(%=x@4$kJ!W4MtYcE#1 zHM?3xw63;L%x3drtd?jot!8u3qeqctceX3m;tWetK+>~q7Be$h>n6riK(5@ujLgRS zvOym)k+VAtyV^mF)$29Y`nw&ijdg~jYpkx%*^ z8dz`C*g=I?;clyi5|!27e2AuSa$&%UyR(J3W!A=ZgHF9OuKA34I-1U~pyD!KuRkjA zbkN!?MfQOeN>DUPBxoy5IX}@vw`EEB->q!)8fRl_mqUVuRu|C@KD-;yl=yKc=ZT0% zB$fMwcC|HE*0f8+PVlWHi>M`zfsA(NQFET?LrM^pPcw`cK+Mo0%8*x8@65=CS_^$cG{GZQ#xv($7J z??R$P)nPLodI;P!IC3eEYEHh7TV@opr#*)6A-;EU2XuogHvC;;k1aI8asq7ovoP!* z?x%UoPrZjj<&&aWpsbr>J$Er-7!E(BmOyEv!-mbGQGeJm-U2J>74>o5x`1l;)+P&~ z>}f^=Rx(ZQ2bm+YE0u=ZYrAV@apyt=v1wb?R@`i_g64YyAwcOUl=C!i>=Lzb$`tjv zOO-P#A+)t-JbbotGMT}arNhJmmGl-lyUpMn=2UacVZxmiG!s!6H39@~&uVokS zG=5qWhfW-WOI9g4!R$n7!|ViL!|v3G?GN6HR0Pt_L5*>D#FEj5wM1DScz4Jv@Sxnl zB@MPPmdI{(2D?;*wd>3#tjAirmUnQoZrVv`xM3hARuJksF(Q)wd4P$88fGYOT1p6U z`AHSN!`St}}UMBT9o7i|G`r$ zrB=s$qV3d6$W9@?L!pl0lf%)xs%1ko^=QY$ty-57=55PvP(^6E7cc zGJ*>m2=;fOj?F~yBf@K@9qwX0hA803Xw+b0m}+#a(>RyR8}*Y<4b+kpp|OS+!whP( zH`v{%s>jsQI9rd$*vm)EkwOm#W_-rLTHcZRek)>AtF+~<(did)*oR1|&~1|e36d-d zgtm5cv1O0oqgWC%Et@P4Vhm}Ndl(Y#C^MD03g#PH-TFy+7!Osv1z^UWS9@%JhswEq~6kSr2DITo59+; ze=ZC}i2Q?CJ~Iyu?vn|=9iKV>4j8KbxhE4&!@SQ^dVa-gK@YfS9xT(0kpW*EDjYUkoj! zE49{7H&E}k%5(>sM4uGY)Q*&3>{aitqdNnRJkbOmD5Mp5rv-hxzOn80QsG=HJ_atI-EaP69cacR)Uvh{G5dTpYG7d zbtmRMq@Sexey)||UpnZ?;g_KMZq4IDCy5}@u!5&B^-=6yyY{}e4Hh3ee!ZWtL*s?G zxG(A!<9o!CL+q?u_utltPMk+hn?N2@?}xU0KlYg?Jco{Yf@|mSGC<(Zj^yHCvhmyx z?OxOYoxbptDK()tsJ42VzXdINAMWL$0Gcw?G(g8TMB)Khw_|v9`_ql#pRd2i*?CZl z7k1b!jQB=9-V@h%;Cnl7EKi;Y^&NhU0mWEcj8B|3L30Ku#-9389Q+(Yet0r$F=+3p z6AKOMAIi|OHyzlHZtOm73}|ntKtFaXF2Fy|M!gOh^L4^62kGUoWS1i{9gsds_GWBc zLw|TaLP64z3z9?=R2|T6Xh2W4_F*$cq>MtXMOy&=IPIJ`;!Tw?PqvI2b*U1)25^<2 zU_ZPoxg_V0tngA0J+mm?3;OYw{i2Zb4x}NedZug!>EoN3DC{1i)Z{Z4m*(y{ov2%- zk(w>+scOO}MN!exSc`TN)!B=NUX`zThWO~M*ohqq;J2hx9h9}|s#?@eR!=F{QTrq~ zTcY|>azkCe$|Q0XFUdpFT=lTcyW##i;-e{}ORB4D?t@SfqGo_cS z->?^rh$<&n9DL!CF+h?LMZRi)qju!meugvxX*&jfD!^1XB3?E?HnwHP8$;uX{Rvp# zh|)hM>XDv$ZGg=$1{+_bA~u-vXqlw6NH=nkpyWE0u}LQjF-3NhATL@9rRxMnpO%f7 z)EhZf{PF|mKIMFxnC?*78(}{Y)}iztV12}_OXffJ;ta!fcFIVjdchyHxH=t%ci`Xd zX2AUB?%?poD6Zv*&BA!6c5S#|xn~DK01#XvjT!w!;&`lDXSJT4_j$}!qSPrb37vc{ z9^NfC%QvPu@vlxaZ;mIbn-VHA6miwi8qJ~V;pTZkKqqOii<1Cs}0i?uUIss;hM4dKq^1O35y?Yp=l4i zf{M!@QHH~rJ&X~8uATV><23zZUbs-J^3}$IvV_ANLS08>k`Td7aU_S1sLsfi*C-m1 z-e#S%UGs4E!;CeBT@9}aaI)qR-6NU@kvS#0r`g&UWg?fC7|b^_HyCE!8}nyh^~o@< zpm7PDFs9yxp+byMS(JWm$NeL?DNrMCNE!I^ko-*csB+dsf4GAq{=6sfyf4wb>?v1v zmb`F*bN1KUx-`ra1+TJ37bXNP%`-Fd`vVQFTwWpX@;s(%nDQa#oWhgk#mYlY*!d>( zE&!|ySF!mIyfING+#%RDY3IBH_fW$}6~1%!G`suHub1kP@&DoAd5~7J55;5_noPI6eLf{t;@9Kf<{aO0`1WNKd?<)C-|?C?)3s z>wEq@8=I$Wc~Mt$o;g++5qR+(6wt9GI~pyrDJ%c?gPZe)owvy^J2S=+M^ z&WhIE`g;;J^xQLVeCtf7b%Dg#Z2gq9hp_%g)-%_`y*zb; zn9`f`mUPN-Ts&fFo(aNTsXPA|J!TJ{0hZp0^;MYHLOcD=r_~~^ymS8KLCSeU3;^QzJNqS z5{5rEAv#l(X?bvwxpU;2%pQftF`YFgrD1jt2^~Mt^~G>T*}A$yZc@(k9orlCGv&|1 zWWvVgiJsCAtamuAYT~nzs?TQFt<1LSEx!@e0~@yd6$b5!Zm(FpBl;(Cn>2vF?k zOm#TTjFwd2D-CyA!mqR^?#Uwm{NBemP>(pHmM}9;;8`c&+_o3#E5m)JzfwN?(f-a4 zyd%xZc^oQx3XT?vcCqCX&Qrk~nu;fxs@JUoyVoi5fqpi&bUhQ2y!Ok2pzsFR(M(|U zw3E+kH_zmTRQ9dUMZWRE%Zakiwc+lgv7Z%|YO9YxAy`y28`Aw;WU6HXBgU7fl@dnt z-fFBV)}H-gqP!1;V@Je$WcbYre|dRdp{xt!7sL3Eoa%IA`5CAA%;Wq8PktwPdULo! z8!sB}Qt8#jH9Sh}QiUtEPZ6H0b*7qEKGJ%ITZ|vH)5Q^2m<7o3#Z>AKc%z7_u`rXA zqrCy{-{8;9>dfllLu$^M5L z-hXs))h*qz%~ActwkIA(qOVBZl2v4lwbM>9l70Y`+T*elINFqt#>OaVWoja8RMsep z6Or3f=oBnA3vDbn*+HNZP?8LsH2MY)x%c13@(XfuGR}R?Nu<|07{$+Lc3$Uv^I!MQ z>6qWgd-=aG2Y^24g4{Bw9ueOR)(9h`scImD=86dD+MnSN4$6 z^U*o_mE-6Rk~Dp!ANp#5RE9n*LG(Vg`1)g6!(XtDzsov$Dvz|Gv1WU68J$CkshQhS zCrc|cdkW~UK}5NeaWj^F4MSgFM+@fJd{|LLM)}_O<{rj z+?*Lm?owq?IzC%U%9EBga~h-cJbIu=#C}XuWN>OLrc%M@Gu~kFEYUi4EC6l#PR2JS zQUkGKrrS#6H7}2l0F@S11DP`@pih0WRkRJl#F;u{c&ZC{^$Z+_*lB)r)-bPgRFE;* zl)@hK4`tEP=P=il02x7-C7p%l=B`vkYjw?YhdJU9!P!jcmY$OtC^12w?vy3<<=tlY zUwHJ_0lgWN9vf>1%WACBD{UT)1qHQSE2%z|JHvP{#INr13jM}oYv_5#xsnv9`)UAO zuwgyV4YZ;O)eSc3(mka6=aRohi!HH@I#xq7kng?Acdg7S4vDJb6cI5fw?2z%3yR+| zU5v@Hm}vy;${cBp&@D=HQ9j7NcFaOYL zj-wV=eYF{|XTkFNM2uz&T8uH~;)^Zo!=KP)EVyH6s9l1~4m}N%XzPpduPg|h-&lL` zAXspR0YMOKd2yO)eMFFJ4?sQ&!`dF&!|niH*!^*Ml##o0M(0*uK9&yzekFi$+mP9s z>W9d%Jb)PtVi&-Ha!o~Iyh@KRuKpQ@)I~L*d`{O8!kRObjO7=n+Gp36fe!66neh+7 zW*l^0tTKjLLzr`x4`_8&on?mjW-PzheTNox8Hg7Nt@*SbE-%kP2hWYmHu#Fn@Q^J(SsPUz*|EgOoZ6byg3ew88UGdZ>9B2Tq=jF72ZaR=4u%1A6Vm{O#?@dD!(#tmR;eP(Fu z{$0O%=Vmua7=Gjr8nY%>ul?w=FJ76O2js&17W_iq2*tb!i{pt#`qZB#im9Rl>?t?0c zicIC}et_4d+CpVPx)i4~$u6N-QX3H77ez z?ZdvXifFk|*F8~L(W$OWM~r`pSk5}#F?j_5u$Obu9lDWIknO^AGu+Blk7!9Sb;NjS zncZA?qtASdNtzQ>z7N871IsPAk^CC?iIL}+{K|F@BuG2>qQ;_RUYV#>hHO(HUPpk@ z(bn~4|F_jiZi}Sad;_7`#4}EmD<1EiIxa48QjUuR?rC}^HRocq`OQPM@aHVKP9E#q zy%6bmHygCpIddPjE}q_DPC`VH_2m;Eey&ZH)E6xGeStOK7H)#+9y!%-Hm|QF6w#A( zIC0Yw%9j$s-#odxG~C*^MZ?M<+&WJ+@?B_QPUyTg9DJGtQN#NIC&-XddRsf3n^AL6 zT@P|H;PvN;ZpL0iv$bRb7|J{0o!Hq+S>_NrH4@coZtBJu#g8#CbR7|#?6uxi8d+$g z87apN>EciJZ`%Zv2**_uiET9Vk{pny&My;+WfGDw4EVL#B!Wiw&M|A8f1A@ z(yFQS6jfbH{b8Z-S7D2?Ixl`j0{+ZnpT=;KzVMLW{B$`N?Gw^Fl0H6lT61%T2AU**!sX0u?|I(yoy&Xveg7XBL&+>n6jd1##6d>TxE*Vj=8lWiG$4=u{1UbAa5QD>5_ z;Te^42v7K6Mmu4IWT6Rnm>oxrl~b<~^e3vbj-GCdHLIB_>59}Ya+~OF68NiH=?}2o zP(X7EN=quQn&)fK>M&kqF|<_*H`}c zk=+x)GU>{Af#vx&s?`UKUsz})g^Pc&?Ka@t5$n$bqf6{r1>#mWx6Ep>9|A}VmWRnowVo`OyCr^fHsf# zQjQ3Ttp7y#iQY8l`zEUW)(@gGQdt(~rkxlkefskT(t%@i8=|p1Y9Dc5bc+z#n$s13 zGJk|V0+&Ekh(F};PJzQKKo+FG@KV8a<$gmNSD;7rd_nRdc%?9)p!|B-@P~kxQG}~B zi|{0}@}zKC(rlFUYp*dO1RuvPC^DQOkX4<+EwvBAC{IZQdYxoq1Za!MW7%p7gGr=j zzWnAq%)^O2$eItftC#TTSArUyL$U54-O7e|)4_7%Q^2tZ^0-d&3J1}qCzR4dWX!)4 zzIEKjgnYgMus^>6uw4Jm8ga6>GBtMjpNRJ6CP~W=37~||gMo_p@GA@#-3)+cVYnU> zE5=Y4kzl+EbEh%dhQokB{gqNDqx%5*qBusWV%!iprn$S!;oN_6E3?0+umADVs4ako z?P+t?m?};gev9JXQ#Q&KBpzkHPde_CGu-y z<{}RRAx=xlv#mVi+Ibrgx~ujW$h{?zPfhz)Kp7kmYS&_|97b&H&1;J-mzrBWAvY} zh8-I8hl_RK2+nnf&}!W0P+>5?#?7>npshe<1~&l_xqKd0_>dl_^RMRq@-Myz&|TKZBj1=Q()) zF{dBjv5)h=&Z)Aevx}+i|7=R9rG^Di!sa)sZCl&ctX4&LScQ-kMncgO(9o6W6)yd< z@Rk!vkja*X_N3H=BavGoR0@u0<}m-7|2v!0+2h~S2Q&a=lTH91OJsvms2MT~ zY=c@LO5i`mLpBd(vh|)I&^A3TQLtr>w=zoyzTd=^f@TPu&+*2MtqE$Avf>l>}V|3-8Fp2hzo3y<)hr_|NO(&oSD z!vEjTWBxbKTiShVl-U{n*B3#)3a8$`{~Pk}J@elZ=>Pqp|MQ}jrGv7KrNcjW%TN_< zZz8kG{#}XoeWf7qY?D)L)8?Q-b@Na&>i=)(@uNo zr;cH98T3$Iau8Hn*@vXi{A@YehxDE2zX~o+RY`)6-X{8~hMpc#C`|8y> zU8Mnv5A0dNCf{Ims*|l-^ z(MRp{qoGohB34|ggDI*p!Aw|MFyJ|v+<+E3brfrI)|+l3W~CQLPbnF@G0)P~Ly!1TJLp}xh8uW`Q+RB-v`MRYZ9Gam3cM%{ zb4Cb*f)0deR~wtNb*8w-LlIF>kc7DAv>T0D(a3@l`k4TFnrO+g9XH7;nYOHxjc4lq zMmaW6qpgAgy)MckYMhl?>sq;-1E)-1llUneeA!ya9KM$)DaNGu57Z5aE>=VST$#vb zFo=uRHr$0M{-ha>h(D_boS4zId;3B|Tpqo|?B?Z@I?G(?&Iei+-{9L_A9=h=Qfn-U z1wIUnQe9!z%_j$F_{rf&`ZFSott09gY~qrf@g3O=Y>vzAnXCyL!@(BqWa)Zqt!#_k zfZHuwS52|&&)aK;CHq9V-t9qt0au{$#6c*R#e5n3rje0hic7c7m{kW$p(_`wB=Gw7 z4k`1Hi;Mc@yA7dp@r~?@rfw)TkjAW++|pkfOG}0N|2guek}j8Zen(!+@7?qt_7ndX zB=BG6WJ31#F3#Vk3=aQr8T)3`{=p9nBHlKzE0I@v`{vJ}h8pd6vby&VgFhzH|q;=aonunAXL6G2y(X^CtAhWr*jI zGjpY@raZDQkg*aMq}Ni6cRF z{oWv}5`nhSAv>usX}m^GHt`f(t8@zHc?K|y5Zi=4G*UG1Sza{$Dpj%X8 zzEXaKT5N6F5j4J|w#qlZP!zS7BT)9b+!ZSJdToqJts1c!)fwih4d31vfb{}W)EgcA zH2pZ^8_k$9+WD2n`6q5XbOy8>3pcYH9 z07eUB+p}YD@AH!}p!iKv><2QF-Y^&xx^PAc1F13A{nUeCDg&{hnix#FiO!fe(^&%Qcux!h znu*S!s$&nnkeotYsDthh1dq(iQrE|#f_=xVgfiiL&-5eAcC-> z5L0l|DVEM$#ulf{bj+Y~7iD)j<~O8CYM8GW)dQGq)!mck)FqoL^X zwNdZb3->hFrbHFm?hLvut-*uK?zXn3q1z|UX{RZ;-WiLoOjnle!xs+W0-8D)kjU#R z+S|A^HkRg$Ij%N4v~k`jyHffKaC~=wg=9)V5h=|kLQ@;^W!o2^K+xG&2n`XCd>OY5Ydi= zgHH=lgy++erK8&+YeTl7VNyVm9-GfONlSlVb3)V9NW5tT!cJ8d7X)!b-$fb!s76{t z@d=Vg-5K_sqHA@Zx-L_}wVnc@L@GL9_K~Zl(h5@AR#FAiKad8~KeWCo@mgXIQ#~u{ zgYFwNz}2b6Vu@CP0XoqJ+dm8px(5W5-Jpis97F`+KM)TuP*X8H@zwiVKDKGVp59pI zifNHZr|B+PG|7|Y<*tqap0CvG7tbR1R>jn70t1X`XJixiMVcHf%Ez*=xm1(CrTSDt z0cle!+{8*Ja&EOZ4@$qhBuKQ$U95Q%rc7tg$VRhk?3=pE&n+T3upZg^ZJc9~c2es% zh7>+|mrmA-p&v}|OtxqmHIBgUxL~^0+cpfkSK2mhh+4b=^F1Xgd2)}U*Yp+H?ls#z zrLxWg_hm}AfK2XYWr!rzW4g;+^^&bW%LmbtRai9f3PjU${r@n`JThy-cphbcwn)rq9{A$Ht`lmYKxOacy z6v2R(?gHhD5@&kB-Eg?4!hAoD7~(h>(R!s1c1Hx#s9vGPePUR|of32bS`J5U5w{F) z>0<^ktO2UHg<0{oxkdOQ;}coZDQph8p6ruj*_?uqURCMTac;>T#v+l1Tc~%^k-Vd@ zkc5y35jVNc49vZpZx;gG$h{%yslDI%Lqga1&&;mN{Ush1c7p>7e-(zp}6E7f-XmJb4nhk zb8zS+{IVbL$QVF8pf8}~kQ|dHJAEATmmnrb_wLG}-yHe>W|A&Y|;muy-d^t^<&)g5SJfaTH@P1%euONny=mxo+C z4N&w#biWY41r8k~468tvuYVh&XN&d#%QtIf9;iVXfWY)#j=l`&B~lqDT@28+Y!0E+MkfC}}H*#(WKKdJJq=O$vNYCb(ZG@p{fJgu;h z21oHQ(14?LeT>n5)s;uD@5&ohU!@wX8w*lB6i@GEH0pM>YTG+RAIWZD;4#F1&F%Jp zXZUml2sH0!lYJT?&sA!qwez6cXzJEd(1ZC~kT5kZSp7(@=H2$Azb_*W&6aA|9iwCL zdX7Q=42;@dspHDwYE?miGX#L^3xD&%BI&fN9^;`v4OjQXPBaBmOF1;#C)8XA(WFlH zycro;DS2?(G&6wkr6rqC>rqDv3nfGw3hmN_9Al>TgvmGsL8_hXx09};l9Ow@)F5@y z#VH5WigLDwZE4nh^7&@g{1FV^UZ%_LJ-s<{HN*2R$OPg@R~Z`c-ET*2}XB@9xvAjrK&hS=f|R8Gr9 zr|0TGOsI7RD+4+2{ZiwdVD@2zmg~g@^D--YL;6UYGSM8i$NbQr4!c7T9rg!8;TM0E zT#@?&S=t>GQm)*ua|?TLT2ktj#`|R<_*FAkOu2Pz$wEc%-=Y9V*$&dg+wIei3b*O8 z2|m$!jJG!J!ZGbbIa!(Af~oSyZV+~M1qGvelMzPNE_%5?c2>;MeeG2^N?JDKjFYCy z7SbPWH-$cWF9~fX%9~v99L!G(wi!PFp>rB!9xj7=Cv|F+7CsGNwY0Q_J%FID%C^CBZQfJ9K(HK%k31j~e#&?hQ zNuD6gRkVckU)v+53-fc} z7ZCzYN-5RG4H7;>>Hg?LU9&5_aua?A0)0dpew1#MMlu)LHe(M;OHjHIUl7|%%)YPo z0cBk;AOY00%Fe6heoN*$(b<)Cd#^8Iu;-2v@>cE-OB$icUF9EEoaC&q8z9}jMTT2I z8`9;jT%z0;dy4!8U;GW{i`)3!c6&oWY`J3669C!tM<5nQFFrFRglU8f)5Op$GtR-3 zn!+SPCw|04sv?%YZ(a7#L?vsdr7ss@WKAw&A*}-1S|9~cL%uA+E~>N6QklFE>8W|% zyX-qAUGTY1hQ-+um`2|&ji0cY*(qN!zp{YpDO-r>jPk*yuVSay<)cUt`t@&FPF_&$ zcHwu1(SQ`I-l8~vYyUxm@D1UEdFJ$f5Sw^HPH7b!9 zzYT3gKMF((N(v0#4f_jPfVZ=ApN^jQJe-X$`A?X+vWjLn_%31KXE*}5_}d8 zw_B1+a#6T1?>M{ronLbHIlEsMf93muJ7AH5h%;i99<~JX^;EAgEB1uHralD*!aJ@F zV2ruuFe9i2Q1C?^^kmVy921eb=tLDD43@-AgL^rQ3IO9%+vi_&R2^dpr}x{bCVPej z7G0-0o64uyWNtr*loIvslyo0%)KSDDKjfThe0hcqs)(C-MH1>bNGBDRTW~scy_{w} zp^aq8Qb!h9Lwielq%C1b8=?Z=&U)ST&PHbS)8Xzjh2DF?d{iAv)Eh)wsUnf>UtXN( zL7=$%YrZ#|^c{MYmhn!zV#t*(jdmYdCpwqpZ{v&L8KIuKn`@IIZfp!uo}c;7J57N` zAxyZ-uA4=Gzl~Ovycz%MW9ZL7N+nRo&1cfNn9(1H5eM;V_4Z_qVann7F>5f>%{rf= zPBZFaV@_Sobl?Fy&KXyzFDV*FIdhS5`Uc~S^Gjo)aiTHgn#<0C=9o-a-}@}xDor;D zZyZ|fvf;+=3MZd>SR1F^F`RJEZo+|MdyJYQAEauKu%WDol~ayrGU3zzbHKsnHKZ*z zFiwUkL@DZ>!*x05ql&EBq@_Vqv83&?@~q5?lVmffQZ+V-=qL+!u4Xs2Z2zdCQ3U7B&QR9_Iggy} z(om{Y9eU;IPe`+p1ifLx-XWh?wI)xU9ik+m#g&pGdB5Bi<`PR*?92lE0+TkRuXI)z z5LP!N2+tTc%cB6B1F-!fj#}>S!vnpgVU~3!*U1ej^)vjUH4s-bd^%B=ItQqDCGbrEzNQi(dJ`J}-U=2{7-d zK8k^Rlq2N#0G?9&1?HSle2vlkj^KWSBYTwx`2?9TU_DX#J+f+qLiZCqY1TXHFxXZqYMuD@RU$TgcnCC{_(vwZ-*uX)~go#%PK z@}2Km_5aQ~(<3cXeJN6|F8X_1@L%@xTzs}$_*E|a^_URF_qcF;Pfhoe?FTFwvjm1o z8onf@OY@jC2tVcMaZS;|T!Ks(wOgPpRzRnFS-^RZ4E!9dsnj9sFt609a|jJbb1Dt@ z<=Gal2jDEupxUSwWu6zp<<&RnAA;d&4gKVG0iu6g(DsST(4)z6R)zDpfaQ}v{5ARt zyhwvMtF%b-YazR5XLz+oh=mn;y-Mf2a8>7?2v8qX;19y?b>Z5laGHvzH;Nu9S`B8} zI)qN$GbXIQ1VL3lnof^6TS~rvPVg4V?Dl2Bb*K2z4E{5vy<(@@K_cN@U>R!>aUIRnb zL*)=787*cs#zb31zBC49x$`=fkQbMAef)L2$dR{)6BAz!t5U_B#1zZG`^neKSS22oJ#5B=gl%U=WeqL9REF2g zZnfCb0?quf?Ztj$VXvDSWoK`0L=Zxem2q}!XWLoT-kYMOx)!7fcgT35uC~0pySEme z`{wGWTkGr7>+Kb^n;W?BZH6ZP(9tQX%-7zF>vc2}LuWDI(9kh1G#7B99r4x6;_-V+k&c{nPUrR zAXJGRiMe~aup{0qzmLNjS_BC4cB#sXjckx{%_c&^xy{M61xEb>KW_AG5VFXUOjAG4 z^>Qlm9A#1N{4snY=(AmWzatb!ngqiqPbBZ7>Uhb3)dTkSGcL#&SH>iMO-IJBPua`u zo)LWZ>=NZLr758j{%(|uQuZ)pXq_4c!!>s|aDM9#`~1bzK3J1^^D#<2bNCccH7~-X}Ggi!pIIF>uFx%aPARGQsnC8ZQc8lrQ5o~smqOg>Ti^GNme94*w z)JZy{_{#$jxGQ&`M z!OMvZMHR>8*^>eS%o*6hJwn!l8VOOjZQJvh)@tnHVW&*GYPuxqXw}%M!(f-SQf`=L z5;=5w2;%82VMH6Xi&-K3W)o&K^+vJCepWZ-rW%+Dc6X3(){z$@4zjYxQ|}8UIojeC zYZpQ1dU{fy=oTr<4VX?$q)LP}IUmpiez^O&N3E_qPpchGTi5ZM6-2ScWlQq%V&R2Euz zO|Q0Hx>lY1Q1cW5xHv5!0OGU~PVEqSuy#fD72d#O`N!C;o=m+YioGu-wH2k6!t<~K zSr`E=W9)!g==~x9VV~-8{4ZN9{~-A9zJpRe%NGg$+MDuI-dH|b@BD)~>pPCGUNNzY zMDg||0@XGQgw`YCt5C&A{_+J}mvV9Wg{6V%2n#YSRN{AP#PY?1FF1#|vO_%e+#`|2*~wGAJaeRX6=IzFNeWhz6gJc8+(03Ph4y6ELAm=AkN7TOgMUEw*N{= z_)EIDQx5q22oUR+_b*tazu9+pX|n1c*IB-}{DqIj z-?E|ks{o3AGRNb;+iKcHkZvYJvFsW&83RAPs1Oh@IWy%l#5x2oUP6ZCtv+b|q>jsf zZ_9XO;V!>n`UxH1LvH8)L4?8raIvasEhkpQoJ`%!5rBs!0Tu(s_D{`4opB;57)pkX z4$A^8CsD3U5*!|bHIEqsn~{q+Ddj$ME@Gq4JXtgVz&7l{Ok!@?EA{B3P~NAqb9)4? zkQo30A^EbHfQ@87G5&EQTd`frrwL)&Yw?%-W@uy^Gn23%j?Y!Iea2xw<-f;esq zf%w5WN@E1}zyXtYv}}`U^B>W`>XPmdLj%4{P298|SisrE;7HvXX;A}Ffi8B#3Lr;1 zHt6zVb`8{#+e$*k?w8|O{Uh|&AG}|DG1PFo1i?Y*cQm$ZwtGcVgMwtBUDa{~L1KT-{jET4w60>{KZ27vXrHJ;fW{6| z=|Y4!&UX020wU1>1iRgB@Q#m~1^Z^9CG1LqDhYBrnx%IEdIty z!46iOoKlKs)c}newDG)rWUikD%j`)p z_w9Ph&e40=(2eBy;T!}*1p1f1SAUDP9iWy^u^Ubdj21Kn{46;GR+hwLO=4D11@c~V zI8x&(D({K~Df2E)Nx_yQvYfh4;MbMJ@Z}=Dt3_>iim~QZ*hZIlEs0mEb z_54+&*?wMD`2#vsQRN3KvoT>hWofI_Vf(^C1ff-Ike@h@saEf7g}<9T`W;HAne-Nd z>RR+&SP35w)xKn8^U$7))PsM!jKwYZ*RzEcG-OlTrX3}9a{q%#Un5E5W{{hp>w~;` zGky+3(vJvQyGwBo`tCpmo0mo((?nM8vf9aXrrY1Ve}~TuVkB(zeds^jEfI}xGBCM2 zL1|#tycSaWCurP+0MiActG3LCas@_@tao@(R1ANlwB$4K53egNE_;!&(%@Qo$>h`^1S_!hN6 z)vZtG$8fN!|BXBJ=SI>e(LAU(y(i*PHvgQ2llulxS8>qsimv7yL}0q_E5WiAz7)(f zC(ahFvG8&HN9+6^jGyLHM~$)7auppeWh_^zKk&C_MQ~8;N??OlyH~azgz5fe^>~7F zl3HnPN3z-kN)I$4@`CLCMQx3sG~V8hPS^}XDXZrQA>}mQPw%7&!sd(Pp^P=tgp-s^ zjl}1-KRPNWXgV_K^HkP__SR`S-|OF0bR-N5>I%ODj&1JUeAQ3$9i;B~$S6}*^tK?= z**%aCiH7y?xdY?{LgVP}S0HOh%0%LI$wRx;$T|~Y8R)Vdwa}kGWv8?SJVm^>r6+%I z#lj1aR94{@MP;t-scEYQWc#xFA30^}?|BeX*W#9OL;Q9#WqaaM546j5j29((^_8Nu z4uq}ESLr~r*O7E7$D{!k9W>`!SLoyA53i9QwRB{!pHe8um|aDE`Cg0O*{jmor)^t)3`>V>SWN-2VJcFmj^1?~tT=JrP`fVh*t zXHarp=8HEcR#vFe+1a%XXuK+)oFs`GDD}#Z+TJ}Ri`FvKO@ek2ayn}yaOi%(8p%2$ zpEu)v0Jym@f}U|-;}CbR=9{#<^z28PzkkTNvyKvJDZe+^VS2bES3N@Jq!-*}{oQlz z@8bgC_KnDnT4}d#&Cpr!%Yb?E!brx0!eVOw~;lLwUoz#Np%d$o%9scc3&zPm`%G((Le|6o1 zM(VhOw)!f84zG^)tZ1?Egv)d8cdNi+T${=5kV+j;Wf%2{3g@FHp^Gf*qO0q!u$=m9 zCaY`4mRqJ;FTH5`a$affE5dJrk~k`HTP_7nGTY@B9o9vvnbytaID;^b=Tzp7Q#DmD zC(XEN)Ktn39z5|G!wsVNnHi) z%^q94!lL|hF`IijA^9NR0F$@h7k5R^ljOW(;Td9grRN0Mb)l_l7##{2nPQ@?;VjXv zaLZG}yuf$r$<79rVPpXg?6iiieX|r#&`p#Con2i%S8*8F}(E) zI5E6c3tG*<;m~6>!&H!GJ6zEuhH7mkAzovdhLy;)q z{H2*8I^Pb}xC4s^6Y}6bJvMu=8>g&I)7!N!5QG$xseeU#CC?ZM-TbjsHwHgDGrsD= z{%f;@Sod+Ch66Ko2WF~;Ty)v>&x^aovCbCbD7>qF*!?BXmOV3(s|nxsb*Lx_2lpB7 zokUnzrk;P=T-&kUHO}td+Zdj!3n&NR?K~cRU zAXU!DCp?51{J4w^`cV#ye}(`SQhGQkkMu}O3M*BWt4UsC^jCFUy;wTINYmhD$AT;4 z?Xd{HaJjP`raZ39qAm;%beDbrLpbRf(mkKbANan7XsL>_pE2oo^$TgdidjRP!5-`% zv0d!|iKN$c0(T|L0C~XD0aS8t{*&#LnhE;1Kb<9&=c2B+9JeLvJr*AyyRh%@jHej=AetOMSlz^=!kxX>>B{2B1uIrQyfd8KjJ+DBy!h)~*(!|&L4^Q_07SQ~E zcemVP`{9CwFvPFu7pyVGCLhH?LhEVb2{7U+Z_>o25#+3<|8%1T^5dh}*4(kfJGry} zm%r#hU+__Z;;*4fMrX=Bkc@7|v^*B;HAl0((IBPPii%X9+u3DDF6%bI&6?Eu$8&aWVqHIM7mK6?Uvq$1|(-T|)IV<>e?!(rY zqkmO1MRaLeTR=)io(0GVtQT@s6rN%C6;nS3@eu;P#ry4q;^O@1ZKCJyp_Jo)Ty^QW z+vweTx_DLm{P-XSBj~Sl<%_b^$=}odJ!S2wAcxenmzFGX1t&Qp8Vxz2VT`uQsQYtdn&_0xVivIcxZ_hnrRtwq4cZSj1c-SG9 z7vHBCA=fd0O1<4*=lu$6pn~_pVKyL@ztw1swbZi0B?spLo56ZKu5;7ZeUml1Ws1?u zqMf1p{5myAzeX$lAi{jIUqo1g4!zWLMm9cfWcnw`k6*BR^?$2(&yW?>w;G$EmTA@a z6?y#K$C~ZT8+v{87n5Dm&H6Pb_EQ@V0IWmG9cG=O;(;5aMWWrIPzz4Q`mhK;qQp~a z+BbQrEQ+w{SeiuG-~Po5f=^EvlouB@_|4xQXH@A~KgpFHrwu%dwuCR)=B&C(y6J4J zvoGk9;lLs9%iA-IJGU#RgnZZR+@{5lYl8(e1h6&>Vc_mvg0d@);X zji4T|n#lB!>pfL|8tQYkw?U2bD`W{na&;*|znjmalA&f;*U++_aBYerq;&C8Kw7mI z7tsG*?7*5j&dU)Lje;^{D_h`%(dK|pB*A*1(Jj)w^mZ9HB|vGLkF1GEFhu&rH=r=8 zMxO42e{Si6$m+Zj`_mXb&w5Q(i|Yxyg?juUrY}78uo@~3v84|8dfgbPd0iQJRdMj< zncCNGdMEcsxu#o#B5+XD{tsg*;j-eF8`mp~K8O1J!Z0+>0=7O=4M}E?)H)ENE;P*F z$Ox?ril_^p0g7xhDUf(q652l|562VFlC8^r8?lQv;TMvn+*8I}&+hIQYh2 z1}uQQaag&!-+DZ@|C+C$bN6W;S-Z@)d1|en+XGvjbOxCa-qAF*LA=6s(Jg+g;82f$ z(Vb)8I)AH@cdjGFAR5Rqd0wiNCu!xtqWbcTx&5kslzTb^7A78~Xzw1($UV6S^VWiP zFd{Rimd-0CZC_Bu(WxBFW7+k{cOW7DxBBkJdJ;VsJ4Z@lERQr%3eVv&$%)b%<~ zCl^Y4NgO}js@u{|o~KTgH}>!* z_iDNqX2(As7T0xivMH|3SC1ivm8Q}6Ffcd7owUKN5lHAtzMM4<0v+ykUT!QiowO;`@%JGv+K$bBx@*S7C8GJVqQ_K>12}M`f_Ys=S zKFh}HM9#6Izb$Y{wYzItTy+l5U2oL%boCJn?R3?jP@n$zSIwlmyGq30Cw4QBO|14` zW5c);AN*J3&eMFAk$SR~2k|&+&Bc$e>s%c{`?d~85S-UWjA>DS5+;UKZ}5oVa5O(N zqqc@>)nee)+4MUjH?FGv%hm2{IlIF-QX}ym-7ok4Z9{V+ZHVZQl$A*x!(q%<2~iVv znUa+BX35&lCb#9VE-~Y^W_f;Xhl%vgjwdjzMy$FsSIj&ok}L+X`4>J=9BkN&nu^E*gbhj3(+D>C4E z@Fwq_=N)^bKFSHTzZk?-gNU$@l}r}dwGyh_fNi=9b|n}J>&;G!lzilbWF4B}BBq4f zYIOl?b)PSh#XTPp4IS5ZR_2C!E)Z`zH0OW%4;&~z7UAyA-X|sh9@~>cQW^COA9hV4 zXcA6qUo9P{bW1_2`eo6%hgbN%(G-F1xTvq!sc?4wN6Q4`e9Hku zFwvlAcRY?6h^Fj$R8zCNEDq8`=uZB8D-xn)tA<^bFFy}4$vA}Xq0jAsv1&5!h!yRA zU()KLJya5MQ`q&LKdH#fwq&(bNFS{sKlEh_{N%{XCGO+po#(+WCLmKW6&5iOHny>g z3*VFN?mx!16V5{zyuMWDVP8U*|BGT$(%IO|)?EF|OI*sq&RovH!N%=>i_c?K*A>>k zyg1+~++zY4Q)J;VWN0axhoIKx;l&G$gvj(#go^pZskEVj8^}is3Jw26LzYYVos0HX zRPvmK$dVxM8(Tc?pHFe0Z3uq){{#OK3i-ra#@+;*=ui8)y6hsRv z4Fxx1c1+fr!VI{L3DFMwXKrfl#Q8hfP@ajgEau&QMCxd{g#!T^;ATXW)nUg&$-n25 zruy3V!!;{?OTobo|0GAxe`Acn3GV@W=&n;~&9 zQM>NWW~R@OYORkJAo+eq1!4vzmf9K%plR4(tB@TR&FSbDoRgJ8qVcH#;7lQub*nq&?Z>7WM=oeEVjkaG zT#f)=o!M2DO5hLR+op>t0CixJCIeXH*+z{-XS|%jx)y(j&}Wo|3!l7{o)HU3m7LYyhv*xF&tq z%IN7N;D4raue&&hm0xM=`qv`+TK@;_xAcGKuK(2|75~ar2Yw)geNLSmVxV@x89bQu zpViVKKnlkwjS&&c|-X6`~xdnh}Ps)Hs z4VbUL^{XNLf7_|Oi>tA%?SG5zax}esF*FH3d(JH^Gvr7Rp*n=t7frH!U;!y1gJB^i zY_M$KL_}mW&XKaDEi9K-wZR|q*L32&m+2n_8lq$xRznJ7p8}V>w+d@?uB!eS3#u<} zIaqi!b!w}a2;_BfUUhGMy#4dPx>)_>yZ`ai?Rk`}d0>~ce-PfY-b?Csd(28yX22L% zI7XI>OjIHYTk_@Xk;Gu^F52^Gn6E1&+?4MxDS2G_#PQ&yXPXP^<-p|2nLTb@AAQEY zI*UQ9Pmm{Kat}wuazpjSyXCdnrD&|C1c5DIb1TnzF}f4KIV6D)CJ!?&l&{T)e4U%3HTSYqsQ zo@zWB1o}ceQSV)<4G<)jM|@@YpL+XHuWsr5AYh^Q{K=wSV99D~4RRU52FufmMBMmd z_H}L#qe(}|I9ZyPRD6kT>Ivj&2Y?qVZq<4bG_co_DP`sE*_Xw8D;+7QR$Uq(rr+u> z8bHUWbV19i#)@@G4bCco@Xb<8u~wVDz9S`#k@ciJtlu@uP1U0X?yov8v9U3VOig2t zL9?n$P3=1U_Emi$#slR>N5wH-=J&T=EdUHA}_Z zZIl3nvMP*AZS9{cDqFanrA~S5BqxtNm9tlu;^`)3X&V4tMAkJ4gEIPl= zoV!Gyx0N{3DpD@)pv^iS*dl2FwANu;1;%EDl}JQ7MbxLMAp>)UwNwe{=V}O-5C*>F zu?Ny+F64jZn<+fKjF01}8h5H_3pey|;%bI;SFg$w8;IC<8l|3#Lz2;mNNik6sVTG3 z+Su^rIE#40C4a-587$U~%KedEEw1%r6wdvoMwpmlXH$xPnNQN#f%Z7|p)nC>WsuO= z4zyqapLS<8(UJ~Qi9d|dQijb_xhA2)v>la)<1md5s^R1N&PiuA$^k|A<+2C?OiHbj z>Bn$~t)>Y(Zb`8hW7q9xQ=s>Rv81V+UiuZJc<23HplI88isqRCId89fb`Kt|CxVIg znWcwprwXnotO>3s&Oypkte^9yJjlUVVxSe%_xlzmje|mYOVPH^vjA=?6xd0vaj0Oz zwJ4OJNiFdnHJX3rw&inskjryukl`*fRQ#SMod5J|KroJRsVXa5_$q7whSQ{gOi*s0 z1LeCy|JBWRsDPn7jCb4s(p|JZiZ8+*ExC@Vj)MF|*Vp{B(ziccSn`G1Br9bV(v!C2 z6#?eqpJBc9o@lJ#^p-`-=`4i&wFe>2)nlPK1p9yPFzJCzBQbpkcR>={YtamIw)3nt z(QEF;+)4`>8^_LU)_Q3 zC5_7lgi_6y>U%m)m@}Ku4C}=l^J=<<7c;99ec3p{aR+v=diuJR7uZi%aQv$oP?dn?@6Yu_+*^>T0ptf(oobdL;6)N-I!TO`zg^Xbv3#L0I~sn@WGk-^SmPh5>W+LB<+1PU}AKa?FCWF|qMNELOgdxR{ zbqE7@jVe+FklzdcD$!(A$&}}H*HQFTJ+AOrJYnhh}Yvta(B zQ_bW4Rr;R~&6PAKwgLWXS{Bnln(vUI+~g#kl{r+_zbngT`Y3`^Qf=!PxN4IYX#iW4 zucW7@LLJA9Zh3(rj~&SyN_pjO8H&)|(v%!BnMWySBJV=eSkB3YSTCyIeJ{i;(oc%_hk{$_l;v>nWSB)oVeg+blh=HB5JSlG_r7@P z3q;aFoZjD_qS@zygYqCn=;Zxjo!?NK!%J$ z52lOP`8G3feEj+HTp@Tnn9X~nG=;tS+z}u{mQX_J0kxtr)O30YD%oo)L@wy`jpQYM z@M>Me=95k1p*FW~rHiV1CIfVc{K8r|#Kt(ApkXKsDG$_>76UGNhHExFCw#Ky9*B-z zNq2ga*xax!HMf_|Vp-86r{;~YgQKqu7%szk8$hpvi_2I`OVbG1doP(`gn}=W<8%Gn z%81#&WjkH4GV;4u43EtSW>K_Ta3Zj!XF?;SO3V#q=<=>Tc^@?A`i;&`-cYj|;^ zEo#Jl5zSr~_V-4}y8pnufXLa80vZY4z2ko7fj>DR)#z=wWuS1$$W!L?(y}YC+yQ|G z@L&`2upy3f>~*IquAjkVNU>}c10(fq#HdbK$~Q3l6|=@-eBbo>B9(6xV`*)sae58*f zym~RRVx;xoCG3`JV`xo z!lFw)=t2Hy)e!IFs?0~7osWk(d%^wxq&>_XD4+U#y&-VF%4z?XH^i4w`TxpF{`XhZ z%G}iEzf!T(l>g;W9<~K+)$g!{UvhW{E0Lis(S^%I8OF&%kr!gJ&fMOpM=&=Aj@wuL zBX?*6i51Qb$uhkwkFYkaD_UDE+)rh1c;(&Y=B$3)J&iJfQSx!1NGgPtK!$c9OtJuu zX(pV$bfuJpRR|K(dp@^j}i&HeJOh@|7lWo8^$*o~Xqo z5Sb+!EtJ&e@6F+h&+_1ETbg7LfP5GZjvIUIN3ibCOldAv z)>YdO|NH$x7AC8dr=<2ekiY1%fN*r~e5h6Yaw<{XIErujKV~tiyrvV_DV0AzEknC- zR^xKM3i<1UkvqBj3C{wDvytOd+YtDSGu!gEMg+!&|8BQrT*|p)(dwQLEy+ zMtMzij3zo40)CA!BKZF~yWg?#lWhqD3@qR)gh~D{uZaJO;{OWV8XZ_)J@r3=)T|kt zUS1pXr6-`!Z}w2QR7nP%d?ecf90;K_7C3d!UZ`N(TZoWNN^Q~RjVhQG{Y<%E1PpV^4 z-m-K+$A~-+VDABs^Q@U*)YvhY4Znn2^w>732H?NRK(5QSS$V@D7yz2BVX4)f5A04~$WbxGOam22>t&uD)JB8-~yiQW6ik;FGblY_I>SvB_z2?PS z*Qm&qbKI{H1V@YGWzpx`!v)WeLT02};JJo*#f$a*FH?IIad-^(;9XC#YTWN6;Z6+S zm4O1KH=#V@FJw7Pha0!9Vb%ZIM$)a`VRMoiN&C|$YA3~ZC*8ayZRY^fyuP6$n%2IU z$#XceYZeqLTXw(m$_z|33I$B4k~NZO>pP6)H_}R{E$i%USGy{l{-jOE;%CloYPEU+ zRFxOn4;7lIOh!7abb23YKD+_-?O z0FP9otcAh+oSj;=f#$&*ExUHpd&e#bSF%#8*&ItcL2H$Sa)?pt0Xtf+t)z$_u^wZi z44oE}r4kIZGy3!Mc8q$B&6JqtnHZ>Znn!Zh@6rgIu|yU+zG8q`q9%B18|T|oN3zMq z`l&D;U!OL~%>vo&q0>Y==~zLiCZk4v%s_7!9DxQ~id1LLE93gf*gg&2$|hB#j8;?3 z5v4S;oM6rT{Y;I+#FdmNw z){d%tNM<<#GN%n9ox7B=3#;u7unZ~tLB_vRZ52a&2=IM)2VkXm=L+Iqq~uk#Dug|x z>S84e+A7EiOY5lj*!q?6HDkNh~0g;0Jy(al!ZHHDtur9T$y-~)94HelX1NHjXWIM7UAe}$?jiz z9?P4`I0JM=G5K{3_%2jPLC^_Mlw?-kYYgb7`qGa3@dn|^1fRMwiyM@Ch z;CB&o7&&?c5e>h`IM;Wnha0QKnEp=$hA8TJgR-07N~U5(>9vJzeoFsSRBkDq=x(YgEMpb=l4TDD`2 zwVJpWGTA_u7}?ecW7s6%rUs&NXD3+n;jB86`X?8(l3MBo6)PdakI6V6a}22{)8ilT zM~T*mU}__xSy|6XSrJ^%lDAR3Lft%+yxC|ZUvSO_nqMX!_ul3;R#*{~4DA=h$bP)%8Yv9X zyp><|e8=_ttI}ZAwOd#dlnSjck#6%273{E$kJuCGu=I@O)&6ID{nWF5@gLb16sj|&Sb~+du4e4O_%_o`Ix4NRrAsyr1_}MuP94s>de8cH-OUkVPk3+K z&jW)It9QiU-ti~AuJkL`XMca8Oh4$SyJ=`-5WU<{cIh+XVH#e4d&zive_UHC!pN>W z3TB;Mn5i)9Qn)#6@lo4QpI3jFYc0~+jS)4AFz8fVC;lD^+idw^S~Qhq>Tg(!3$yLD zzktzoFrU@6s4wwCMz}edpF5i5Q1IMmEJQHzp(LAt)pgN3&O!&d?3W@6U4)I^2V{;- z6A(?zd93hS*uQmnh4T)nHnE{wVhh(=MMD(h(P4+^p83Om6t<*cUW>l(qJzr%5vp@K zN27ka(L{JX=1~e2^)F^i=TYj&;<7jyUUR2Bek^A8+3Up*&Xwc{)1nRR5CT8vG>ExV zHnF3UqXJOAno_?bnhCX-&kwI~Ti8t4`n0%Up>!U`ZvK^w2+0Cs-b9%w%4`$+To|k= zKtgc&l}P`*8IS>8DOe?EB84^kx4BQp3<7P{Pq}&p%xF_81pg!l2|u=&I{AuUgmF5n zJQCTLv}%}xbFGYtKfbba{CBo)lWW%Z>i(_NvLhoQZ*5-@2l&x>e+I~0Nld3UI9tdL zRzu8}i;X!h8LHVvN?C+|M81e>Jr38%&*9LYQec9Ax>?NN+9(_>XSRv&6hlCYB`>Qm z1&ygi{Y()OU4@D_jd_-7vDILR{>o|7-k)Sjdxkjgvi{@S>6GqiF|o`*Otr;P)kLHN zZkpts;0zw_6;?f(@4S1FN=m!4^mv~W+lJA`&7RH%2$)49z0A+8@0BCHtj|yH--AEL z0tW6G%X-+J+5a{5*WKaM0QDznf;V?L5&uQw+yegDNDP`hA;0XPYc6e0;Xv6|i|^F2WB)Z$LR|HR4 zTQsRAby9(^Z@yATyOgcfQw7cKyr^3Tz7lc7+JEwwzA7)|2x+PtEb>nD(tpxJQm)Kn zW9K_*r!L%~N*vS8<5T=iv|o!zTe9k_2jC_j*7ik^M_ zaf%k{WX{-;0*`t`G!&`eW;gChVXnJ-Rn)To8vW-?>>a%QU1v`ZC=U)f8iA@%JG0mZ zDqH;~mgBnrCP~1II<=V9;EBL)J+xzCoiRBaeH&J6rL!{4zIY8tZka?_FBeQeNO3q6 zyG_alW54Ba&wQf{&F1v-r1R6ID)PTsqjIBc+5MHkcW5Fnvi~{-FjKe)t1bl}Y;z@< z=!%zvpRua>>t_x}^}z0<7MI!H2v6|XAyR9!t50q-A)xk0nflgF4*OQlCGK==4S|wc zRMsSscNhRzHMBU8TdcHN!q^I}x0iXJ%uehac|Zs_B$p@CnF)HeXPpB_Za}F{<@6-4 zl%kml@}kHQ(ypD8FsPJ2=14xXJE|b20RUIgs!2|R3>LUMGF6X*B_I|$`Qg=;zm7C z{mEDy9dTmPbued7mlO@phdmAmJ7p@GR1bjCkMw6*G7#4+`k>fk1czdJUB!e@Q(~6# zwo%@p@V5RL0ABU2LH7Asq^quDUho@H>eTZH9f*no9fY0T zD_-9px3e}A!>>kv5wk91%C9R1J_Nh!*&Kk$J3KNxC}c_@zlgpJZ+5L)Nw|^p=2ue}CJtm;uj*Iqr)K})kA$xtNUEvX;4!Px*^&9T_`IN{D z{6~QY=Nau6EzpvufB^hflc#XIsSq0Y9(nf$d~6ZwK}fal92)fr%T3=q{0mP-EyP_G z)UR5h@IX}3Qll2b0oCAcBF>b*@Etu*aTLPU<%C>KoOrk=x?pN!#f_Og-w+;xbFgjQ zXp`et%lDBBh~OcFnMKMUoox0YwBNy`N0q~bSPh@+enQ=4RUw1) zpovN`QoV>vZ#5LvC;cl|6jPr}O5tu!Ipoyib8iXqy}TeJ;4+_7r<1kV0v5?Kv>fYp zg>9L`;XwXa&W7-jf|9~uP2iyF5`5AJ`Q~p4eBU$MCC00`rcSF>`&0fbd^_eqR+}mK z4n*PMMa&FOcc)vTUR zlDUAn-mh`ahi_`f`=39JYTNVjsTa_Y3b1GOIi)6dY)D}xeshB0T8Eov5%UhWd1)u}kjEQ|LDo{tqKKrYIfVz~@dp!! zMOnah@vp)%_-jDTUG09l+;{CkDCH|Q{NqX*uHa1YxFShy*1+;J`gywKaz|2Q{lG8x zP?KBur`}r`!WLKXY_K;C8$EWG>jY3UIh{+BLv0=2)KH%P}6xE2kg)%(-uA6lC?u8}{K(#P*c zE9C8t*u%j2r_{;Rpe1A{9nNXU;b_N0vNgyK!EZVut~}+R2rcbsHilqsOviYh-pYX= zHw@53nlmwYI5W5KP>&`dBZe0Jn?nAdC^HY1wlR6$u^PbpB#AS&5L6zqrXN&7*N2Q` z+Rae1EwS)H=aVSIkr8Ek^1jy2iS2o7mqm~Mr&g5=jjt7VxwglQ^`h#Mx+x2v|9ZAwE$i_9918MjJxTMr?n!bZ6n$}y11u8I9COTU`Z$Fi z!AeAQLMw^gp_{+0QTEJrhL424pVDp%wpku~XRlD3iv{vQ!lAf!_jyqd_h}+Tr1XG| z`*FT*NbPqvHCUsYAkFnM`@l4u_QH&bszpUK#M~XLJt{%?00GXY?u_{gj3Hvs!=N(I z(=AuWPijyoU!r?aFTsa8pLB&cx}$*%;K$e*XqF{~*rA-qn)h^!(-;e}O#B$|S~c+U zN4vyOK0vmtx$5K!?g*+J@G1NmlEI=pyZXZ69tAv=@`t%ag_Hk{LP~OH9iE)I= zaJ69b4kuCkV0V zo(M0#>phpQ_)@j;h%m{-a*LGi(72TP)ws2w*@4|C-3+;=5DmC4s7Lp95%n%@Ko zfdr3-a7m*dys9iIci$A=4NPJ`HfJ;hujLgU)ZRuJI`n;Pw|yksu!#LQnJ#dJysgNb z@@qwR^wrk(jbq4H?d!lNyy72~Dnn87KxsgQ!)|*m(DRM+eC$wh7KnS-mho3|KE)7h zK3k;qZ;K1Lj6uEXLYUYi)1FN}F@-xJ z@@3Hb84sl|j{4$3J}aTY@cbX@pzB_qM~APljrjju6P0tY{C@ zpUCOz_NFmALMv1*blCcwUD3?U6tYs+N%cmJ98D%3)%)Xu^uvzF zS5O!sc#X6?EwsYkvPo6A%O8&y8sCCQH<%f2togVwW&{M;PR!a(ZT_A+jVAbf{@5kL zB@Z(hb$3U{T_}SKA_CoQVU-;j>2J=L#lZ~aQCFg-d<9rzs$_gO&d5N6eFSc z1ml8)P*FSi+k@!^M9nDWR5e@ATD8oxtDu=36Iv2!;dZzidIS(PCtEuXAtlBb1;H%Z zwnC^Ek*D)EX4#Q>R$$WA2sxC_t(!!6Tr?C#@{3}n{<^o;9id1RA&-Pig1e-2B1XpG zliNjgmd3c&%A}s>qf{_j#!Z`fu0xIwm4L0)OF=u(OEmp;bLCIaZX$&J_^Z%4Sq4GZ zPn6sV_#+6pJmDN_lx@1;Zw6Md_p0w9h6mHtzpuIEwNn>OnuRSC2=>fP^Hqgc)xu^4 z<3!s`cORHJh#?!nKI`Et7{3C27+EuH)Gw1f)aoP|B3y?fuVfvpYYmmukx0ya-)TQX zR{ggy5cNf4X|g)nl#jC9p>7|09_S7>1D2GTRBUTW zAkQ=JMRogZqG#v;^=11O6@rPPwvJkr{bW-Qg8`q8GoD#K`&Y+S#%&B>SGRL>;ZunM@49!}Uy zN|bBCJ%sO;@3wl0>0gbl3L@1^O60ONObz8ZI7nder>(udj-jt`;yj^nTQ$L9`OU9W zX4alF#$|GiR47%x@s&LV>2Sz2R6?;2R~5k6V>)nz!o_*1Y!$p>BC5&?hJg_MiE6UBy>RkVZj`9UWbRkN-Hk!S`=BS3t3uyX6)7SF#)71*}`~Ogz z1rap5H6~dhBJ83;q-Y<5V35C2&F^JI-it(=5D#v!fAi9p#UwV~2tZQI+W(Dv?1t9? zfh*xpxxO{-(VGB>!Q&0%^YW_F!@aZS#ucP|YaD#>wd1Fv&Z*SR&mc;asi}1G) z_H>`!akh-Zxq9#io(7%;a$)w+{QH)Y$?UK1Dt^4)up!Szcxnu}kn$0afcfJL#IL+S z5gF_Y30j;{lNrG6m~$Ay?)*V9fZuU@3=kd40=LhazjFrau>(Y>SJNtOz>8x_X-BlA zIpl{i>OarVGj1v(4?^1`R}aQB&WCRQzS~;7R{tDZG=HhgrW@B`W|#cdyj%YBky)P= zpxuOZkW>S6%q7U{VsB#G(^FMsH5QuGXhb(sY+!-R8Bmv6Sx3WzSW<1MPPN1!&PurYky(@`bP9tz z52}LH9Q?+FF5jR6-;|+GVdRA!qtd;}*-h&iIw3Tq3qF9sDIb1FFxGbo&fbG5n8$3F zyY&PWL{ys^dTO}oZ#@sIX^BKW*bon=;te9j5k+T%wJ zNJtoN1~YVj4~YRrlZl)b&kJqp+Z`DqT!la$x&&IxgOQw#yZd-nBP3!7FijBXD|IsU8Zl^ zc6?MKpJQ+7ka|tZQLfchD$PD|;K(9FiLE|eUZX#EZxhG!S-63C$jWX1Yd!6-Yxi-u zjULIr|0-Q%D9jz}IF~S%>0(jOqZ(Ln<$9PxiySr&2Oic7vb<8q=46)Ln%Z|<*z5&> z3f~Zw@m;vR(bESB<=Jqkxn(=#hQw42l(7)h`vMQQTttz9XW6^|^8EK7qhju4r_c*b zJIi`)MB$w@9epwdIfnEBR+?~);yd6C(LeMC& zn&&N*?-g&BBJcV;8&UoZi4Lmxcj16ojlxR~zMrf=O_^i1wGb9X-0@6_rpjPYemIin zmJb+;lHe;Yp=8G)Q(L1bzH*}I>}uAqhj4;g)PlvD9_e_ScR{Ipq|$8NvAvLD8MYr}xl=bU~)f%B3E>r3Bu9_t|ThF3C5~BdOve zEbk^r&r#PT&?^V1cb{72yEWH}TXEE}w>t!cY~rA+hNOTK8FAtIEoszp!qqptS&;r$ zaYV-NX96-h$6aR@1xz6_E0^N49mU)-v#bwtGJm)ibygzJ8!7|WIrcb`$XH~^!a#s& z{Db-0IOTFq#9!^j!n_F}#Z_nX{YzBK8XLPVmc&X`fT7!@$U-@2KM9soGbmOSAmqV z{nr$L^MBo_u^Joyf0E^=eo{Rt0{{e$IFA(#*kP@SQd6lWT2-#>` zP1)7_@IO!9lk>Zt?#CU?cuhiLF&)+XEM9B)cS(gvQT!X3`wL*{fArTS;Ak`J<84du zALKPz4}3nlG8Fo^MH0L|oK2-4xIY!~Oux~1sw!+It)&D3p;+N8AgqKI`ld6v71wy8I!eP0o~=RVcFQR2Gr(eP_JbSytoQ$Yt}l*4r@A8Me94y z8cTDWhqlq^qoAhbOzGBXv^Wa4vUz$(7B!mX`T=x_ueKRRDfg&Uc-e1+z4x$jyW_Pm zp?U;-R#xt^Z8Ev~`m`iL4*c#65Nn)q#=Y0l1AuD&+{|8-Gsij3LUZXpM0Bx0u7WWm zH|%yE@-#XEph2}-$-thl+S;__ciBxSSzHveP%~v}5I%u!z_l_KoW{KRx2=eB33umE zIYFtu^5=wGU`Jab8#}cnYry@9p5UE#U|VVvx_4l49JQ;jQdp(uw=$^A$EA$LM%vmE zvdEOaIcp5qX8wX{mYf0;#51~imYYPn4=k&#DsKTxo{_Mg*;S495?OBY?#gv=edYC* z^O@-sd-qa+U24xvcbL0@C7_6o!$`)sVr-jSJE4XQUQ$?L7}2(}Eixqv;L8AdJAVqc zq}RPgpnDb@E_;?6K58r3h4-!4rT4Ab#rLHLX?eMOfluJk=3i1@Gt1i#iA=O`M0@x! z(HtJP9BMHXEzuD93m|B&woj0g6T?f#^)>J>|I4C5?Gam>n9!8CT%~aT;=oco5d6U8 zMXl(=W;$ND_8+DD*?|5bJ!;8ebESXMUKBAf7YBwNVJibGaJ*(2G`F%wx)grqVPjudiaq^Kl&g$8A2 zWMxMr@_$c}d+;_B`#kUX-t|4VKH&_f^^EP0&=DPLW)H)UzBG%%Tra*5 z%$kyZe3I&S#gfie^z5)!twG={3Cuh)FdeA!Kj<-9** zvT*5%Tb`|QbE!iW-XcOuy39>D3oe6x{>&<#E$o8Ac|j)wq#kQzz|ATd=Z0K!p2$QE zPu?jL8Lb^y3_CQE{*}sTDe!2!dtlFjq&YLY@2#4>XS`}v#PLrpvc4*@q^O{mmnr5D zmyJq~t?8>FWU5vZdE(%4cuZuao0GNjp3~Dt*SLaxI#g_u>hu@k&9Ho*#CZP~lFJHj z(e!SYlLigyc?&5-YxlE{uuk$9b&l6d`uIlpg_z15dPo*iU&|Khx2*A5Fp;8iK_bdP z?T6|^7@lcx2j0T@x>X7|kuuBSB7<^zeY~R~4McconTxA2flHC0_jFxmSTv-~?zVT| zG_|yDqa9lkF*B6_{j=T>=M8r<0s;@z#h)3BQ4NLl@`Xr__o7;~M&dL3J8fP&zLfDfy z);ckcTev{@OUlZ`bCo(-3? z1u1xD`PKgSg?RqeVVsF<1SLF;XYA@Bsa&cY!I48ZJn1V<3d!?s=St?TLo zC0cNr`qD*M#s6f~X>SCNVkva^9A2ZP>CoJ9bvgXe_c}WdX-)pHM5m7O zrHt#g$F0AO+nGA;7dSJ?)|Mo~cf{z2L)Rz!`fpi73Zv)H=a5K)*$5sf_IZypi($P5 zsPwUc4~P-J1@^3C6-r9{V-u0Z&Sl7vNfmuMY4yy*cL>_)BmQF!8Om9Dej%cHxbIzA zhtV0d{=%cr?;bpBPjt@4w=#<>k5ee=TiWAXM2~tUGfm z$s&!Dm0R^V$}fOR*B^kGaipi~rx~A2cS0;t&khV1a4u38*XRUP~f za!rZMtay8bsLt6yFYl@>-y^31(*P!L^^s@mslZy(SMsv9bVoX`O#yBgEcjCmGpyc* zeH$Dw6vB5P*;jor+JOX@;6K#+xc)Z9B8M=x2a@Wx-{snPGpRmOC$zpsqW*JCh@M2Y z#K+M(>=#d^>Of9C`))h<=Bsy)6zaMJ&x-t%&+UcpLjV`jo4R2025 zXaG8EA!0lQa)|dx-@{O)qP6`$rhCkoQqZ`^SW8g-kOwrwsK8 z3ms*AIcyj}-1x&A&vSq{r=QMyp3CHdWH35!sad#!Sm>^|-|afB+Q;|Iq@LFgqIp#Z zD1%H+3I?6RGnk&IFo|u+E0dCxXz4yI^1i!QTu7uvIEH>i3rR{srcST`LIRwdV1P;W z+%AN1NIf@xxvVLiSX`8ILA8MzNqE&7>%jMzGt9wm78bo9<;h*W84i29^w!>V>{N+S zd`5Zmz^G;f=icvoOZfK5#1ctx*~UwD=ab4DGQXehQ!XYnak*dee%YN$_ZPL%KZuz$ zD;$PpT;HM^$KwtQm@7uvT`i6>Hae1CoRVM2)NL<2-k2PiX=eAx+-6j#JI?M}(tuBW zkF%jjLR)O`gI2fcPBxF^HeI|DWwQWHVR!;;{BXXHskxh8F@BMDn`oEi-NHt;CLymW z=KSv5)3dyzec0T5B*`g-MQ<;gz=nIWKUi9ko<|4I(-E0k$QncH>E4l z**1w&#={&zv4Tvhgz#c29`m|;lU-jmaXFMC11 z*dlXDMEOG>VoLMc>!rApwOu2prKSi*!w%`yzGmS+k(zm*CsLK*wv{S_0WX^8A-rKy zbk^Gf_92^7iB_uUF)EE+ET4d|X|>d&mdN?x@vxKAQk`O+r4Qdu>XGy(a(19g;=jU} zFX{O*_NG>!$@jh!U369Lnc+D~qch3uT+_Amyi}*k#LAAwh}k8IPK5a-WZ81ufD>l> z$4cF}GSz>ce`3FAic}6W4Z7m9KGO?(eWqi@L|5Hq0@L|&2flN1PVl}XgQ2q*_n2s3 zt5KtowNkTYB5b;SVuoXA@i5irXO)A&%7?V`1@HGCB&)Wgk+l|^XXChq;u(nyPB}b3 zY>m5jkxpZgi)zfbgv&ec4Zqdvm+D<?Im*mXweS9H+V>)zF#Zp3)bhl$PbISY{5=_z!8&*Jv~NYtI-g!>fDs zmvL5O^U%!^VaKA9gvKw|5?-jk>~%CVGvctKmP$kpnpfN{D8@X*Aazi$txfa%vd-|E z>kYmV66W!lNekJPom29LdZ%(I+ZLZYTXzTg*to~m?7vp%{V<~>H+2}PQ?PPAq`36R z<%wR8v6UkS>Wt#hzGk#44W<%9S=nBfB);6clKwnxY}T*w21Qc3_?IJ@4gYzC7s;WP zVQNI(M=S=JT#xsZy7G`cR(BP9*je0bfeN8JN5~zY(DDs0t{LpHOIbN);?T-69Pf3R zSNe*&p2%AwXHL>__g+xd4Hlc_vu<25H?(`nafS%)3UPP7_4;gk-9ckt8SJRTv5v0M z_Hww`qPudL?ajIR&X*;$y-`<)6dxx1U~5eGS13CB!lX;3w7n&lDDiArbAhSycd}+b zya_3p@A`$kQy;|NJZ~s44Hqo7Hwt}X86NK=(ey>lgWTtGL6k@Gy;PbO!M%1~Wcn2k zUFP|*5d>t-X*RU8g%>|(wwj*~#l4z^Aatf^DWd1Wj#Q*AY0D^V@sC`M zjJc6qXu0I7Y*2;;gGu!plAFzG=J;1%eIOdn zQA>J&e05UN*7I5@yRhK|lbBSfJ+5Uq;!&HV@xfPZrgD}kE*1DSq^=%{o%|LChhl#0 zlMb<^a6ixzpd{kNZr|3jTGeEzuo}-eLT-)Q$#b{!vKx8Tg}swCni>{#%vDY$Ww$84 zew3c9BBovqb}_&BRo#^!G(1Eg((BScRZ}C)Oz?y`T5wOrv);)b^4XR8 zhJo7+<^7)qB>I;46!GySzdneZ>n_E1oWZY;kf94#)s)kWjuJN1c+wbVoNQcmnv}{> zN0pF+Sl3E}UQ$}slSZeLJrwT>Sr}#V(dVaezCQl2|4LN`7L7v&siYR|r7M(*JYfR$ zst3=YaDw$FSc{g}KHO&QiKxuhEzF{f%RJLKe3p*7=oo`WNP)M(9X1zIQPP0XHhY3c znrP{$4#Ol$A0s|4S7Gx2L23dv*Gv2o;h((XVn+9+$qvm}s%zi6nI-_s6?mG! zj{DV;qesJb&owKeEK?=J>UcAlYckA7Sl+I&IN=yasrZOkejir*kE@SN`fk<8Fgx*$ zy&fE6?}G)d_N`){P~U@1jRVA|2*69)KSe_}!~?+`Yb{Y=O~_+@!j<&oVQQMnhoIRU zA0CyF1OFfkK44n*JD~!2!SCPM;PRSk%1XL=0&rz00wxPs&-_eapJy#$h!eqY%nS0{ z!aGg58JIJPF3_ci%n)QSVpa2H`vIe$RD43;#IRfDV&Ibit z+?>HW4{2wOfC6Fw)}4x}i1maDxcE1qi@BS*qcxD2gE@h3#4cgU*D-&3z7D|tVZWt= z-Cy2+*Cm@P4GN_TPUtaVyVesbVDazF@)j8VJ4>XZv!f%}&eO1SvIgr}4`A*3#vat< z_MoByL(qW6L7SFZ#|Gc1fFN)L2PxY+{B8tJp+pxRyz*87)vXR}*=&ahXjBlQKguuf zX6x<<6fQulE^C*KH8~W%ptpaC0l?b=_{~*U4?5Vt;dgM4t_{&UZ1C2j?b>b+5}{IF_CUyvz-@QZPMlJ)r_tS$9kH%RPv#2_nMb zRLj5;chJ72*U`Z@Dqt4$@_+k$%|8m(HqLG!qT4P^DdfvGf&){gKnGCX#H0!;W=AGP zbA&Z`-__a)VTS}kKFjWGk z%|>yE?t*EJ!qeQ%dPk$;xIQ+P0;()PCBDgjJm6Buj{f^awNoVx+9<|lg3%-$G(*f) zll6oOkN|yamn1uyl2*N-lnqRI1cvs_JxLTeahEK=THV$Sz*gQhKNb*p0fNoda#-&F zB-qJgW^g}!TtM|0bS2QZekW7_tKu%GcJ!4?lObt0z_$mZ4rbQ0o=^curCs3bJK6sq z9fu-aW-l#>z~ca(B;4yv;2RZ?tGYAU)^)Kz{L|4oPj zdOf_?de|#yS)p2v8-N||+XL=O*%3+y)oI(HbM)Ds?q8~HPzIP(vs*G`iddbWq}! z(2!VjP&{Z1w+%eUq^ '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100755 index 00000000..53a6b238 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,91 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/build.gradle b/lib/build.gradle new file mode 100644 index 00000000..0bb0ad22 --- /dev/null +++ b/lib/build.gradle @@ -0,0 +1,120 @@ + +plugins { + // Apply the java-library plugin for API and implementation separation. + id 'java-library' + id 'maven-publish' + id 'signing' +} + +compileJava.options.encoding = "UTF-8" +compileTestJava.options.encoding = "UTF-8" + +repositories { + // Use Maven Central for resolving dependencies. + mavenCentral() +} +java { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + withSourcesJar() + withJavadocJar() +} + +model { + tasks.generatePomFileForMavenPublication { + destination = file("$buildDir/pom.xml") + } +} + +jar { + dependsOn(":$project.name:generatePomFileForMavenPublication") + + into("META-INF/maven/lukehagar.plexapi/plexapi") { + from("$buildDir/pom.xml") + } +} + +javadoc { + options.encoding = "UTF-8" + + if(JavaVersion.current().isJava9Compatible()) { + options.addBooleanOption('html5', true) + } + options.addStringOption('Xdoclint:none', '-quiet') +} + + +tasks.withType(Javadoc) { + failOnError false + options.addStringOption('Xdoclint:none', '-quiet') +} +publishing { + repositories { + maven { + name = "OSSRH" + url = 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/' + credentials { + username = System.getenv("MAVEN_USERNAME") + password = System.getenv("MAVEN_PASSWORD") + } + } + } + + publications { + maven(MavenPublication) { + groupId = 'lukehagar.plexapi' + artifactId = 'plexapi' + version = '0.0.1' + + from components.java + + pom { + name = 'My Company Java SDK' + description = 'SDK enabling Java developers to easily integrate with the My Company API.' + url = 'https://github.com/owner/repo' + scm { + url = 'github.com/owner/repo' + connection = 'scm:git:ssh://git@github.com/owner/repo.git' + } + licenses { + license { + name = 'The MIT License (MIT)' + url = 'https://mit-license.org/' + } + } + developers { + developer { + name = 'My Company' + organization = 'My Company' + email = 'info@mycompany.com' + } + } + organization { + name = 'My Company' + url = 'www.mycompany.com' + } + } + } + } +} + +if (!project.hasProperty('skip.signing')) { + signing { + def signingKey = findProperty("signingKey") + def signingPassphrase = findProperty("signingPassphrase") + useInMemoryPgpKeys(signingKey, signingPassphrase) + sign publishing.publications.maven + } +} + +dependencies { + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.14.1' + implementation 'com.fasterxml.jackson.core:jackson-core:2.14.1' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.1' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.1' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.14.1' + implementation 'org.apache.httpcomponents:httpcore:4.4.15' + implementation 'org.apache.httpcomponents:httpclient:4.5.13' + implementation 'org.apache.httpcomponents:httpmime:4.5.13' +} + diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Activities.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Activities.java new file mode 100644 index 00000000..38e876c4 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Activities.java @@ -0,0 +1,122 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; + +/** + * Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints. + * Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity. + * Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details: + * - They can contain a `progress` (from 0 to 100) marking the percent completion of the activity. + * - They must contain an `type` which is used by clients to distinguish the specific activity. + * - They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.) + * - The may contain a `Response` object which attributes which represent the result of the asynchronous operation. + * + */ +public class Activities { + + private SDKConfiguration sdkConfiguration; + + public Activities(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get Server Activities + * Get Server Activities + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponse getServerActivities() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/activities"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponse res = new lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesActivitiesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesActivitiesResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Cancel Server Activities + * Cancel Server Activities + * @param activityUUID The UUID of the activity to cancel. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesResponse cancelServerActivities(String activityUUID) throws Exception { + lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesRequest request = new lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesRequest(activityUUID); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesRequest.class, baseUrl, "/activities/{activityUUID}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("DELETE"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesResponse res = new lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Authentication.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Authentication.java new file mode 100644 index 00000000..a28a4809 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Authentication.java @@ -0,0 +1,128 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * API Calls regarding authentication for Plex Media Server + * + */ +public class Authentication { + + private SDKConfiguration sdkConfiguration; + + public Authentication(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get a Transient Token. + * This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted. + * + * @param type `delegation` - This is the only supported `type` parameter. + * @param scope `all` - This is the only supported `scope` parameter. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetTransientTokenResponse getTransientToken(lukehagar.plexapi.plexapi.models.operations.GetTransientTokenQueryParamType type, lukehagar.plexapi.plexapi.models.operations.Scope scope) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetTransientTokenRequest request = new lukehagar.plexapi.plexapi.models.operations.GetTransientTokenRequest(type, scope); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/security/token"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetTransientTokenRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetTransientTokenResponse res = new lukehagar.plexapi.plexapi.models.operations.GetTransientTokenResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetTransientTokenResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetTransientTokenResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Get Source Connection Information + * If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token. + * Note: requires Plex Media Server >= 1.15.4. + * + * @param source The source identifier with an included prefix. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationResponse getSourceConnectionInformation(String source) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationRequest request = new lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationRequest(source); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/security/resources"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationResponse res = new lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Butler.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Butler.java new file mode 100644 index 00000000..f36ddfde --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Butler.java @@ -0,0 +1,251 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; + +/** + * Butler is the task manager of the Plex Media Server Ecosystem. + * + */ +public class Butler { + + private SDKConfiguration sdkConfiguration; + + public Butler(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get Butler tasks + * Returns a list of butler tasks + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponse getButlerTasks() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/butler"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponse res = new lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetButlerTasksButlerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetButlerTasksButlerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Start all Butler tasks + * This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria: + * 1. Any tasks not scheduled to run on the current day will be skipped. + * 2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately. + * 3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window. + * 4. If we are outside the configured window, the task will start immediately. + * + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.StartAllTasksResponse startAllTasks() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/butler"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("POST"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.StartAllTasksResponse res = new lukehagar.plexapi.plexapi.models.operations.StartAllTasksResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.StartAllTasksResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.StartAllTasksResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Stop all Butler tasks + * This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue. + * + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.StopAllTasksResponse stopAllTasks() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/butler"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("DELETE"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.StopAllTasksResponse res = new lukehagar.plexapi.plexapi.models.operations.StopAllTasksResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.StopAllTasksResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.StopAllTasksResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Start a single Butler task + * This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria: + * 1. Any tasks not scheduled to run on the current day will be skipped. + * 2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately. + * 3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window. + * 4. If we are outside the configured window, the task will start immediately. + * + * @param taskName the name of the task to be started. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.StartTaskResponse startTask(lukehagar.plexapi.plexapi.models.operations.TaskName taskName) throws Exception { + lukehagar.plexapi.plexapi.models.operations.StartTaskRequest request = new lukehagar.plexapi.plexapi.models.operations.StartTaskRequest(taskName); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.StartTaskRequest.class, baseUrl, "/butler/{taskName}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("POST"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.StartTaskResponse res = new lukehagar.plexapi.plexapi.models.operations.StartTaskResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 202 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.StartTaskResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.StartTaskResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Stop a single Butler task + * This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint. + * + * @param taskName The name of the task to be started. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.StopTaskResponse stopTask(lukehagar.plexapi.plexapi.models.operations.PathParamTaskName taskName) throws Exception { + lukehagar.plexapi.plexapi.models.operations.StopTaskRequest request = new lukehagar.plexapi.plexapi.models.operations.StopTaskRequest(taskName); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.StopTaskRequest.class, baseUrl, "/butler/{taskName}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("DELETE"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.StopTaskResponse res = new lukehagar.plexapi.plexapi.models.operations.StopTaskResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400 || httpRes.statusCode() == 404) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.StopTaskResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.StopTaskResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Hubs.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Hubs.java new file mode 100644 index 00000000..d135777b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Hubs.java @@ -0,0 +1,218 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows. + * + */ +public class Hubs { + + private SDKConfiguration sdkConfiguration; + + public Hubs(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get Global Hubs + * Get Global Hubs filtered by the parameters provided. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponse getGlobalHubs() throws Exception { + return this.getGlobalHubs(null, null); + } + + /** + * Get Global Hubs + * Get Global Hubs filtered by the parameters provided. + * @param onlyTransient Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponse getGlobalHubs(lukehagar.plexapi.plexapi.models.operations.OnlyTransient onlyTransient) throws Exception { + return this.getGlobalHubs(null, onlyTransient); + } + + /** + * Get Global Hubs + * Get Global Hubs filtered by the parameters provided. + * @param count The number of items to return with each hub. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponse getGlobalHubs(Double count) throws Exception { + return this.getGlobalHubs(count, null); + } + + /** + * Get Global Hubs + * Get Global Hubs filtered by the parameters provided. + * @param count The number of items to return with each hub. + * @param onlyTransient Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponse getGlobalHubs(Double count, lukehagar.plexapi.plexapi.models.operations.OnlyTransient onlyTransient) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsRequest request = new lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsRequest(); + request.count=count; + request.onlyTransient=onlyTransient; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/hubs"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsHubsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsHubsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get library specific hubs + * This endpoint will return a list of library specific hubs + * + * @param sectionId the Id of the library to query + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponse getLibraryHubs(Double sectionId) throws Exception { + return this.getLibraryHubs(sectionId, null, null); + } + + /** + * Get library specific hubs + * This endpoint will return a list of library specific hubs + * + * @param sectionId the Id of the library to query + * @param onlyTransient Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponse getLibraryHubs(Double sectionId, lukehagar.plexapi.plexapi.models.operations.QueryParamOnlyTransient onlyTransient) throws Exception { + return this.getLibraryHubs(sectionId, null, onlyTransient); + } + + /** + * Get library specific hubs + * This endpoint will return a list of library specific hubs + * + * @param sectionId the Id of the library to query + * @param count The number of items to return with each hub. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponse getLibraryHubs(Double sectionId, Double count) throws Exception { + return this.getLibraryHubs(sectionId, count, null); + } + + /** + * Get library specific hubs + * This endpoint will return a list of library specific hubs + * + * @param sectionId the Id of the library to query + * @param count The number of items to return with each hub. + * @param onlyTransient Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponse getLibraryHubs(Double sectionId, Double count, lukehagar.plexapi.plexapi.models.operations.QueryParamOnlyTransient onlyTransient) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsRequest request = new lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsRequest(sectionId); + request.count=count; + request.onlyTransient=onlyTransient; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsRequest.class, baseUrl, "/hubs/sections/{sectionId}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsHubsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsHubsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Library.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Library.java new file mode 100644 index 00000000..d48a8b57 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Library.java @@ -0,0 +1,709 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * API Calls interacting with Plex Media Server Libraries + * + */ +public class Library { + + private SDKConfiguration sdkConfiguration; + + public Library(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get Hash Value + * This resource returns hash values for local files + * @param url This is the path to the local file, must be prefixed by `file://` + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetFileHashResponse getFileHash(String url) throws Exception { + return this.getFileHash(url, null); + } + + /** + * Get Hash Value + * This resource returns hash values for local files + * @param url This is the path to the local file, must be prefixed by `file://` + * @param type Item type + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetFileHashResponse getFileHash(String url, Double type) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetFileHashRequest request = new lukehagar.plexapi.plexapi.models.operations.GetFileHashRequest(url); + request.type=type; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/library/hashes"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetFileHashRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetFileHashResponse res = new lukehagar.plexapi.plexapi.models.operations.GetFileHashResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetFileHashResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetFileHashResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Get Recently Added + * This endpoint will return the recently added content. + * + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponse getRecentlyAdded() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/library/recentlyAdded"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponse res = new lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedLibraryResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get All Libraries + * A library section (commonly referred to as just a library) is a collection of media. + * Libraries are typed, and depending on their type provide either a flat or a hierarchical view of the media. + * For example, a music library has an artist > albums > tracks structure, whereas a movie library is flat. + * + * Libraries have features beyond just being a collection of media; for starters, they include information about supported types, filters and sorts. + * This allows a client to provide a rich interface around the media (e.g. allow sorting movies by release year). + * + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponse getLibraries() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/library/sections"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponse res = new lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetLibrariesLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetLibrariesLibraryResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Library Details + * ## Library Details Endpoint + * + * This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself. + * + * The details include: + * + * ### Directories + * Organized into three categories: + * + * - **Primary Directories**: + * - Used in some clients for quick access to media subsets (e.g., "All", "On Deck"). + * - Most can be replicated via media queries. + * - Customizable by users. + * + * - **Secondary Directories**: + * - Marked with `secondary="1"`. + * - Used in older clients for structured navigation. + * + * - **Special Directories**: + * - Includes a "By Folder" entry for filesystem-based browsing. + * - Contains an obsolete `search="1"` entry for on-the-fly search dialog creation. + * + * ### Types + * Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls: + * + * - **Type Object Attributes**: + * - `key`: Endpoint for the media list of this type. + * - `type`: Metadata type (if standard Plex type). + * - `title`: Title for this content type (e.g., "Movies"). + * + * - **Filter Objects**: + * - Subset of the media query language. + * - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`. + * + * - **Sort Objects**: + * - Description of sort fields. + * - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`. + * + * > **Note**: Filters and sorts are optional; without them, no filtering controls are rendered. + * + * @param sectionId the Id of the library to query + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibraryResponse getLibrary(Double sectionId) throws Exception { + return this.getLibrary(sectionId, null); + } + + /** + * Get Library Details + * ## Library Details Endpoint + * + * This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself. + * + * The details include: + * + * ### Directories + * Organized into three categories: + * + * - **Primary Directories**: + * - Used in some clients for quick access to media subsets (e.g., "All", "On Deck"). + * - Most can be replicated via media queries. + * - Customizable by users. + * + * - **Secondary Directories**: + * - Marked with `secondary="1"`. + * - Used in older clients for structured navigation. + * + * - **Special Directories**: + * - Includes a "By Folder" entry for filesystem-based browsing. + * - Contains an obsolete `search="1"` entry for on-the-fly search dialog creation. + * + * ### Types + * Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls: + * + * - **Type Object Attributes**: + * - `key`: Endpoint for the media list of this type. + * - `type`: Metadata type (if standard Plex type). + * - `title`: Title for this content type (e.g., "Movies"). + * + * - **Filter Objects**: + * - Subset of the media query language. + * - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`. + * + * - **Sort Objects**: + * - Description of sort fields. + * - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`. + * + * > **Note**: Filters and sorts are optional; without them, no filtering controls are rendered. + * + * @param sectionId the Id of the library to query + * @param includeDetails Whether or not to include details for a section (types, filters, and sorts). + Only exists for backwards compatibility, media providers other than the server libraries have it on always. + + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibraryResponse getLibrary(Double sectionId, lukehagar.plexapi.plexapi.models.operations.IncludeDetails includeDetails) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetLibraryRequest request = new lukehagar.plexapi.plexapi.models.operations.GetLibraryRequest(sectionId); + request.includeDetails=includeDetails; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetLibraryRequest.class, baseUrl, "/library/sections/{sectionId}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetLibraryRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetLibraryResponse res = new lukehagar.plexapi.plexapi.models.operations.GetLibraryResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetLibraryResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetLibraryLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetLibraryLibraryResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Delete Library Section + * Delate a library using a specific section + * @param sectionId the Id of the library to query + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.DeleteLibraryResponse deleteLibrary(Double sectionId) throws Exception { + lukehagar.plexapi.plexapi.models.operations.DeleteLibraryRequest request = new lukehagar.plexapi.plexapi.models.operations.DeleteLibraryRequest(sectionId); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.DeleteLibraryRequest.class, baseUrl, "/library/sections/{sectionId}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("DELETE"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.DeleteLibraryResponse res = new lukehagar.plexapi.plexapi.models.operations.DeleteLibraryResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.DeleteLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.DeleteLibraryResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Get Library Items + * Fetches details from a specific section of the library identified by a section key and a tag. The tag parameter accepts the following values: + * - `all`: All items in the section. + * - `unwatched`: Items that have not been played. + * - `newest`: Items that are recently released. + * - `recentlyAdded`: Items that are recently added to the library. + * - `recentlyViewed`: Items that were recently viewed. + * - `onDeck`: Items to continue watching. + * - `collection`: Items categorized by collection. + * - `edition`: Items categorized by edition. + * - `genre`: Items categorized by genre. + * - `year`: Items categorized by year of release. + * - `decade`: Items categorized by decade. + * - `director`: Items categorized by director. + * - `actor`: Items categorized by starring actor. + * - `country`: Items categorized by country of origin. + * - `contentRating`: Items categorized by content rating. + * - `rating`: Items categorized by rating. + * - `resolution`: Items categorized by resolution. + * - `firstCharacter`: Items categorized by the first letter. + * - `folder`: Items categorized by folder. + * + * @param sectionId the Id of the library to query + * @param tag A key representing a specific tag within the section. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsResponse getLibraryItems(Long sectionId, lukehagar.plexapi.plexapi.models.operations.Tag tag) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsRequest request = new lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsRequest(sectionId, tag); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsRequest.class, baseUrl, "/library/sections/{sectionId}/{tag}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Refresh Library + * This endpoint Refreshes the library. + * + * @param sectionId the Id of the library to refresh + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.RefreshLibraryResponse refreshLibrary(Double sectionId) throws Exception { + lukehagar.plexapi.plexapi.models.operations.RefreshLibraryRequest request = new lukehagar.plexapi.plexapi.models.operations.RefreshLibraryRequest(sectionId); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.RefreshLibraryRequest.class, baseUrl, "/library/sections/{sectionId}/refresh", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.RefreshLibraryResponse res = new lukehagar.plexapi.plexapi.models.operations.RefreshLibraryResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.RefreshLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.RefreshLibraryResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Search Library + * Search for content within a specific section of the library. + * + * ### Types + * Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls: + * + * - **Type Object Attributes**: + * - `type`: Metadata type (if standard Plex type). + * - `title`: Title for this content type (e.g., "Movies"). + * + * - **Filter Objects**: + * - Subset of the media query language. + * - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`. + * + * - **Sort Objects**: + * - Description of sort fields. + * - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`. + * + * > **Note**: Filters and sorts are optional; without them, no filtering controls are rendered. + * + * @param sectionId the Id of the library to query + * @param type Plex content type to search for + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.SearchLibraryResponse searchLibrary(Long sectionId, lukehagar.plexapi.plexapi.models.operations.Type type) throws Exception { + lukehagar.plexapi.plexapi.models.operations.SearchLibraryRequest request = new lukehagar.plexapi.plexapi.models.operations.SearchLibraryRequest(sectionId, type); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.SearchLibraryRequest.class, baseUrl, "/library/sections/{sectionId}/search", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.SearchLibraryRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.SearchLibraryResponse res = new lukehagar.plexapi.plexapi.models.operations.SearchLibraryResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.SearchLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.SearchLibraryResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Get Items Metadata + * This endpoint will return the metadata of a library item specified with the ratingKey. + * + * @param ratingKey the id of the library item to return the children of. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetMetadataResponse getMetadata(Double ratingKey) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetMetadataRequest request = new lukehagar.plexapi.plexapi.models.operations.GetMetadataRequest(ratingKey); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetMetadataRequest.class, baseUrl, "/library/metadata/{ratingKey}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetMetadataResponse res = new lukehagar.plexapi.plexapi.models.operations.GetMetadataResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetMetadataResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetMetadataResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetMetadataLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetMetadataLibraryResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Items Children + * This endpoint will return the children of of a library item specified with the ratingKey. + * + * @param ratingKey the id of the library item to return the children of. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponse getMetadataChildren(Double ratingKey) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenRequest request = new lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenRequest(ratingKey); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenRequest.class, baseUrl, "/library/metadata/{ratingKey}/children", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponse res = new lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenLibraryResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get On Deck + * This endpoint will return the on deck content. + * + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponse getOnDeck() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/library/onDeck"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponse res = new lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetOnDeckLibraryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetOnDeckLibraryResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Log.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Log.java new file mode 100644 index 00000000..a7003539 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Log.java @@ -0,0 +1,193 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import lukehagar.plexapi.plexapi.utils.SerializedBody; +import org.apache.http.NameValuePair; + +/** + * Submit logs to the Log Handler for Plex Media Server + * + */ +public class Log { + + private SDKConfiguration sdkConfiguration; + + public Log(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Logging a single line message. + * This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log. + * + * @param level An integer log level to write to the PMS log with. + 0: Error + 1: Warning + 2: Info + 3: Debug + 4: Verbose + + * @param message The text of the message to write to the log. + * @param source a string indicating the source of the message. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.LogLineResponse logLine(lukehagar.plexapi.plexapi.models.operations.Level level, String message, String source) throws Exception { + lukehagar.plexapi.plexapi.models.operations.LogLineRequest request = new lukehagar.plexapi.plexapi.models.operations.LogLineRequest(level, message, source); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/log"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.LogLineRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.LogLineResponse res = new lukehagar.plexapi.plexapi.models.operations.LogLineResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.LogLineResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.LogLineResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Logging a multi-line message + * This endpoint allows for the batch addition of log entries to the main Plex Media Server log. + * It accepts a text/plain request body, where each line represents a distinct log entry. + * Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'. + * + * Log entries are separated by a newline character (`\n`). + * Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters. + * This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests. + * + * The 'level' parameter specifies the log entry's severity or importance, with the following integer values: + * - `0`: Error - Critical issues that require immediate attention. + * - `1`: Warning - Important events that are not critical but may indicate potential issues. + * - `2`: Info - General informational messages about system operation. + * - `3`: Debug - Detailed information useful for debugging purposes. + * - `4`: Verbose - Highly detailed diagnostic information for in-depth analysis. + * + * The 'message' parameter contains the log text, and 'source' identifies the log message's origin (e.g., an application name or module). + * + * Example of a single log entry format: + * `level=4&message=Sample%20log%20entry&source=applicationName` + * + * Ensure each parameter is properly URL-encoded to avoid interpretation issues. + * + * @param request the request object containing all of the parameters for the API call + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.LogMultiLineResponse logMultiLine(String request) throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/log"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("POST"); + req.setURL(url); + SerializedBody serializedRequestBody = lukehagar.plexapi.plexapi.utils.Utils.serializeRequestBody(request, "request", "string"); + if (serializedRequestBody == null) { + throw new Exception("Request body is required"); + } + req.setBody(serializedRequestBody); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.LogMultiLineResponse res = new lukehagar.plexapi.plexapi.models.operations.LogMultiLineResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.LogMultiLineResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.LogMultiLineResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Enabling Papertrail + * This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time. + * + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailResponse enablePaperTrail() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/log/networked"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailResponse res = new lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400 || httpRes.statusCode() == 403) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Media.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Media.java new file mode 100644 index 00000000..a84e0a30 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Media.java @@ -0,0 +1,176 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * API Calls interacting with Plex Media Server Media + * + */ +public class Media { + + private SDKConfiguration sdkConfiguration; + + public Media(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Mark Media Played + * This will mark the provided media key as Played. + * @param key The media key to mark as played + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.MarkPlayedResponse markPlayed(Double key) throws Exception { + lukehagar.plexapi.plexapi.models.operations.MarkPlayedRequest request = new lukehagar.plexapi.plexapi.models.operations.MarkPlayedRequest(key); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/:/scrobble"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.MarkPlayedRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.MarkPlayedResponse res = new lukehagar.plexapi.plexapi.models.operations.MarkPlayedResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.MarkPlayedResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.MarkPlayedResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Mark Media Unplayed + * This will mark the provided media key as Unplayed. + * @param key The media key to mark as Unplayed + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.MarkUnplayedResponse markUnplayed(Double key) throws Exception { + lukehagar.plexapi.plexapi.models.operations.MarkUnplayedRequest request = new lukehagar.plexapi.plexapi.models.operations.MarkUnplayedRequest(key); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/:/unscrobble"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.MarkUnplayedRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.MarkUnplayedResponse res = new lukehagar.plexapi.plexapi.models.operations.MarkUnplayedResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.MarkUnplayedResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.MarkUnplayedResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Update Media Play Progress + * This API command can be used to update the play progress of a media item. + * + * @param key the media key + * @param time The time, in milliseconds, used to set the media playback progress. + * @param state The playback state of the media item. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressResponse updatePlayProgress(String key, Double time, String state) throws Exception { + lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressRequest request = new lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressRequest(key, time, state); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/:/progress"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("POST"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressResponse res = new lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Playlists.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Playlists.java new file mode 100644 index 00000000..f710fb9d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Playlists.java @@ -0,0 +1,598 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017"). + * They can be organized in (optionally nesting) folders. + * Retrieving a playlist, or its items, will trigger a refresh of its metadata. + * This may cause the duration and number of items to change. + * + */ +public class Playlists { + + private SDKConfiguration sdkConfiguration; + + public Playlists(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Create a Playlist + * Create a new playlist. By default the playlist is blank. To create a playlist along with a first item, pass: + * - `uri` - The content URI for what we're playing (e.g. `server://1234/com.plexapp.plugins.library/library/metadata/1`). + * - `playQueueID` - To create a playlist from an existing play queue. + * + * @param request the request object containing all of the parameters for the API call + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponse createPlaylist(lukehagar.plexapi.plexapi.models.operations.CreatePlaylistRequest request) throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/playlists"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("POST"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.CreatePlaylistRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponse res = new lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.CreatePlaylistPlaylistsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.CreatePlaylistPlaylistsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get All Playlists + * Get All Playlists given the specified filters. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponse getPlaylists() throws Exception { + return this.getPlaylists(null, null); + } + + /** + * Get All Playlists + * Get All Playlists given the specified filters. + * @param smart type of playlists to return (default is all). + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponse getPlaylists(lukehagar.plexapi.plexapi.models.operations.QueryParamSmart smart) throws Exception { + return this.getPlaylists(null, smart); + } + + /** + * Get All Playlists + * Get All Playlists given the specified filters. + * @param playlistType limit to a type of playlist. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponse getPlaylists(lukehagar.plexapi.plexapi.models.operations.PlaylistType playlistType) throws Exception { + return this.getPlaylists(playlistType, null); + } + + /** + * Get All Playlists + * Get All Playlists given the specified filters. + * @param playlistType limit to a type of playlist. + * @param smart type of playlists to return (default is all). + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponse getPlaylists(lukehagar.plexapi.plexapi.models.operations.PlaylistType playlistType, lukehagar.plexapi.plexapi.models.operations.QueryParamSmart smart) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetPlaylistsRequest request = new lukehagar.plexapi.plexapi.models.operations.GetPlaylistsRequest(); + request.playlistType=playlistType; + request.smart=smart; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/playlists"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetPlaylistsRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPlaylistsPlaylistsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPlaylistsPlaylistsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Retrieve Playlist + * Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item: + * Smart playlist details contain the `content` attribute. This is the content URI for the generator. This can then be parsed by a client to provide smart playlist editing. + * + * @param playlistID the ID of the playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponse getPlaylist(Double playlistID) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetPlaylistRequest request = new lukehagar.plexapi.plexapi.models.operations.GetPlaylistRequest(playlistID); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetPlaylistRequest.class, baseUrl, "/playlists/{playlistID}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponse res = new lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPlaylistPlaylistsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPlaylistPlaylistsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Deletes a Playlist + * This endpoint will delete a playlist + * + * @param playlistID the ID of the playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.DeletePlaylistResponse deletePlaylist(Double playlistID) throws Exception { + lukehagar.plexapi.plexapi.models.operations.DeletePlaylistRequest request = new lukehagar.plexapi.plexapi.models.operations.DeletePlaylistRequest(playlistID); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.DeletePlaylistRequest.class, baseUrl, "/playlists/{playlistID}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("DELETE"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.DeletePlaylistResponse res = new lukehagar.plexapi.plexapi.models.operations.DeletePlaylistResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.DeletePlaylistResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.DeletePlaylistResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Update a Playlist + * From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}` + * + * @param playlistID the ID of the playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponse updatePlaylist(Double playlistID) throws Exception { + return this.updatePlaylist(playlistID, null, null); + } + + /** + * Update a Playlist + * From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}` + * + * @param playlistID the ID of the playlist + * @param title name of the playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponse updatePlaylist(Double playlistID, String title) throws Exception { + return this.updatePlaylist(playlistID, title, null); + } + + /** + * Update a Playlist + * From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}` + * + * @param playlistID the ID of the playlist + * @param title name of the playlist + * @param summary summary description of the playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponse updatePlaylist(Double playlistID, String title, String summary) throws Exception { + lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistRequest request = new lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistRequest(playlistID); + request.title=title; + request.summary=summary; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistRequest.class, baseUrl, "/playlists/{playlistID}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("PUT"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponse res = new lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Retrieve Playlist Contents + * Gets the contents of a playlist. Should be paged by clients via standard mechanisms. + * By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the `type` parameter. + * For example, you could use this to display a list of recently added albums vis a smart playlist. + * Note that for dumb playlists, items have a `playlistItemID` attribute which is used for deleting or moving items. + * + * @param playlistID the ID of the playlist + * @param type the metadata type of the item to return + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponse getPlaylistContents(Double playlistID, Double type) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsRequest request = new lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsRequest(playlistID, type); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsRequest.class, baseUrl, "/playlists/{playlistID}/items", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsPlaylistsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsPlaylistsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Delete Playlist Contents + * Clears a playlist, only works with dumb playlists. Returns the playlist. + * + * @param playlistID the ID of the playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsResponse clearPlaylistContents(Double playlistID) throws Exception { + lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsRequest request = new lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsRequest(playlistID); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsRequest.class, baseUrl, "/playlists/{playlistID}/items", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("DELETE"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsResponse res = new lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Adding to a Playlist + * Adds a generator to a playlist, same parameters as the POST to create. With a dumb playlist, this adds the specified items to the playlist. + * With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist. + * + * @param playlistID the ID of the playlist + * @param uri the content URI for the playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponse addPlaylistContents(Double playlistID, String uri) throws Exception { + return this.addPlaylistContents(playlistID, uri, null); + } + + /** + * Adding to a Playlist + * Adds a generator to a playlist, same parameters as the POST to create. With a dumb playlist, this adds the specified items to the playlist. + * With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist. + * + * @param playlistID the ID of the playlist + * @param uri the content URI for the playlist + * @param playQueueID the play queue to add to a playlist + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponse addPlaylistContents(Double playlistID, String uri, Double playQueueID) throws Exception { + lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsRequest request = new lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsRequest(playlistID, uri); + request.playQueueID=playQueueID; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsRequest.class, baseUrl, "/playlists/{playlistID}/items", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("PUT"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponse res = new lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsPlaylistsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsPlaylistsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Upload Playlist + * Imports m3u playlists by passing a path on the server to scan for m3u-formatted playlist files, or a path to a single playlist file. + * + * @param path absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. + If the `path` argument is a directory, that path will be scanned for playlist files to be processed. + Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. + The GUID of each playlist is based on the filename. + If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. + The GUID of each playlist is based on the filename. + + * @param force Force overwriting of duplicate playlists. + By default, a playlist file uploaded with the same path will overwrite the existing playlist. + The `force` argument is used to disable overwriting. + If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. + + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.UploadPlaylistResponse uploadPlaylist(String path, lukehagar.plexapi.plexapi.models.operations.Force force) throws Exception { + lukehagar.plexapi.plexapi.models.operations.UploadPlaylistRequest request = new lukehagar.plexapi.plexapi.models.operations.UploadPlaylistRequest(path, force); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/playlists/upload"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("POST"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.UploadPlaylistRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.UploadPlaylistResponse res = new lukehagar.plexapi.plexapi.models.operations.UploadPlaylistResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.UploadPlaylistResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.UploadPlaylistResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Plex.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Plex.java new file mode 100644 index 00000000..b95de554 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Plex.java @@ -0,0 +1,237 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * API Calls that perform operations directly against https://Plex.tv + * + */ +public class Plex { + + /** + * GET_PIN_SERVERS contains the list of server urls available to the SDK. + */ + public static final String[] GET_PIN_SERVERS = { + "https://plex.tv/api/v2", + }; + + /** + * GET_TOKEN_SERVERS contains the list of server urls available to the SDK. + */ + public static final String[] GET_TOKEN_SERVERS = { + "https://plex.tv/api/v2", + }; + + private SDKConfiguration sdkConfiguration; + + public Plex(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get a Pin + * Retrieve a Pin from Plex.tv for authentication flows + * @param xPlexClientIdentifier The unique identifier for the client application + This is used to track the client application and its usage + (UUID, serial number, or other number unique per device) + + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPinResponse getPin(String xPlexClientIdentifier) throws Exception { + return this.getPin(xPlexClientIdentifier, null, null); + } + + /** + * Get a Pin + * Retrieve a Pin from Plex.tv for authentication flows + * @param xPlexClientIdentifier The unique identifier for the client application + This is used to track the client application and its usage + (UUID, serial number, or other number unique per device) + + * @param serverURL an optional server URL to use + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPinResponse getPin(String xPlexClientIdentifier, String serverURL) throws Exception { + return this.getPin(xPlexClientIdentifier, null, serverURL); + } + + /** + * Get a Pin + * Retrieve a Pin from Plex.tv for authentication flows + * @param xPlexClientIdentifier The unique identifier for the client application + This is used to track the client application and its usage + (UUID, serial number, or other number unique per device) + + * @param strong Determines the kind of code returned by the API call + Strong codes are used for Pin authentication flows + Non-Strong codes are used for `Plex.tv/link` + + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPinResponse getPin(String xPlexClientIdentifier, Boolean strong) throws Exception { + return this.getPin(xPlexClientIdentifier, strong, null); + } + + /** + * Get a Pin + * Retrieve a Pin from Plex.tv for authentication flows + * @param xPlexClientIdentifier The unique identifier for the client application + This is used to track the client application and its usage + (UUID, serial number, or other number unique per device) + + * @param strong Determines the kind of code returned by the API call + Strong codes are used for Pin authentication flows + Non-Strong codes are used for `Plex.tv/link` + + * @param serverURL an optional server URL to use + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetPinResponse getPin(String xPlexClientIdentifier, Boolean strong, String serverURL) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetPinRequest request = new lukehagar.plexapi.plexapi.models.operations.GetPinRequest(xPlexClientIdentifier); + request.strong=strong; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(GET_PIN_SERVERS[0], new java.util.HashMap()); + if (serverURL != null && !serverURL.isBlank()) { + baseUrl = serverURL; + } + + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/pins"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("POST"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetPinRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + java.util.Map> headers = lukehagar.plexapi.plexapi.utils.Utils.getHeaders(request); + if (headers != null) { + for (java.util.Map.Entry> header : headers.entrySet()) { + for (String value : header.getValue()) { + req.addHeader(header.getKey(), value); + } + } + } + + HTTPClient client = this.sdkConfiguration.defaultClient; + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetPinResponse res = new lukehagar.plexapi.plexapi.models.operations.GetPinResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPinResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPinResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetPinPlexResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetPinPlexResponseBody.class); + res.fourHundredApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Access Token + * Retrieve an Access Token from Plex.tv after the Pin has already been authenticated + * @param pinID The PinID to retrieve an access token for + * @param xPlexClientIdentifier The unique identifier for the client application + This is used to track the client application and its usage + (UUID, serial number, or other number unique per device) + + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetTokenResponse getToken(String pinID, String xPlexClientIdentifier) throws Exception { + return this.getToken(pinID, xPlexClientIdentifier, null); + } + + /** + * Get Access Token + * Retrieve an Access Token from Plex.tv after the Pin has already been authenticated + * @param pinID The PinID to retrieve an access token for + * @param xPlexClientIdentifier The unique identifier for the client application + This is used to track the client application and its usage + (UUID, serial number, or other number unique per device) + + * @param serverURL an optional server URL to use + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetTokenResponse getToken(String pinID, String xPlexClientIdentifier, String serverURL) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetTokenRequest request = new lukehagar.plexapi.plexapi.models.operations.GetTokenRequest(pinID, xPlexClientIdentifier); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(GET_TOKEN_SERVERS[0], new java.util.HashMap()); + if (serverURL != null && !serverURL.isBlank()) { + baseUrl = serverURL; + } + + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.GetTokenRequest.class, baseUrl, "/pins/{pinID}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.Map> headers = lukehagar.plexapi.plexapi.utils.Utils.getHeaders(request); + if (headers != null) { + for (java.util.Map.Entry> header : headers.entrySet()) { + for (String value : header.getValue()) { + req.addHeader(header.getKey(), value); + } + } + } + + HTTPClient client = this.sdkConfiguration.defaultClient; + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetTokenResponse res = new lukehagar.plexapi.plexapi.models.operations.GetTokenResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200) { + } + else if (httpRes.statusCode() == 400) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetTokenResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetTokenResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/PlexAPI.java b/lib/src/main/java/lukehagar/plexapi/plexapi/PlexAPI.java new file mode 100644 index 00000000..e4c8229e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/PlexAPI.java @@ -0,0 +1,310 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.annotation.JsonValue; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.SpeakeasyHTTPClient; + +/** + * Plex-API: A Plex Media Server API Map + * An Open API Spec for interacting with Plex.tv and Plex Servers + */ +public class PlexAPI { + /** + * SERVERS contains the list of server urls available to the SDK. + */ + public static final String[] SERVERS = { + /** + * The full address of your Plex Server + */ + "{protocol}://{ip}:{port}", + }; + + /** + * Operations against the Plex Media Server System. + * + */ + public Server server; + /** + * API Calls interacting with Plex Media Server Media + * + */ + public Media media; + /** + * API Calls that perform operations with Plex Media Server Videos + * + */ + public Video video; + /** + * Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints. + * Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity. + * Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details: + * - They can contain a `progress` (from 0 to 100) marking the percent completion of the activity. + * - They must contain an `type` which is used by clients to distinguish the specific activity. + * - They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.) + * - The may contain a `Response` object which attributes which represent the result of the asynchronous operation. + * + */ + public Activities activities; + /** + * Butler is the task manager of the Plex Media Server Ecosystem. + * + */ + public Butler butler; + /** + * Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows. + * + */ + public Hubs hubs; + /** + * API Calls that perform search operations with Plex Media Server + * + */ + public Search search; + /** + * API Calls interacting with Plex Media Server Libraries + * + */ + public Library library; + /** + * Submit logs to the Log Handler for Plex Media Server + * + */ + public Log log; + /** + * API Calls that perform operations directly against https://Plex.tv + * + */ + public Plex plex; + /** + * Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017"). + * They can be organized in (optionally nesting) folders. + * Retrieving a playlist, or its items, will trigger a refresh of its metadata. + * This may cause the duration and number of items to change. + * + */ + public Playlists playlists; + /** + * API Calls regarding authentication for Plex Media Server + * + */ + public Authentication authentication; + /** + * API Calls that perform operations with Plex Media Server Statistics + * + */ + public Statistics statistics; + /** + * API Calls that perform search operations with Plex Media Server Sessions + * + */ + public Sessions sessions; + /** + * This describes the API for searching and applying updates to the Plex Media Server. + * Updates to the status can be observed via the Event API. + * + */ + public Updater updater; + + private SDKConfiguration sdkConfiguration; + + /** + * The Builder class allows the configuration of a new instance of the SDK. + */ + public static class Builder { + private SDKConfiguration sdkConfiguration = new SDKConfiguration(); + + private Builder() { + } + + /** + * Allows the default HTTP client to be overridden with a custom implementation. + * @param client The HTTP client to use for all requests. + * @return The builder instance. + */ + public Builder setClient(HTTPClient client) { + this.sdkConfiguration.defaultClient = client; + return this; + } + + /** + * Configures the SDK to use the provided security details. + * @param security The security details to use for all requests. + * @return The builder instance. + */ + public Builder setSecurity(lukehagar.plexapi.plexapi.models.shared.Security security) { + this.sdkConfiguration.security = security; + return this; + } + + /** + * Allows the overriding of the default server URL. + * @param serverUrl The server URL to use for all requests. + * @return The builder instance. + */ + public Builder setServerURL(String serverUrl) { + this.sdkConfiguration.serverUrl = serverUrl; + return this; + } + + /** + * Allows the overriding of the default server URL with a templated URL populated with the provided parameters. + * @param serverUrl The server URL to use for all requests. + * @param params The parameters to use when templating the URL. + * @return The builder instance. + */ + public Builder setServerURL(String serverUrl, java.util.Map params) { + this.sdkConfiguration.serverUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(serverUrl, params); + return this; + } + + /** + * Allows the overriding of the default server by index + * @param serverIdx The server to use for all requests. + * @return The builder instance. + */ + public Builder setServerIndex(int serverIdx) { + this.sdkConfiguration.serverIdx = serverIdx; + this.sdkConfiguration.serverUrl = SERVERS[serverIdx]; + return this; + } + + /** + * ServerProtocol - The protocol to use when connecting to your plex server. + */ + public enum ServerProtocol { + HTTP("http"), + HTTPS("https"); + + @JsonValue + public final String value; + + private ServerProtocol(String value) { + this.value = value; + } + } + + /** + * Allows setting the $variable.Name variable for url substitution. + * @param protocol The value to set. + * @return The builder instance. + */ + public Builder setProtocol(ServerProtocol protocol) { + for (java.util.Map server : this.sdkConfiguration.serverDefaults) { + if (!server.containsKey("protocol")) { + continue; + } + server.put("protocol", protocol.toString()); + } + + return this; + } + + /** + * Allows setting the $variable.Name variable for url substitution. + * @param ip The value to set. + * @return The builder instance. + */ + public Builder setIp(String ip) { + for (java.util.Map server : this.sdkConfiguration.serverDefaults) { + if (!server.containsKey("ip")) { + continue; + } + server.put("ip", ip.toString()); + } + + return this; + } + + /** + * Allows setting the $variable.Name variable for url substitution. + * @param port The value to set. + * @return The builder instance. + */ + public Builder setPort(String port) { + for (java.util.Map server : this.sdkConfiguration.serverDefaults) { + if (!server.containsKey("port")) { + continue; + } + server.put("port", port.toString()); + } + + return this; + } + + /** + * Builds a new instance of the SDK. + * @return The SDK instance. + * @throws Exception Thrown if the SDK could not be built. + */ + public PlexAPI build() throws Exception { + if (this.sdkConfiguration.defaultClient == null) { + this.sdkConfiguration.defaultClient = new SpeakeasyHTTPClient(); + } + + if (this.sdkConfiguration.security != null) { + this.sdkConfiguration.securityClient = lukehagar.plexapi.plexapi.utils.Utils.configureSecurityClient(this.sdkConfiguration.defaultClient, this.sdkConfiguration.security); + } + + if (this.sdkConfiguration.securityClient == null) { + this.sdkConfiguration.securityClient = this.sdkConfiguration.defaultClient; + } + + if (this.sdkConfiguration.serverUrl == null || this.sdkConfiguration.serverUrl.isBlank()) { + this.sdkConfiguration.serverUrl = SERVERS[0]; + this.sdkConfiguration.serverIdx = 0; + } + + if (this.sdkConfiguration.serverUrl.endsWith("/")) { + this.sdkConfiguration.serverUrl = this.sdkConfiguration.serverUrl.substring(0, this.sdkConfiguration.serverUrl.length() - 1); + } + + return new PlexAPI(this.sdkConfiguration); + } + } + + /** + * Get a new instance of the SDK builder to configure a new instance of the SDK. + * @return The SDK builder instance. + */ + public static Builder builder() { + return new Builder(); + } + + private PlexAPI(SDKConfiguration sdkConfiguration) throws Exception { + this.sdkConfiguration = sdkConfiguration; + + this.server = new Server(this.sdkConfiguration); + + this.media = new Media(this.sdkConfiguration); + + this.video = new Video(this.sdkConfiguration); + + this.activities = new Activities(this.sdkConfiguration); + + this.butler = new Butler(this.sdkConfiguration); + + this.hubs = new Hubs(this.sdkConfiguration); + + this.search = new Search(this.sdkConfiguration); + + this.library = new Library(this.sdkConfiguration); + + this.log = new Log(this.sdkConfiguration); + + this.plex = new Plex(this.sdkConfiguration); + + this.playlists = new Playlists(this.sdkConfiguration); + + this.authentication = new Authentication(this.sdkConfiguration); + + this.statistics = new Statistics(this.sdkConfiguration); + + this.sessions = new Sessions(this.sdkConfiguration); + + this.updater = new Updater(this.sdkConfiguration); + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/SDKConfiguration.java b/lib/src/main/java/lukehagar/plexapi/plexapi/SDKConfiguration.java new file mode 100644 index 00000000..067707ef --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/SDKConfiguration.java @@ -0,0 +1,37 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.models.shared.Security; +import java.util.Map; +import java.util.HashMap; +import java.util.List; +import java.util.ArrayList; + +class SDKConfiguration { + public HTTPClient defaultClient; + public HTTPClient securityClient; + public Security security; + public String serverUrl; + public int serverIdx = 0; + List> serverDefaults = new ArrayList>(){{ + add(new HashMap(){{ + put("protocol", "http"); + put("ip", "10.10.10.47"); + put("port", "32400"); + }}); + }}; + public String language = "java"; + public String openapiDocVersion = "0.0.3"; + public String sdkVersion = "0.0.1"; + public String genVersion = "2.277.0"; + public String userAgent = "speakeasy-sdk/java 0.0.1 2.277.0 0.0.3 lukehagar.plexapi.plexapi"; + + + public Map getServerVariableDefaults() { + return serverDefaults.get(this.serverIdx); + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Search.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Search.java new file mode 100644 index 00000000..6af2d836 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Search.java @@ -0,0 +1,283 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * API Calls that perform search operations with Plex Media Server + * + */ +public class Search { + + private SDKConfiguration sdkConfiguration; + + public Search(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Perform a search + * This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor). + * + * In the response's items, the following extra attributes are returned to further describe or disambiguate the result: + * + * - `reason`: The reason for the result, if not because of a direct search term match; can be either: + * - `section`: There are multiple identical results from different sections. + * - `originalTitle`: There was a search term match from the original title field (sometimes those can be very different or in a foreign language). + * - `<hub identifier>`: If the reason for the result is due to a result in another hub, the source hub identifier is returned. For example, if the search is for "dylan" then Bob Dylan may be returned as an artist result, an a few of his albums returned as album results with a reason code of `artist` (the identifier of that particular hub). Or if the search is for "arnold", there might be movie results returned with a reason of `actor` + * - `reasonTitle`: The string associated with the reason code. For a section reason, it'll be the section name; For a hub identifier, it'll be a string associated with the match (e.g. `Arnold Schwarzenegger` for movies which were returned because the search was for "arnold"). + * - `reasonID`: The ID of the item associated with the reason for the result. This might be a section ID, a tag ID, an artist ID, or a show ID. + * + * This request is intended to be very fast, and called as the user types. + * + * @param query The query term + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.PerformSearchResponse performSearch(String query) throws Exception { + return this.performSearch(query, null, null); + } + + /** + * Perform a search + * This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor). + * + * In the response's items, the following extra attributes are returned to further describe or disambiguate the result: + * + * - `reason`: The reason for the result, if not because of a direct search term match; can be either: + * - `section`: There are multiple identical results from different sections. + * - `originalTitle`: There was a search term match from the original title field (sometimes those can be very different or in a foreign language). + * - `<hub identifier>`: If the reason for the result is due to a result in another hub, the source hub identifier is returned. For example, if the search is for "dylan" then Bob Dylan may be returned as an artist result, an a few of his albums returned as album results with a reason code of `artist` (the identifier of that particular hub). Or if the search is for "arnold", there might be movie results returned with a reason of `actor` + * - `reasonTitle`: The string associated with the reason code. For a section reason, it'll be the section name; For a hub identifier, it'll be a string associated with the match (e.g. `Arnold Schwarzenegger` for movies which were returned because the search was for "arnold"). + * - `reasonID`: The ID of the item associated with the reason for the result. This might be a section ID, a tag ID, an artist ID, or a show ID. + * + * This request is intended to be very fast, and called as the user types. + * + * @param query The query term + * @param sectionId This gives context to the search, and can result in re-ordering of search result hubs + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.PerformSearchResponse performSearch(String query, Double sectionId) throws Exception { + return this.performSearch(query, sectionId, null); + } + + /** + * Perform a search + * This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor). + * + * In the response's items, the following extra attributes are returned to further describe or disambiguate the result: + * + * - `reason`: The reason for the result, if not because of a direct search term match; can be either: + * - `section`: There are multiple identical results from different sections. + * - `originalTitle`: There was a search term match from the original title field (sometimes those can be very different or in a foreign language). + * - `<hub identifier>`: If the reason for the result is due to a result in another hub, the source hub identifier is returned. For example, if the search is for "dylan" then Bob Dylan may be returned as an artist result, an a few of his albums returned as album results with a reason code of `artist` (the identifier of that particular hub). Or if the search is for "arnold", there might be movie results returned with a reason of `actor` + * - `reasonTitle`: The string associated with the reason code. For a section reason, it'll be the section name; For a hub identifier, it'll be a string associated with the match (e.g. `Arnold Schwarzenegger` for movies which were returned because the search was for "arnold"). + * - `reasonID`: The ID of the item associated with the reason for the result. This might be a section ID, a tag ID, an artist ID, or a show ID. + * + * This request is intended to be very fast, and called as the user types. + * + * @param query The query term + * @param sectionId This gives context to the search, and can result in re-ordering of search result hubs + * @param limit The number of items to return per hub + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.PerformSearchResponse performSearch(String query, Double sectionId, Double limit) throws Exception { + lukehagar.plexapi.plexapi.models.operations.PerformSearchRequest request = new lukehagar.plexapi.plexapi.models.operations.PerformSearchRequest(query); + request.sectionId=sectionId; + request.limit=limit; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/hubs/search"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.PerformSearchRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.PerformSearchResponse res = new lukehagar.plexapi.plexapi.models.operations.PerformSearchResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.PerformSearchResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.PerformSearchResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Perform a voice search + * This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint. + * It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint. + * Whenever possible, clients should limit the search to the appropriate type. + * Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality. + * + * @param query The query term + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponse performVoiceSearch(String query) throws Exception { + return this.performVoiceSearch(query, null, null); + } + + /** + * Perform a voice search + * This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint. + * It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint. + * Whenever possible, clients should limit the search to the appropriate type. + * Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality. + * + * @param query The query term + * @param sectionId This gives context to the search, and can result in re-ordering of search result hubs + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponse performVoiceSearch(String query, Double sectionId) throws Exception { + return this.performVoiceSearch(query, sectionId, null); + } + + /** + * Perform a voice search + * This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint. + * It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint. + * Whenever possible, clients should limit the search to the appropriate type. + * Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality. + * + * @param query The query term + * @param sectionId This gives context to the search, and can result in re-ordering of search result hubs + * @param limit The number of items to return per hub + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponse performVoiceSearch(String query, Double sectionId, Double limit) throws Exception { + lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchRequest request = new lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchRequest(query); + request.sectionId=sectionId; + request.limit=limit; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/hubs/search/voice"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponse res = new lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.PerformVoiceSearchResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Get Search Results + * This will search the database for the string provided. + * @param query The search query string to use + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetSearchResultsResponse getSearchResults(String query) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetSearchResultsRequest request = new lukehagar.plexapi.plexapi.models.operations.GetSearchResultsRequest(query); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/search"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetSearchResultsRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetSearchResultsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetSearchResultsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetSearchResultsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetSearchResultsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetSearchResultsSearchResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetSearchResultsSearchResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Server.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Server.java new file mode 100644 index 00000000..1a1ded89 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Server.java @@ -0,0 +1,410 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * Operations against the Plex Media Server System. + * + */ +public class Server { + + private SDKConfiguration sdkConfiguration; + + public Server(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Server Capabilities + * Server Capabilities + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponse getServerCapabilities() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponse res = new lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesServerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesServerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Server Preferences + * Get Server Preferences + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesResponse getServerPreferences() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/:/prefs"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesResponse res = new lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesServerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesServerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Available Clients + * Get Available Clients + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsResponse getAvailableClients() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/clients"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsServerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsServerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Devices + * Get Devices + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetDevicesResponse getDevices() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/devices"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetDevicesResponse res = new lukehagar.plexapi.plexapi.models.operations.GetDevicesResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetDevicesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetDevicesResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetDevicesServerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetDevicesServerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Server Identity + * Get Server Identity + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetServerIdentityResponse getServerIdentity() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/identity"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetServerIdentityResponse res = new lukehagar.plexapi.plexapi.models.operations.GetServerIdentityResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerIdentityResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerIdentityResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerIdentityServerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerIdentityServerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get MyPlex Account + * Returns MyPlex Account Information + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountResponse getMyPlexAccount() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/myplex/account"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountResponse res = new lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountServerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountServerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get a Resized Photo + * Plex's Photo transcoder is used throughout the service to serve images at specified sizes. + * + * @param request the request object containing all of the parameters for the API call + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoResponse getResizedPhoto(lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoRequest request) throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/photo/:/transcode"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoResponse res = new lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetResizedPhotoResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Get Server List + * Get Server List + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetServerListResponse getServerList() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/servers"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetServerListResponse res = new lukehagar.plexapi.plexapi.models.operations.GetServerListResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerListResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerListResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetServerListServerResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetServerListServerResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Sessions.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Sessions.java new file mode 100644 index 00000000..fa251643 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Sessions.java @@ -0,0 +1,212 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; + +/** + * API Calls that perform search operations with Plex Media Server Sessions + * + */ +public class Sessions { + + private SDKConfiguration sdkConfiguration; + + public Sessions(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get Active Sessions + * This will retrieve the "Now Playing" Information of the PMS. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetSessionsResponse getSessions() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/status/sessions"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetSessionsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetSessionsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetSessionsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetSessionsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetSessionsSessionsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetSessionsSessionsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Session History + * This will Retrieve a listing of all history views. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryResponse getSessionHistory() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/status/sessions/history/all"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryResponse res = new lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetSessionHistorySessionsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetSessionHistorySessionsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Get Transcode Sessions + * Get Transcode Sessions + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsResponse getTranscodeSessions() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/transcode/sessions"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsSessionsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsSessionsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Stop a Transcode Session + * Stop a Transcode Session + * @param sessionKey the Key of the transcode session to stop + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionResponse stopTranscodeSession(String sessionKey) throws Exception { + lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionRequest request = new lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionRequest(sessionKey); + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionRequest.class, baseUrl, "/transcode/sessions/{sessionKey}", request, null); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("DELETE"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionResponse res = new lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 204 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.StopTranscodeSessionResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Statistics.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Statistics.java new file mode 100644 index 00000000..73109812 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Statistics.java @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * API Calls that perform operations with Plex Media Server Statistics + * + */ +public class Statistics { + + private SDKConfiguration sdkConfiguration; + + public Statistics(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get Media Statistics + * This will return the media statistics for the server + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponse getStatistics() throws Exception { + return this.getStatistics(null); + } + + /** + * Get Media Statistics + * This will return the media statistics for the server + * @param timespan The timespan to retrieve statistics for + the exact meaning of this parameter is not known + + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponse getStatistics(Long timespan) throws Exception { + lukehagar.plexapi.plexapi.models.operations.GetStatisticsRequest request = new lukehagar.plexapi.plexapi.models.operations.GetStatisticsRequest(); + request.timespan=timespan; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/statistics/media"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetStatisticsRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponse res = new lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetStatisticsStatisticsResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetStatisticsStatisticsResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Updater.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Updater.java new file mode 100644 index 00000000..75146122 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Updater.java @@ -0,0 +1,223 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * This describes the API for searching and applying updates to the Plex Media Server. + * Updates to the status can be observed via the Event API. + * + */ +public class Updater { + + private SDKConfiguration sdkConfiguration; + + public Updater(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Querying status of updates + * Querying status of updates + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusResponse getUpdateStatus() throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/updater/status"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusResponse res = new lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusResponse(contentType, httpRes.statusCode(), httpRes) {{ + twoHundredApplicationJsonObject = null; + fourHundredAndOneApplicationJsonObject = null; + }}; + + if (httpRes.statusCode() == 200) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusResponseBody.class); + res.twoHundredApplicationJsonObject = out; + } + } + else if (httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusUpdaterResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusUpdaterResponseBody.class); + res.fourHundredAndOneApplicationJsonObject = out; + } + } + + return res; + } + + /** + * Checking for updates + * Checking for updates + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesResponse checkForUpdates() throws Exception { + return this.checkForUpdates(null); + } + + /** + * Checking for updates + * Checking for updates + * @param download Indicate that you want to start download any updates found. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesResponse checkForUpdates(lukehagar.plexapi.plexapi.models.operations.Download download) throws Exception { + lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesRequest request = new lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesRequest(); + request.download=download; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/updater/check"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("PUT"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesResponse res = new lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.CheckForUpdatesResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Apply Updates + * Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed + * + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponse applyUpdates() throws Exception { + return this.applyUpdates(null, null); + } + + /** + * Apply Updates + * Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed + * + * @param skip Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponse applyUpdates(lukehagar.plexapi.plexapi.models.operations.Skip skip) throws Exception { + return this.applyUpdates(null, skip); + } + + /** + * Apply Updates + * Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed + * + * @param tonight Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponse applyUpdates(lukehagar.plexapi.plexapi.models.operations.Tonight tonight) throws Exception { + return this.applyUpdates(tonight, null); + } + + /** + * Apply Updates + * Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed + * + * @param tonight Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install + * @param skip Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`. + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponse applyUpdates(lukehagar.plexapi.plexapi.models.operations.Tonight tonight, lukehagar.plexapi.plexapi.models.operations.Skip skip) throws Exception { + lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesRequest request = new lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesRequest(); + request.tonight=tonight; + request.skip=skip; + + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/updater/apply"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("PUT"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponse res = new lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400 || httpRes.statusCode() == 500) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.ApplyUpdatesResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/Video.java b/lib/src/main/java/lukehagar/plexapi/plexapi/Video.java new file mode 100644 index 00000000..c01ef036 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/Video.java @@ -0,0 +1,120 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import lukehagar.plexapi.plexapi.utils.HTTPClient; +import lukehagar.plexapi.plexapi.utils.HTTPRequest; +import lukehagar.plexapi.plexapi.utils.JSON; +import org.apache.http.NameValuePair; + +/** + * API Calls that perform operations with Plex Media Server Videos + * + */ +public class Video { + + private SDKConfiguration sdkConfiguration; + + public Video(SDKConfiguration sdkConfiguration) { + this.sdkConfiguration = sdkConfiguration; + } + + /** + * Get the timeline for a media item + * Get the timeline for a media item + * @param request the request object containing all of the parameters for the API call + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.GetTimelineResponse getTimeline(lukehagar.plexapi.plexapi.models.operations.GetTimelineRequest request) throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/:/timeline"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.GetTimelineRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.GetTimelineResponse res = new lukehagar.plexapi.plexapi.models.operations.GetTimelineResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.GetTimelineResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.GetTimelineResponseBody.class); + res.object = out; + } + } + + return res; + } + + /** + * Start Universal Transcode + * Begin a Universal Transcode Session + * @param request the request object containing all of the parameters for the API call + * @return the response from the API call + * @throws Exception if the API call fails + */ + public lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeResponse startUniversalTranscode(lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeRequest request) throws Exception { + String baseUrl = lukehagar.plexapi.plexapi.utils.Utils.templateUrl(this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String url = lukehagar.plexapi.plexapi.utils.Utils.generateURL(baseUrl, "/video/:/transcode/universal/start.mpd"); + + HTTPRequest req = new HTTPRequest(); + req.setMethod("GET"); + req.setURL(url); + + req.addHeader("Accept", "application/json"); + req.addHeader("user-agent", this.sdkConfiguration.userAgent); + java.util.List queryParams = lukehagar.plexapi.plexapi.utils.Utils.getQueryParams(lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeRequest.class, request, null); + if (queryParams != null) { + for (NameValuePair queryParam : queryParams) { + req.addQueryParam(queryParam); + } + } + + HTTPClient client = this.sdkConfiguration.securityClient; + + HttpResponse httpRes = client.send(req); + + String contentType = httpRes.headers().firstValue("Content-Type").orElse("application/octet-stream"); + + lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeResponse res = new lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeResponse(contentType, httpRes.statusCode(), httpRes) {{ + object = null; + }}; + + if (httpRes.statusCode() == 200 || httpRes.statusCode() == 400) { + } + else if (httpRes.statusCode() == 401) { + if (lukehagar.plexapi.plexapi.utils.Utils.matchContentType(contentType, "application/json")) { + ObjectMapper mapper = JSON.getMapper(); + lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeResponseBody out = mapper.readValue(new String(httpRes.body(), StandardCharsets.UTF_8), lukehagar.plexapi.plexapi.models.operations.StartUniversalTranscodeResponseBody.class); + res.object = out; + } + } + + return res; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Account.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Account.java new file mode 100644 index 00000000..d31b3426 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Account.java @@ -0,0 +1,86 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Account { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public Account withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Account withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + public String name; + + public Account withName(String name) { + this.name = name; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("defaultAudioLanguage") + public String defaultAudioLanguage; + + public Account withDefaultAudioLanguage(String defaultAudioLanguage) { + this.defaultAudioLanguage = defaultAudioLanguage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("autoSelectAudio") + public Boolean autoSelectAudio; + + public Account withAutoSelectAudio(Boolean autoSelectAudio) { + this.autoSelectAudio = autoSelectAudio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("defaultSubtitleLanguage") + public String defaultSubtitleLanguage; + + public Account withDefaultSubtitleLanguage(String defaultSubtitleLanguage) { + this.defaultSubtitleLanguage = defaultSubtitleLanguage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subtitleMode") + public Integer subtitleMode; + + public Account withSubtitleMode(Integer subtitleMode) { + this.subtitleMode = subtitleMode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public Account withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + public Account(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Activity.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Activity.java new file mode 100644 index 00000000..95acf085 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Activity.java @@ -0,0 +1,86 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Activity { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("uuid") + public String uuid; + + public Activity withUuid(String uuid) { + this.uuid = uuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Activity withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("cancellable") + public Boolean cancellable; + + public Activity withCancellable(Boolean cancellable) { + this.cancellable = cancellable; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("userID") + public Double userID; + + public Activity withUserID(Double userID) { + this.userID = userID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Activity withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subtitle") + public String subtitle; + + public Activity withSubtitle(String subtitle) { + this.subtitle = subtitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("progress") + public Double progress; + + public Activity withProgress(Double progress) { + this.progress = progress; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Context") + public Context context; + + public Activity withContext(Context context) { + this.context = context; + return this; + } + + public Activity(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsErrors.java new file mode 100644 index 00000000..d038e9ef --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class AddPlaylistContentsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public AddPlaylistContentsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public AddPlaylistContentsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public AddPlaylistContentsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public AddPlaylistContentsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMediaContainer.java new file mode 100644 index 00000000..988cb1d5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMediaContainer.java @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class AddPlaylistContentsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public AddPlaylistContentsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCountAdded") + public Integer leafCountAdded; + + public AddPlaylistContentsMediaContainer withLeafCountAdded(Integer leafCountAdded) { + this.leafCountAdded = leafCountAdded; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCountRequested") + public Integer leafCountRequested; + + public AddPlaylistContentsMediaContainer withLeafCountRequested(Integer leafCountRequested) { + this.leafCountRequested = leafCountRequested; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public AddPlaylistContentsMetadata[] metadata; + + public AddPlaylistContentsMediaContainer withMetadata(AddPlaylistContentsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public AddPlaylistContentsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMetadata.java new file mode 100644 index 00000000..c530f70b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMetadata.java @@ -0,0 +1,131 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class AddPlaylistContentsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public AddPlaylistContentsMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public AddPlaylistContentsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public AddPlaylistContentsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public AddPlaylistContentsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public AddPlaylistContentsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public AddPlaylistContentsMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("smart") + public Boolean smart; + + public AddPlaylistContentsMetadata withSmart(Boolean smart) { + this.smart = smart; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("playlistType") + public String playlistType; + + public AddPlaylistContentsMetadata withPlaylistType(String playlistType) { + this.playlistType = playlistType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("composite") + public String composite; + + public AddPlaylistContentsMetadata withComposite(String composite) { + this.composite = composite; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public AddPlaylistContentsMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public AddPlaylistContentsMetadata withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public AddPlaylistContentsMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public AddPlaylistContentsMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public AddPlaylistContentsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsPlaylistsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsPlaylistsResponseBody.java new file mode 100644 index 00000000..5199997d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsPlaylistsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * AddPlaylistContentsPlaylistsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class AddPlaylistContentsPlaylistsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public AddPlaylistContentsErrors[] errors; + + public AddPlaylistContentsPlaylistsResponseBody withErrors(AddPlaylistContentsErrors[] errors) { + this.errors = errors; + return this; + } + + public AddPlaylistContentsPlaylistsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsRequest.java new file mode 100644 index 00000000..1724cf2a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsRequest.java @@ -0,0 +1,49 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class AddPlaylistContentsRequest { + /** + * the ID of the playlist + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=playlistID") + public Double playlistID; + + public AddPlaylistContentsRequest withPlaylistID(Double playlistID) { + this.playlistID = playlistID; + return this; + } + + /** + * the content URI for the playlist + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=uri") + public String uri; + + public AddPlaylistContentsRequest withUri(String uri) { + this.uri = uri; + return this; + } + + /** + * the play queue to add to a playlist + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=playQueueID") + public Double playQueueID; + + public AddPlaylistContentsRequest withPlayQueueID(Double playQueueID) { + this.playQueueID = playQueueID; + return this; + } + + public AddPlaylistContentsRequest(@JsonProperty("playlistID") Double playlistID, @JsonProperty("uri") String uri) { + this.playlistID = playlistID; + this.uri = uri; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponse.java new file mode 100644 index 00000000..34b26b39 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class AddPlaylistContentsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public AddPlaylistContentsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public AddPlaylistContentsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public AddPlaylistContentsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Playlist Updated + */ + + public AddPlaylistContentsResponseBody twoHundredApplicationJsonObject; + + public AddPlaylistContentsResponse withTwoHundredApplicationJsonObject(AddPlaylistContentsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public AddPlaylistContentsPlaylistsResponseBody fourHundredAndOneApplicationJsonObject; + + public AddPlaylistContentsResponse withFourHundredAndOneApplicationJsonObject(AddPlaylistContentsPlaylistsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public AddPlaylistContentsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponseBody.java new file mode 100644 index 00000000..38063a19 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * AddPlaylistContentsResponseBody - Playlist Updated + */ + +public class AddPlaylistContentsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public AddPlaylistContentsMediaContainer mediaContainer; + + public AddPlaylistContentsResponseBody withMediaContainer(AddPlaylistContentsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public AddPlaylistContentsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesErrors.java new file mode 100644 index 00000000..9ce148f6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class ApplyUpdatesErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public ApplyUpdatesErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public ApplyUpdatesErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public ApplyUpdatesErrors withStatus(Double status) { + this.status = status; + return this; + } + + public ApplyUpdatesErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesRequest.java new file mode 100644 index 00000000..26afb302 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesRequest.java @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class ApplyUpdatesRequest { + /** + * Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=tonight") + public Tonight tonight; + + public ApplyUpdatesRequest withTonight(Tonight tonight) { + this.tonight = tonight; + return this; + } + + /** + * Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=skip") + public Skip skip; + + public ApplyUpdatesRequest withSkip(Skip skip) { + this.skip = skip; + return this; + } + + public ApplyUpdatesRequest(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponse.java new file mode 100644 index 00000000..1e0fcdcd --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class ApplyUpdatesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public ApplyUpdatesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public ApplyUpdatesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public ApplyUpdatesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public ApplyUpdatesResponseBody object; + + public ApplyUpdatesResponse withObject(ApplyUpdatesResponseBody object) { + this.object = object; + return this; + } + + public ApplyUpdatesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponseBody.java new file mode 100644 index 00000000..be0f5a88 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * ApplyUpdatesResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class ApplyUpdatesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public ApplyUpdatesErrors[] errors; + + public ApplyUpdatesResponseBody withErrors(ApplyUpdatesErrors[] errors) { + this.errors = errors; + return this; + } + + public ApplyUpdatesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTask.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTask.java new file mode 100644 index 00000000..40f5b2e7 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTask.java @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class ButlerTask { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + public String name; + + public ButlerTask withName(String name) { + this.name = name; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("interval") + public Double interval; + + public ButlerTask withInterval(Double interval) { + this.interval = interval; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scheduleRandomized") + public Boolean scheduleRandomized; + + public ButlerTask withScheduleRandomized(Boolean scheduleRandomized) { + this.scheduleRandomized = scheduleRandomized; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("enabled") + public Boolean enabled; + + public ButlerTask withEnabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public ButlerTask withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("description") + public String description; + + public ButlerTask withDescription(String description) { + this.description = description; + return this; + } + + public ButlerTask(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTasks.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTasks.java new file mode 100644 index 00000000..839aa524 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTasks.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class ButlerTasks { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ButlerTask") + public ButlerTask[] butlerTask; + + public ButlerTasks withButlerTask(ButlerTask[] butlerTask) { + this.butlerTask = butlerTask; + return this; + } + + public ButlerTasks(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesErrors.java new file mode 100644 index 00000000..0365a030 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class CancelServerActivitiesErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public CancelServerActivitiesErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public CancelServerActivitiesErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public CancelServerActivitiesErrors withStatus(Double status) { + this.status = status; + return this; + } + + public CancelServerActivitiesErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesRequest.java new file mode 100644 index 00000000..d07c53b1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class CancelServerActivitiesRequest { + /** + * The UUID of the activity to cancel. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=activityUUID") + public String activityUUID; + + public CancelServerActivitiesRequest withActivityUUID(String activityUUID) { + this.activityUUID = activityUUID; + return this; + } + + public CancelServerActivitiesRequest(@JsonProperty("activityUUID") String activityUUID) { + this.activityUUID = activityUUID; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponse.java new file mode 100644 index 00000000..a2e36d33 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class CancelServerActivitiesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public CancelServerActivitiesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public CancelServerActivitiesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public CancelServerActivitiesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public CancelServerActivitiesResponseBody object; + + public CancelServerActivitiesResponse withObject(CancelServerActivitiesResponseBody object) { + this.object = object; + return this; + } + + public CancelServerActivitiesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponseBody.java new file mode 100644 index 00000000..715036d4 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * CancelServerActivitiesResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class CancelServerActivitiesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public CancelServerActivitiesErrors[] errors; + + public CancelServerActivitiesResponseBody withErrors(CancelServerActivitiesErrors[] errors) { + this.errors = errors; + return this; + } + + public CancelServerActivitiesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesErrors.java new file mode 100644 index 00000000..959917ac --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class CheckForUpdatesErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public CheckForUpdatesErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public CheckForUpdatesErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public CheckForUpdatesErrors withStatus(Double status) { + this.status = status; + return this; + } + + public CheckForUpdatesErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesRequest.java new file mode 100644 index 00000000..bba976c2 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesRequest.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class CheckForUpdatesRequest { + /** + * Indicate that you want to start download any updates found. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=download") + public Download download; + + public CheckForUpdatesRequest withDownload(Download download) { + this.download = download; + return this; + } + + public CheckForUpdatesRequest(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponse.java new file mode 100644 index 00000000..d257df27 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class CheckForUpdatesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public CheckForUpdatesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public CheckForUpdatesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public CheckForUpdatesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public CheckForUpdatesResponseBody object; + + public CheckForUpdatesResponse withObject(CheckForUpdatesResponseBody object) { + this.object = object; + return this; + } + + public CheckForUpdatesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponseBody.java new file mode 100644 index 00000000..fa2f0011 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * CheckForUpdatesResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class CheckForUpdatesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public CheckForUpdatesErrors[] errors; + + public CheckForUpdatesResponseBody withErrors(CheckForUpdatesErrors[] errors) { + this.errors = errors; + return this; + } + + public CheckForUpdatesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsErrors.java new file mode 100644 index 00000000..87cdd070 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class ClearPlaylistContentsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public ClearPlaylistContentsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public ClearPlaylistContentsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public ClearPlaylistContentsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public ClearPlaylistContentsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsRequest.java new file mode 100644 index 00000000..dd491ccf --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class ClearPlaylistContentsRequest { + /** + * the ID of the playlist + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=playlistID") + public Double playlistID; + + public ClearPlaylistContentsRequest withPlaylistID(Double playlistID) { + this.playlistID = playlistID; + return this; + } + + public ClearPlaylistContentsRequest(@JsonProperty("playlistID") Double playlistID) { + this.playlistID = playlistID; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponse.java new file mode 100644 index 00000000..70f77233 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class ClearPlaylistContentsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public ClearPlaylistContentsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public ClearPlaylistContentsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public ClearPlaylistContentsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public ClearPlaylistContentsResponseBody object; + + public ClearPlaylistContentsResponse withObject(ClearPlaylistContentsResponseBody object) { + this.object = object; + return this; + } + + public ClearPlaylistContentsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponseBody.java new file mode 100644 index 00000000..bf1cee73 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * ClearPlaylistContentsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class ClearPlaylistContentsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public ClearPlaylistContentsErrors[] errors; + + public ClearPlaylistContentsResponseBody withErrors(ClearPlaylistContentsErrors[] errors) { + this.errors = errors; + return this; + } + + public ClearPlaylistContentsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Context.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Context.java new file mode 100644 index 00000000..95743e15 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Context.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Context { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public String librarySectionID; + + public Context withLibrarySectionID(String librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + public Context(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Country.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Country.java new file mode 100644 index 00000000..f4ffb97b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Country.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Country { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public Country withTag(String tag) { + this.tag = tag; + return this; + } + + public Country(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistErrors.java new file mode 100644 index 00000000..d667a89f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class CreatePlaylistErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public CreatePlaylistErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public CreatePlaylistErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public CreatePlaylistErrors withStatus(Double status) { + this.status = status; + return this; + } + + public CreatePlaylistErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMediaContainer.java new file mode 100644 index 00000000..1bb24f20 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class CreatePlaylistMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public CreatePlaylistMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public CreatePlaylistMetadata[] metadata; + + public CreatePlaylistMediaContainer withMetadata(CreatePlaylistMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public CreatePlaylistMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMetadata.java new file mode 100644 index 00000000..db677347 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMetadata.java @@ -0,0 +1,158 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class CreatePlaylistMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public CreatePlaylistMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public CreatePlaylistMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public CreatePlaylistMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public CreatePlaylistMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public CreatePlaylistMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public CreatePlaylistMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("smart") + public Boolean smart; + + public CreatePlaylistMetadata withSmart(Boolean smart) { + this.smart = smart; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("playlistType") + public String playlistType; + + public CreatePlaylistMetadata withPlaylistType(String playlistType) { + this.playlistType = playlistType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("icon") + public String icon; + + public CreatePlaylistMetadata withIcon(String icon) { + this.icon = icon; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewCount") + public Integer viewCount; + + public CreatePlaylistMetadata withViewCount(Integer viewCount) { + this.viewCount = viewCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastViewedAt") + public Integer lastViewedAt; + + public CreatePlaylistMetadata withLastViewedAt(Integer lastViewedAt) { + this.lastViewedAt = lastViewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public CreatePlaylistMetadata withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public CreatePlaylistMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public CreatePlaylistMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("composite") + public String composite; + + public CreatePlaylistMetadata withComposite(String composite) { + this.composite = composite; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public CreatePlaylistMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + public CreatePlaylistMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistPlaylistsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistPlaylistsResponseBody.java new file mode 100644 index 00000000..eedbdc31 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistPlaylistsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * CreatePlaylistPlaylistsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class CreatePlaylistPlaylistsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public CreatePlaylistErrors[] errors; + + public CreatePlaylistPlaylistsResponseBody withErrors(CreatePlaylistErrors[] errors) { + this.errors = errors; + return this; + } + + public CreatePlaylistPlaylistsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistRequest.java new file mode 100644 index 00000000..36c7277a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistRequest.java @@ -0,0 +1,73 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class CreatePlaylistRequest { + /** + * name of the playlist + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=title") + public String title; + + public CreatePlaylistRequest withTitle(String title) { + this.title = title; + return this; + } + + /** + * type of playlist to create + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=type") + public QueryParamType type; + + public CreatePlaylistRequest withType(QueryParamType type) { + this.type = type; + return this; + } + + /** + * whether the playlist is smart or not + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=smart") + public Smart smart; + + public CreatePlaylistRequest withSmart(Smart smart) { + this.smart = smart; + return this; + } + + /** + * the content URI for the playlist + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=uri") + public String uri; + + public CreatePlaylistRequest withUri(String uri) { + this.uri = uri; + return this; + } + + /** + * the play queue to copy to a playlist + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=playQueueID") + public Double playQueueID; + + public CreatePlaylistRequest withPlayQueueID(Double playQueueID) { + this.playQueueID = playQueueID; + return this; + } + + public CreatePlaylistRequest(@JsonProperty("title") String title, @JsonProperty("type") QueryParamType type, @JsonProperty("smart") Smart smart, @JsonProperty("uri") String uri) { + this.title = title; + this.type = type; + this.smart = smart; + this.uri = uri; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponse.java new file mode 100644 index 00000000..54a31d3c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class CreatePlaylistResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public CreatePlaylistResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public CreatePlaylistResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public CreatePlaylistResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * returns all playlists + */ + + public CreatePlaylistResponseBody twoHundredApplicationJsonObject; + + public CreatePlaylistResponse withTwoHundredApplicationJsonObject(CreatePlaylistResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public CreatePlaylistPlaylistsResponseBody fourHundredAndOneApplicationJsonObject; + + public CreatePlaylistResponse withFourHundredAndOneApplicationJsonObject(CreatePlaylistPlaylistsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public CreatePlaylistResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponseBody.java new file mode 100644 index 00000000..9727c35f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * CreatePlaylistResponseBody - returns all playlists + */ + +public class CreatePlaylistResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public CreatePlaylistMediaContainer mediaContainer; + + public CreatePlaylistResponseBody withMediaContainer(CreatePlaylistMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public CreatePlaylistResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryErrors.java new file mode 100644 index 00000000..ca27bc4c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class DeleteLibraryErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public DeleteLibraryErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public DeleteLibraryErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public DeleteLibraryErrors withStatus(Double status) { + this.status = status; + return this; + } + + public DeleteLibraryErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryRequest.java new file mode 100644 index 00000000..b254930a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class DeleteLibraryRequest { + /** + * the Id of the library to query + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId") + public Double sectionId; + + public DeleteLibraryRequest withSectionId(Double sectionId) { + this.sectionId = sectionId; + return this; + } + + public DeleteLibraryRequest(@JsonProperty("sectionId") Double sectionId) { + this.sectionId = sectionId; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponse.java new file mode 100644 index 00000000..2d9c2ca1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class DeleteLibraryResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public DeleteLibraryResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public DeleteLibraryResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public DeleteLibraryResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public DeleteLibraryResponseBody object; + + public DeleteLibraryResponse withObject(DeleteLibraryResponseBody object) { + this.object = object; + return this; + } + + public DeleteLibraryResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponseBody.java new file mode 100644 index 00000000..39e9b062 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * DeleteLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class DeleteLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public DeleteLibraryErrors[] errors; + + public DeleteLibraryResponseBody withErrors(DeleteLibraryErrors[] errors) { + this.errors = errors; + return this; + } + + public DeleteLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistErrors.java new file mode 100644 index 00000000..fb317628 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class DeletePlaylistErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public DeletePlaylistErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public DeletePlaylistErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public DeletePlaylistErrors withStatus(Double status) { + this.status = status; + return this; + } + + public DeletePlaylistErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistRequest.java new file mode 100644 index 00000000..e1472bfc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class DeletePlaylistRequest { + /** + * the ID of the playlist + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=playlistID") + public Double playlistID; + + public DeletePlaylistRequest withPlaylistID(Double playlistID) { + this.playlistID = playlistID; + return this; + } + + public DeletePlaylistRequest(@JsonProperty("playlistID") Double playlistID) { + this.playlistID = playlistID; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponse.java new file mode 100644 index 00000000..03190356 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class DeletePlaylistResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public DeletePlaylistResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public DeletePlaylistResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public DeletePlaylistResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public DeletePlaylistResponseBody object; + + public DeletePlaylistResponse withObject(DeletePlaylistResponseBody object) { + this.object = object; + return this; + } + + public DeletePlaylistResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponseBody.java new file mode 100644 index 00000000..ba935e42 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * DeletePlaylistResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class DeletePlaylistResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public DeletePlaylistErrors[] errors; + + public DeletePlaylistResponseBody withErrors(DeletePlaylistErrors[] errors) { + this.errors = errors; + return this; + } + + public DeletePlaylistResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Device.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Device.java new file mode 100644 index 00000000..afd74e6d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Device.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Device { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public Device withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + public String name; + + public Device withName(String name) { + this.name = name; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("platform") + public String platform; + + public Device withPlatform(String platform) { + this.platform = platform; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("clientIdentifier") + public String clientIdentifier; + + public Device withClientIdentifier(String clientIdentifier) { + this.clientIdentifier = clientIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("createdAt") + public Double createdAt; + + public Device withCreatedAt(Double createdAt) { + this.createdAt = createdAt; + return this; + } + + public Device(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Director.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Director.java new file mode 100644 index 00000000..dc6eccd5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Director.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Director { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public Director withTag(String tag) { + this.tag = tag; + return this; + } + + public Director(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Directory.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Directory.java new file mode 100644 index 00000000..6466ad04 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Directory.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Directory { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("count") + public Double count; + + public Directory withCount(Double count) { + this.count = count; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Directory withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Directory withTitle(String title) { + this.title = title; + return this; + } + + public Directory(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Download.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Download.java new file mode 100644 index 00000000..c01e0d57 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Download.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Download - Indicate that you want to start download any updates found. + */ +public enum Download { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private Download(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailErrors.java new file mode 100644 index 00000000..d5d917a7 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class EnablePaperTrailErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public EnablePaperTrailErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public EnablePaperTrailErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public EnablePaperTrailErrors withStatus(Double status) { + this.status = status; + return this; + } + + public EnablePaperTrailErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponse.java new file mode 100644 index 00000000..f830bf78 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class EnablePaperTrailResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public EnablePaperTrailResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public EnablePaperTrailResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public EnablePaperTrailResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public EnablePaperTrailResponseBody object; + + public EnablePaperTrailResponse withObject(EnablePaperTrailResponseBody object) { + this.object = object; + return this; + } + + public EnablePaperTrailResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponseBody.java new file mode 100644 index 00000000..dfbe9f4b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * EnablePaperTrailResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class EnablePaperTrailResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public EnablePaperTrailErrors[] errors; + + public EnablePaperTrailResponseBody withErrors(EnablePaperTrailErrors[] errors) { + this.errors = errors; + return this; + } + + public EnablePaperTrailResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Errors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Errors.java new file mode 100644 index 00000000..a6fcfbb0 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Errors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Errors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public Errors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public Errors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public Errors withStatus(Double status) { + this.status = status; + return this; + } + + public Errors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Field.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Field.java new file mode 100644 index 00000000..f1baa14e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Field.java @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Field { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Field withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Field withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Field withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subType") + public String subType; + + public Field withSubType(String subType) { + this.subType = subType; + return this; + } + + public Field(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/FieldType.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/FieldType.java new file mode 100644 index 00000000..b58775d1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/FieldType.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class FieldType { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public FieldType withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Operator") + public Operator[] operator; + + public FieldType withOperator(Operator[] operator) { + this.operator = operator; + return this; + } + + public FieldType(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Filter.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Filter.java new file mode 100644 index 00000000..258feefe --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Filter.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Filter { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filter") + public String filter; + + public Filter withFilter(String filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filterType") + public String filterType; + + public Filter withFilterType(String filterType) { + this.filterType = filterType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Filter withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Filter withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Filter withType(String type) { + this.type = type; + return this; + } + + public Filter(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Force.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Force.java new file mode 100644 index 00000000..7fce53c7 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Force.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Force - Force overwriting of duplicate playlists. + * By default, a playlist file uploaded with the same path will overwrite the existing playlist. + * The `force` argument is used to disable overwriting. + * If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. + * + */ +public enum Force { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private Force(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Genre.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Genre.java new file mode 100644 index 00000000..18081575 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Genre.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Genre { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public Genre withTag(String tag) { + this.tag = tag; + return this; + } + + public Genre(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsErrors.java new file mode 100644 index 00000000..22196b3e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetAvailableClientsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetAvailableClientsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetAvailableClientsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetAvailableClientsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetAvailableClientsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsMediaContainer.java new file mode 100644 index 00000000..31179ffc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetAvailableClientsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetAvailableClientsMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Server") + public Server[] server; + + public GetAvailableClientsMediaContainer withServer(Server[] server) { + this.server = server; + return this; + } + + public GetAvailableClientsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponse.java new file mode 100644 index 00000000..f50d779e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetAvailableClientsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetAvailableClientsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetAvailableClientsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetAvailableClientsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Available Clients + */ + + public GetAvailableClientsResponseBody twoHundredApplicationJsonObject; + + public GetAvailableClientsResponse withTwoHundredApplicationJsonObject(GetAvailableClientsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetAvailableClientsServerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetAvailableClientsResponse withFourHundredAndOneApplicationJsonObject(GetAvailableClientsServerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetAvailableClientsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponseBody.java new file mode 100644 index 00000000..a9e7db85 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetAvailableClientsResponseBody - Available Clients + */ + +public class GetAvailableClientsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetAvailableClientsMediaContainer mediaContainer; + + public GetAvailableClientsResponseBody withMediaContainer(GetAvailableClientsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetAvailableClientsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsServerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsServerResponseBody.java new file mode 100644 index 00000000..8da3e821 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsServerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetAvailableClientsServerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetAvailableClientsServerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetAvailableClientsErrors[] errors; + + public GetAvailableClientsServerResponseBody withErrors(GetAvailableClientsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetAvailableClientsServerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksButlerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksButlerResponseBody.java new file mode 100644 index 00000000..a2be3dfb --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksButlerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetButlerTasksButlerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetButlerTasksButlerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetButlerTasksErrors[] errors; + + public GetButlerTasksButlerResponseBody withErrors(GetButlerTasksErrors[] errors) { + this.errors = errors; + return this; + } + + public GetButlerTasksButlerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksErrors.java new file mode 100644 index 00000000..68c8c606 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetButlerTasksErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetButlerTasksErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetButlerTasksErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetButlerTasksErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetButlerTasksErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponse.java new file mode 100644 index 00000000..d1e9a00b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetButlerTasksResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetButlerTasksResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetButlerTasksResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetButlerTasksResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * All butler tasks + */ + + public GetButlerTasksResponseBody twoHundredApplicationJsonObject; + + public GetButlerTasksResponse withTwoHundredApplicationJsonObject(GetButlerTasksResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetButlerTasksButlerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetButlerTasksResponse withFourHundredAndOneApplicationJsonObject(GetButlerTasksButlerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetButlerTasksResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponseBody.java new file mode 100644 index 00000000..5b61e9af --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetButlerTasksResponseBody - All butler tasks + */ + +public class GetButlerTasksResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ButlerTasks") + public ButlerTasks butlerTasks; + + public GetButlerTasksResponseBody withButlerTasks(ButlerTasks butlerTasks) { + this.butlerTasks = butlerTasks; + return this; + } + + public GetButlerTasksResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesErrors.java new file mode 100644 index 00000000..cd4f7baf --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetDevicesErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetDevicesErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetDevicesErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetDevicesErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetDevicesErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesMediaContainer.java new file mode 100644 index 00000000..074004fe --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesMediaContainer.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetDevicesMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetDevicesMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetDevicesMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Device") + public Device[] device; + + public GetDevicesMediaContainer withDevice(Device[] device) { + this.device = device; + return this; + } + + public GetDevicesMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponse.java new file mode 100644 index 00000000..09e4d251 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetDevicesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetDevicesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetDevicesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetDevicesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Devices + */ + + public GetDevicesResponseBody twoHundredApplicationJsonObject; + + public GetDevicesResponse withTwoHundredApplicationJsonObject(GetDevicesResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetDevicesServerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetDevicesResponse withFourHundredAndOneApplicationJsonObject(GetDevicesServerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetDevicesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponseBody.java new file mode 100644 index 00000000..0f1f3217 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetDevicesResponseBody - Devices + */ + +public class GetDevicesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetDevicesMediaContainer mediaContainer; + + public GetDevicesResponseBody withMediaContainer(GetDevicesMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetDevicesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesServerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesServerResponseBody.java new file mode 100644 index 00000000..2648fee8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesServerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetDevicesServerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetDevicesServerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetDevicesErrors[] errors; + + public GetDevicesServerResponseBody withErrors(GetDevicesErrors[] errors) { + this.errors = errors; + return this; + } + + public GetDevicesServerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashErrors.java new file mode 100644 index 00000000..bb992ec1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetFileHashErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetFileHashErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetFileHashErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetFileHashErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetFileHashErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashRequest.java new file mode 100644 index 00000000..e0b0d5af --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashRequest.java @@ -0,0 +1,37 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetFileHashRequest { + /** + * This is the path to the local file, must be prefixed by `file://` + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=url") + public String url; + + public GetFileHashRequest withUrl(String url) { + this.url = url; + return this; + } + + /** + * Item type + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=type") + public Double type; + + public GetFileHashRequest withType(Double type) { + this.type = type; + return this; + } + + public GetFileHashRequest(@JsonProperty("url") String url) { + this.url = url; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponse.java new file mode 100644 index 00000000..a9e78900 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetFileHashResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetFileHashResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetFileHashResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetFileHashResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetFileHashResponseBody object; + + public GetFileHashResponse withObject(GetFileHashResponseBody object) { + this.object = object; + return this; + } + + public GetFileHashResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponseBody.java new file mode 100644 index 00000000..82a17846 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetFileHashResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetFileHashResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetFileHashErrors[] errors; + + public GetFileHashResponseBody withErrors(GetFileHashErrors[] errors) { + this.errors = errors; + return this; + } + + public GetFileHashResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsErrors.java new file mode 100644 index 00000000..8bca5546 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetGlobalHubsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetGlobalHubsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetGlobalHubsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetGlobalHubsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetGlobalHubsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsHubsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsHubsResponseBody.java new file mode 100644 index 00000000..9d9366c4 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsHubsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetGlobalHubsHubsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetGlobalHubsHubsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetGlobalHubsErrors[] errors; + + public GetGlobalHubsHubsResponseBody withErrors(GetGlobalHubsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetGlobalHubsHubsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMediaContainer.java new file mode 100644 index 00000000..1e044e38 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMediaContainer.java @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetGlobalHubsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetGlobalHubsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetGlobalHubsMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetGlobalHubsMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Hub") + public Hub[] hub; + + public GetGlobalHubsMediaContainer withHub(Hub[] hub) { + this.hub = hub; + return this; + } + + public GetGlobalHubsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMetadata.java new file mode 100644 index 00000000..95c5aa4c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMetadata.java @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetGlobalHubsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetGlobalHubsMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetGlobalHubsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetGlobalHubsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetGlobalHubsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetGlobalHubsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("titleSort") + public String titleSort; + + public GetGlobalHubsMetadata withTitleSort(String titleSort) { + this.titleSort = titleSort; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetGlobalHubsMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("smart") + public Boolean smart; + + public GetGlobalHubsMetadata withSmart(Boolean smart) { + this.smart = smart; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("playlistType") + public String playlistType; + + public GetGlobalHubsMetadata withPlaylistType(String playlistType) { + this.playlistType = playlistType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("composite") + public String composite; + + public GetGlobalHubsMetadata withComposite(String composite) { + this.composite = composite; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("icon") + public String icon; + + public GetGlobalHubsMetadata withIcon(String icon) { + this.icon = icon; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewCount") + public Integer viewCount; + + public GetGlobalHubsMetadata withViewCount(Integer viewCount) { + this.viewCount = viewCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastViewedAt") + public Integer lastViewedAt; + + public GetGlobalHubsMetadata withLastViewedAt(Integer lastViewedAt) { + this.lastViewedAt = lastViewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetGlobalHubsMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public GetGlobalHubsMetadata withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetGlobalHubsMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetGlobalHubsMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public GetGlobalHubsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsRequest.java new file mode 100644 index 00000000..2bd2e1fc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsRequest.java @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetGlobalHubsRequest { + /** + * The number of items to return with each hub. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=count") + public Double count; + + public GetGlobalHubsRequest withCount(Double count) { + this.count = count; + return this; + } + + /** + * Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=onlyTransient") + public OnlyTransient onlyTransient; + + public GetGlobalHubsRequest withOnlyTransient(OnlyTransient onlyTransient) { + this.onlyTransient = onlyTransient; + return this; + } + + public GetGlobalHubsRequest(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponse.java new file mode 100644 index 00000000..bed11fcc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetGlobalHubsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetGlobalHubsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetGlobalHubsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetGlobalHubsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * returns global hubs + */ + + public GetGlobalHubsResponseBody twoHundredApplicationJsonObject; + + public GetGlobalHubsResponse withTwoHundredApplicationJsonObject(GetGlobalHubsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetGlobalHubsHubsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetGlobalHubsResponse withFourHundredAndOneApplicationJsonObject(GetGlobalHubsHubsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetGlobalHubsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponseBody.java new file mode 100644 index 00000000..53227a98 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetGlobalHubsResponseBody - returns global hubs + */ + +public class GetGlobalHubsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetGlobalHubsMediaContainer mediaContainer; + + public GetGlobalHubsResponseBody withMediaContainer(GetGlobalHubsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetGlobalHubsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesDirectory.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesDirectory.java new file mode 100644 index 00000000..ca014c81 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesDirectory.java @@ -0,0 +1,203 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibrariesDirectory { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetLibrariesDirectory withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetLibrariesDirectory withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("composite") + public String composite; + + public GetLibrariesDirectory withComposite(String composite) { + this.composite = composite; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filters") + public Boolean filters; + + public GetLibrariesDirectory withFilters(Boolean filters) { + this.filters = filters; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("refreshing") + public Boolean refreshing; + + public GetLibrariesDirectory withRefreshing(Boolean refreshing) { + this.refreshing = refreshing; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetLibrariesDirectory withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibrariesDirectory withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetLibrariesDirectory withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetLibrariesDirectory withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("agent") + public String agent; + + public GetLibrariesDirectory withAgent(String agent) { + this.agent = agent; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scanner") + public String scanner; + + public GetLibrariesDirectory withScanner(String scanner) { + this.scanner = scanner; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("language") + public String language; + + public GetLibrariesDirectory withLanguage(String language) { + this.language = language; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("uuid") + public String uuid; + + public GetLibrariesDirectory withUuid(String uuid) { + this.uuid = uuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetLibrariesDirectory withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("createdAt") + public Integer createdAt; + + public GetLibrariesDirectory withCreatedAt(Integer createdAt) { + this.createdAt = createdAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scannedAt") + public Integer scannedAt; + + public GetLibrariesDirectory withScannedAt(Integer scannedAt) { + this.scannedAt = scannedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("content") + public Boolean content; + + public GetLibrariesDirectory withContent(Boolean content) { + this.content = content; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("directory") + public Boolean directory; + + public GetLibrariesDirectory withDirectory(Boolean directory) { + this.directory = directory; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentChangedAt") + public Integer contentChangedAt; + + public GetLibrariesDirectory withContentChangedAt(Integer contentChangedAt) { + this.contentChangedAt = contentChangedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hidden") + public Integer hidden; + + public GetLibrariesDirectory withHidden(Integer hidden) { + this.hidden = hidden; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Location") + public GetLibrariesLocation[] location; + + public GetLibrariesDirectory withLocation(GetLibrariesLocation[] location) { + this.location = location; + return this; + } + + public GetLibrariesDirectory(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesErrors.java new file mode 100644 index 00000000..e571cb69 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibrariesErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetLibrariesErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetLibrariesErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetLibrariesErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetLibrariesErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLibraryResponseBody.java new file mode 100644 index 00000000..0800f260 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetLibrariesLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetLibrariesLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetLibrariesErrors[] errors; + + public GetLibrariesLibraryResponseBody withErrors(GetLibrariesErrors[] errors) { + this.errors = errors; + return this; + } + + public GetLibrariesLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLocation.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLocation.java new file mode 100644 index 00000000..59e16f34 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLocation.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibrariesLocation { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetLibrariesLocation withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("path") + public String path; + + public GetLibrariesLocation withPath(String path) { + this.path = path; + return this; + } + + public GetLibrariesLocation(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesMediaContainer.java new file mode 100644 index 00000000..54824421 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesMediaContainer.java @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibrariesMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetLibrariesMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetLibrariesMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title1") + public String title1; + + public GetLibrariesMediaContainer withTitle1(String title1) { + this.title1 = title1; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Directory") + public GetLibrariesDirectory[] directory; + + public GetLibrariesMediaContainer withDirectory(GetLibrariesDirectory[] directory) { + this.directory = directory; + return this; + } + + public GetLibrariesMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponse.java new file mode 100644 index 00000000..874499c6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetLibrariesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetLibrariesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetLibrariesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetLibrariesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The libraries available on the Server + */ + + public GetLibrariesResponseBody twoHundredApplicationJsonObject; + + public GetLibrariesResponse withTwoHundredApplicationJsonObject(GetLibrariesResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetLibrariesLibraryResponseBody fourHundredAndOneApplicationJsonObject; + + public GetLibrariesResponse withFourHundredAndOneApplicationJsonObject(GetLibrariesLibraryResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetLibrariesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponseBody.java new file mode 100644 index 00000000..be719e66 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetLibrariesResponseBody - The libraries available on the Server + */ + +public class GetLibrariesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetLibrariesMediaContainer mediaContainer; + + public GetLibrariesResponseBody withMediaContainer(GetLibrariesMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetLibrariesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryDirectory.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryDirectory.java new file mode 100644 index 00000000..08658aa5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryDirectory.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryDirectory { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibraryDirectory withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetLibraryDirectory withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("secondary") + public Boolean secondary; + + public GetLibraryDirectory withSecondary(Boolean secondary) { + this.secondary = secondary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("prompt") + public String prompt; + + public GetLibraryDirectory withPrompt(String prompt) { + this.prompt = prompt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("search") + public Boolean search; + + public GetLibraryDirectory withSearch(Boolean search) { + this.search = search; + return this; + } + + public GetLibraryDirectory(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryErrors.java new file mode 100644 index 00000000..78e9f3cd --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetLibraryErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetLibraryErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetLibraryErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetLibraryErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsCountry.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsCountry.java new file mode 100644 index 00000000..69a7a843 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsCountry.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsCountry { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryHubsCountry withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryHubsCountry(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsDirector.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsDirector.java new file mode 100644 index 00000000..3d3d6345 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsDirector.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsDirector { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryHubsDirector withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryHubsDirector(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsErrors.java new file mode 100644 index 00000000..53a8d427 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetLibraryHubsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetLibraryHubsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetLibraryHubsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetLibraryHubsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsGenre.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsGenre.java new file mode 100644 index 00000000..d41d0ea0 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsGenre.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsGenre { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryHubsGenre withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryHubsGenre(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHub.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHub.java new file mode 100644 index 00000000..d8cd4eba --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHub.java @@ -0,0 +1,122 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsHub { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibraryHubsHub withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetLibraryHubsHub withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetLibraryHubsHub withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hubIdentifier") + public String hubIdentifier; + + public GetLibraryHubsHub withHubIdentifier(String hubIdentifier) { + this.hubIdentifier = hubIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("context") + public String context; + + public GetLibraryHubsHub withContext(String context) { + this.context = context; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetLibraryHubsHub withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("more") + public Boolean more; + + public GetLibraryHubsHub withMore(Boolean more) { + this.more = more; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("style") + public String style; + + public GetLibraryHubsHub withStyle(String style) { + this.style = style; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hubKey") + public String hubKey; + + public GetLibraryHubsHub withHubKey(String hubKey) { + this.hubKey = hubKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetLibraryHubsMetadata[] metadata; + + public GetLibraryHubsHub withMetadata(GetLibraryHubsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("promoted") + public Boolean promoted; + + public GetLibraryHubsHub withPromoted(Boolean promoted) { + this.promoted = promoted; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("random") + public Boolean random; + + public GetLibraryHubsHub withRandom(Boolean random) { + this.random = random; + return this; + } + + public GetLibraryHubsHub(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHubsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHubsResponseBody.java new file mode 100644 index 00000000..68b0dcb4 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHubsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetLibraryHubsHubsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetLibraryHubsHubsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetLibraryHubsErrors[] errors; + + public GetLibraryHubsHubsResponseBody withErrors(GetLibraryHubsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetLibraryHubsHubsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMedia.java new file mode 100644 index 00000000..c44c9571 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMedia.java @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetLibraryHubsMedia withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetLibraryHubsMedia withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Integer bitrate; + + public GetLibraryHubsMedia withBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Integer width; + + public GetLibraryHubsMedia withWidth(Integer width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Integer height; + + public GetLibraryHubsMedia withHeight(Integer height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aspectRatio") + public Double aspectRatio; + + public GetLibraryHubsMedia withAspectRatio(Double aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Integer audioChannels; + + public GetLibraryHubsMedia withAudioChannels(Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public GetLibraryHubsMedia withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public GetLibraryHubsMedia withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoResolution") + public String videoResolution; + + public GetLibraryHubsMedia withVideoResolution(String videoResolution) { + this.videoResolution = videoResolution; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetLibraryHubsMedia withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoFrameRate") + public String videoFrameRate; + + public GetLibraryHubsMedia withVideoFrameRate(String videoFrameRate) { + this.videoFrameRate = videoFrameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Integer optimizedForStreaming; + + public GetLibraryHubsMedia withOptimizedForStreaming(Integer optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetLibraryHubsMedia withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public GetLibraryHubsMedia withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetLibraryHubsMedia withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public GetLibraryHubsPart[] part; + + public GetLibraryHubsMedia withPart(GetLibraryHubsPart[] part) { + this.part = part; + return this; + } + + public GetLibraryHubsMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMediaContainer.java new file mode 100644 index 00000000..fc407c02 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMediaContainer.java @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetLibraryHubsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetLibraryHubsMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetLibraryHubsMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetLibraryHubsMediaContainer withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetLibraryHubsMediaContainer withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionUUID") + public String librarySectionUUID; + + public GetLibraryHubsMediaContainer withLibrarySectionUUID(String librarySectionUUID) { + this.librarySectionUUID = librarySectionUUID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Hub") + public GetLibraryHubsHub[] hub; + + public GetLibraryHubsMediaContainer withHub(GetLibraryHubsHub[] hub) { + this.hub = hub; + return this; + } + + public GetLibraryHubsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMetadata.java new file mode 100644 index 00000000..3cb4602d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMetadata.java @@ -0,0 +1,323 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.time.LocalDate; + + +public class GetLibraryHubsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetLibraryHubsMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibraryHubsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetLibraryHubsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("studio") + public String studio; + + public GetLibraryHubsMetadata withStudio(String studio) { + this.studio = studio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetLibraryHubsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetLibraryHubsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetLibraryHubsMetadata withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetLibraryHubsMetadata withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionKey") + public String librarySectionKey; + + public GetLibraryHubsMetadata withLibrarySectionKey(String librarySectionKey) { + this.librarySectionKey = librarySectionKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentRating") + public String contentRating; + + public GetLibraryHubsMetadata withContentRating(String contentRating) { + this.contentRating = contentRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetLibraryHubsMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("rating") + public Double rating; + + public GetLibraryHubsMetadata withRating(Double rating) { + this.rating = rating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRating") + public Double audienceRating; + + public GetLibraryHubsMetadata withAudienceRating(Double audienceRating) { + this.audienceRating = audienceRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewCount") + public Integer viewCount; + + public GetLibraryHubsMetadata withViewCount(Integer viewCount) { + this.viewCount = viewCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastViewedAt") + public Integer lastViewedAt; + + public GetLibraryHubsMetadata withLastViewedAt(Integer lastViewedAt) { + this.lastViewedAt = lastViewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("year") + public Integer year; + + public GetLibraryHubsMetadata withYear(Integer year) { + this.year = year; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagline") + public String tagline; + + public GetLibraryHubsMetadata withTagline(String tagline) { + this.tagline = tagline; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetLibraryHubsMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetLibraryHubsMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetLibraryHubsMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + @JsonProperty("originallyAvailableAt") + public LocalDate originallyAvailableAt; + + public GetLibraryHubsMetadata withOriginallyAvailableAt(LocalDate originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetLibraryHubsMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetLibraryHubsMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRatingImage") + public String audienceRatingImage; + + public GetLibraryHubsMetadata withAudienceRatingImage(String audienceRatingImage) { + this.audienceRatingImage = audienceRatingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("primaryExtraKey") + public String primaryExtraKey; + + public GetLibraryHubsMetadata withPrimaryExtraKey(String primaryExtraKey) { + this.primaryExtraKey = primaryExtraKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingImage") + public String ratingImage; + + public GetLibraryHubsMetadata withRatingImage(String ratingImage) { + this.ratingImage = ratingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public GetLibraryHubsMedia[] media; + + public GetLibraryHubsMetadata withMedia(GetLibraryHubsMedia[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Genre") + public GetLibraryHubsGenre[] genre; + + public GetLibraryHubsMetadata withGenre(GetLibraryHubsGenre[] genre) { + this.genre = genre; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Country") + public GetLibraryHubsCountry[] country; + + public GetLibraryHubsMetadata withCountry(GetLibraryHubsCountry[] country) { + this.country = country; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Director") + public GetLibraryHubsDirector[] director; + + public GetLibraryHubsMetadata withDirector(GetLibraryHubsDirector[] director) { + this.director = director; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Role") + public GetLibraryHubsRole[] role; + + public GetLibraryHubsMetadata withRole(GetLibraryHubsRole[] role) { + this.role = role; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Writer") + public GetLibraryHubsWriter[] writer; + + public GetLibraryHubsMetadata withWriter(GetLibraryHubsWriter[] writer) { + this.writer = writer; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("skipCount") + public Integer skipCount; + + public GetLibraryHubsMetadata withSkipCount(Integer skipCount) { + this.skipCount = skipCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chapterSource") + public String chapterSource; + + public GetLibraryHubsMetadata withChapterSource(String chapterSource) { + this.chapterSource = chapterSource; + return this; + } + + public GetLibraryHubsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsPart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsPart.java new file mode 100644 index 00000000..0bb6dd70 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsPart.java @@ -0,0 +1,104 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsPart { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetLibraryHubsPart withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibraryHubsPart withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetLibraryHubsPart withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public GetLibraryHubsPart withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetLibraryHubsPart withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetLibraryHubsPart withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetLibraryHubsPart withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public GetLibraryHubsPart withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Boolean optimizedForStreaming; + + public GetLibraryHubsPart withOptimizedForStreaming(Boolean optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetLibraryHubsPart withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + public GetLibraryHubsPart(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRequest.java new file mode 100644 index 00000000..9981034c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRequest.java @@ -0,0 +1,48 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetLibraryHubsRequest { + /** + * the Id of the library to query + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId") + public Double sectionId; + + public GetLibraryHubsRequest withSectionId(Double sectionId) { + this.sectionId = sectionId; + return this; + } + + /** + * The number of items to return with each hub. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=count") + public Double count; + + public GetLibraryHubsRequest withCount(Double count) { + this.count = count; + return this; + } + + /** + * Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=onlyTransient") + public QueryParamOnlyTransient onlyTransient; + + public GetLibraryHubsRequest withOnlyTransient(QueryParamOnlyTransient onlyTransient) { + this.onlyTransient = onlyTransient; + return this; + } + + public GetLibraryHubsRequest(@JsonProperty("sectionId") Double sectionId) { + this.sectionId = sectionId; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponse.java new file mode 100644 index 00000000..74afdae2 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetLibraryHubsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetLibraryHubsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetLibraryHubsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetLibraryHubsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The hubs specific to the library + */ + + public GetLibraryHubsResponseBody twoHundredApplicationJsonObject; + + public GetLibraryHubsResponse withTwoHundredApplicationJsonObject(GetLibraryHubsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetLibraryHubsHubsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetLibraryHubsResponse withFourHundredAndOneApplicationJsonObject(GetLibraryHubsHubsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetLibraryHubsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponseBody.java new file mode 100644 index 00000000..f8bfa49a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetLibraryHubsResponseBody - The hubs specific to the library + */ + +public class GetLibraryHubsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetLibraryHubsMediaContainer mediaContainer; + + public GetLibraryHubsResponseBody withMediaContainer(GetLibraryHubsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetLibraryHubsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRole.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRole.java new file mode 100644 index 00000000..eee08651 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRole.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsRole { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryHubsRole withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryHubsRole(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsWriter.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsWriter.java new file mode 100644 index 00000000..fee6c1fc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsWriter.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryHubsWriter { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryHubsWriter withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryHubsWriter(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsCountry.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsCountry.java new file mode 100644 index 00000000..a97146a9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsCountry.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsCountry { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryItemsCountry withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryItemsCountry(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsDirector.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsDirector.java new file mode 100644 index 00000000..7765e8ab --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsDirector.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsDirector { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryItemsDirector withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryItemsDirector(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsGenre.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsGenre.java new file mode 100644 index 00000000..c6ae6208 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsGenre.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsGenre { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryItemsGenre withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryItemsGenre(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMedia.java new file mode 100644 index 00000000..4f7a4b34 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMedia.java @@ -0,0 +1,140 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetLibraryItemsMedia withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetLibraryItemsMedia withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Integer bitrate; + + public GetLibraryItemsMedia withBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Integer width; + + public GetLibraryItemsMedia withWidth(Integer width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Integer height; + + public GetLibraryItemsMedia withHeight(Integer height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aspectRatio") + public Double aspectRatio; + + public GetLibraryItemsMedia withAspectRatio(Double aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Integer audioChannels; + + public GetLibraryItemsMedia withAudioChannels(Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public GetLibraryItemsMedia withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public GetLibraryItemsMedia withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoResolution") + public String videoResolution; + + public GetLibraryItemsMedia withVideoResolution(String videoResolution) { + this.videoResolution = videoResolution; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetLibraryItemsMedia withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoFrameRate") + public String videoFrameRate; + + public GetLibraryItemsMedia withVideoFrameRate(String videoFrameRate) { + this.videoFrameRate = videoFrameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetLibraryItemsMedia withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public GetLibraryItemsPart[] part; + + public GetLibraryItemsMedia withPart(GetLibraryItemsPart[] part) { + this.part = part; + return this; + } + + public GetLibraryItemsMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMediaContainer.java new file mode 100644 index 00000000..627fa955 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMediaContainer.java @@ -0,0 +1,158 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetLibraryItemsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetLibraryItemsMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetLibraryItemsMediaContainer withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetLibraryItemsMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetLibraryItemsMediaContainer withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetLibraryItemsMediaContainer withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionUUID") + public String librarySectionUUID; + + public GetLibraryItemsMediaContainer withLibrarySectionUUID(String librarySectionUUID) { + this.librarySectionUUID = librarySectionUUID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public GetLibraryItemsMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Integer mediaTagVersion; + + public GetLibraryItemsMediaContainer withMediaTagVersion(Integer mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetLibraryItemsMediaContainer withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title1") + public String title1; + + public GetLibraryItemsMediaContainer withTitle1(String title1) { + this.title1 = title1; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title2") + public String title2; + + public GetLibraryItemsMediaContainer withTitle2(String title2) { + this.title2 = title2; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewGroup") + public String viewGroup; + + public GetLibraryItemsMediaContainer withViewGroup(String viewGroup) { + this.viewGroup = viewGroup; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewMode") + public Integer viewMode; + + public GetLibraryItemsMediaContainer withViewMode(Integer viewMode) { + this.viewMode = viewMode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mixedParents") + public Boolean mixedParents; + + public GetLibraryItemsMediaContainer withMixedParents(Boolean mixedParents) { + this.mixedParents = mixedParents; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetLibraryItemsMetadata[] metadata; + + public GetLibraryItemsMediaContainer withMetadata(GetLibraryItemsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetLibraryItemsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMetadata.java new file mode 100644 index 00000000..0c0a92a8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMetadata.java @@ -0,0 +1,530 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.time.LocalDate; + + +public class GetLibraryItemsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetLibraryItemsMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibraryItemsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetLibraryItemsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("studio") + public String studio; + + public GetLibraryItemsMetadata withStudio(String studio) { + this.studio = studio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetLibraryItemsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetLibraryItemsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentRating") + public String contentRating; + + public GetLibraryItemsMetadata withContentRating(String contentRating) { + this.contentRating = contentRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetLibraryItemsMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("rating") + public Double rating; + + public GetLibraryItemsMetadata withRating(Double rating) { + this.rating = rating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRating") + public Double audienceRating; + + public GetLibraryItemsMetadata withAudienceRating(Double audienceRating) { + this.audienceRating = audienceRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("year") + public Integer year; + + public GetLibraryItemsMetadata withYear(Integer year) { + this.year = year; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagline") + public String tagline; + + public GetLibraryItemsMetadata withTagline(String tagline) { + this.tagline = tagline; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetLibraryItemsMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetLibraryItemsMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetLibraryItemsMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + @JsonProperty("originallyAvailableAt") + public LocalDate originallyAvailableAt; + + public GetLibraryItemsMetadata withOriginallyAvailableAt(LocalDate originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetLibraryItemsMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetLibraryItemsMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRatingImage") + public String audienceRatingImage; + + public GetLibraryItemsMetadata withAudienceRatingImage(String audienceRatingImage) { + this.audienceRatingImage = audienceRatingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chapterSource") + public String chapterSource; + + public GetLibraryItemsMetadata withChapterSource(String chapterSource) { + this.chapterSource = chapterSource; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("primaryExtraKey") + public String primaryExtraKey; + + public GetLibraryItemsMetadata withPrimaryExtraKey(String primaryExtraKey) { + this.primaryExtraKey = primaryExtraKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingImage") + public String ratingImage; + + public GetLibraryItemsMetadata withRatingImage(String ratingImage) { + this.ratingImage = ratingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentRatingKey") + public String grandparentRatingKey; + + public GetLibraryItemsMetadata withGrandparentRatingKey(String grandparentRatingKey) { + this.grandparentRatingKey = grandparentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentGuid") + public String grandparentGuid; + + public GetLibraryItemsMetadata withGrandparentGuid(String grandparentGuid) { + this.grandparentGuid = grandparentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentKey") + public String grandparentKey; + + public GetLibraryItemsMetadata withGrandparentKey(String grandparentKey) { + this.grandparentKey = grandparentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentTitle") + public String grandparentTitle; + + public GetLibraryItemsMetadata withGrandparentTitle(String grandparentTitle) { + this.grandparentTitle = grandparentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentThumb") + public String grandparentThumb; + + public GetLibraryItemsMetadata withGrandparentThumb(String grandparentThumb) { + this.grandparentThumb = grandparentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentArt") + public String grandparentArt; + + public GetLibraryItemsMetadata withGrandparentArt(String grandparentArt) { + this.grandparentArt = grandparentArt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentTheme") + public String grandparentTheme; + + public GetLibraryItemsMetadata withGrandparentTheme(String grandparentTheme) { + this.grandparentTheme = grandparentTheme; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public GetLibraryItemsMedia[] media; + + public GetLibraryItemsMetadata withMedia(GetLibraryItemsMedia[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Genre") + public GetLibraryItemsGenre[] genre; + + public GetLibraryItemsMetadata withGenre(GetLibraryItemsGenre[] genre) { + this.genre = genre; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Country") + public GetLibraryItemsCountry[] country; + + public GetLibraryItemsMetadata withCountry(GetLibraryItemsCountry[] country) { + this.country = country; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Director") + public GetLibraryItemsDirector[] director; + + public GetLibraryItemsMetadata withDirector(GetLibraryItemsDirector[] director) { + this.director = director; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Writer") + public GetLibraryItemsWriter[] writer; + + public GetLibraryItemsMetadata withWriter(GetLibraryItemsWriter[] writer) { + this.writer = writer; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Role") + public GetLibraryItemsRole[] role; + + public GetLibraryItemsMetadata withRole(GetLibraryItemsRole[] role) { + this.role = role; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("titleSort") + public String titleSort; + + public GetLibraryItemsMetadata withTitleSort(String titleSort) { + this.titleSort = titleSort; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewCount") + public Integer viewCount; + + public GetLibraryItemsMetadata withViewCount(Integer viewCount) { + this.viewCount = viewCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastViewedAt") + public Integer lastViewedAt; + + public GetLibraryItemsMetadata withLastViewedAt(Integer lastViewedAt) { + this.lastViewedAt = lastViewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("originalTitle") + public String originalTitle; + + public GetLibraryItemsMetadata withOriginalTitle(String originalTitle) { + this.originalTitle = originalTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewOffset") + public Integer viewOffset; + + public GetLibraryItemsMetadata withViewOffset(Integer viewOffset) { + this.viewOffset = viewOffset; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("skipCount") + public Integer skipCount; + + public GetLibraryItemsMetadata withSkipCount(Integer skipCount) { + this.skipCount = skipCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Integer index; + + public GetLibraryItemsMetadata withIndex(Integer index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("theme") + public String theme; + + public GetLibraryItemsMetadata withTheme(String theme) { + this.theme = theme; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public GetLibraryItemsMetadata withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewedLeafCount") + public Integer viewedLeafCount; + + public GetLibraryItemsMetadata withViewedLeafCount(Integer viewedLeafCount) { + this.viewedLeafCount = viewedLeafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("childCount") + public Integer childCount; + + public GetLibraryItemsMetadata withChildCount(Integer childCount) { + this.childCount = childCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasPremiumExtras") + public String hasPremiumExtras; + + public GetLibraryItemsMetadata withHasPremiumExtras(String hasPremiumExtras) { + this.hasPremiumExtras = hasPremiumExtras; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasPremiumPrimaryExtra") + public String hasPremiumPrimaryExtra; + + public GetLibraryItemsMetadata withHasPremiumPrimaryExtra(String hasPremiumPrimaryExtra) { + this.hasPremiumPrimaryExtra = hasPremiumPrimaryExtra; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentRatingKey") + public String parentRatingKey; + + public GetLibraryItemsMetadata withParentRatingKey(String parentRatingKey) { + this.parentRatingKey = parentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentGuid") + public String parentGuid; + + public GetLibraryItemsMetadata withParentGuid(String parentGuid) { + this.parentGuid = parentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentStudio") + public String parentStudio; + + public GetLibraryItemsMetadata withParentStudio(String parentStudio) { + this.parentStudio = parentStudio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentKey") + public String parentKey; + + public GetLibraryItemsMetadata withParentKey(String parentKey) { + this.parentKey = parentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTitle") + public String parentTitle; + + public GetLibraryItemsMetadata withParentTitle(String parentTitle) { + this.parentTitle = parentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentIndex") + public Integer parentIndex; + + public GetLibraryItemsMetadata withParentIndex(Integer parentIndex) { + this.parentIndex = parentIndex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentYear") + public Integer parentYear; + + public GetLibraryItemsMetadata withParentYear(Integer parentYear) { + this.parentYear = parentYear; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentThumb") + public String parentThumb; + + public GetLibraryItemsMetadata withParentThumb(String parentThumb) { + this.parentThumb = parentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTheme") + public String parentTheme; + + public GetLibraryItemsMetadata withParentTheme(String parentTheme) { + this.parentTheme = parentTheme; + return this; + } + + public GetLibraryItemsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsPart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsPart.java new file mode 100644 index 00000000..89e18c7e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsPart.java @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsPart { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetLibraryItemsPart withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibraryItemsPart withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetLibraryItemsPart withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public GetLibraryItemsPart withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Long size; + + public GetLibraryItemsPart withSize(Long size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetLibraryItemsPart withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetLibraryItemsPart withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + public GetLibraryItemsPart(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRequest.java new file mode 100644 index 00000000..24ff18fb --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRequest.java @@ -0,0 +1,38 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetLibraryItemsRequest { + /** + * the Id of the library to query + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId") + public Long sectionId; + + public GetLibraryItemsRequest withSectionId(Long sectionId) { + this.sectionId = sectionId; + return this; + } + + /** + * A key representing a specific tag within the section. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=tag") + public Tag tag; + + public GetLibraryItemsRequest withTag(Tag tag) { + this.tag = tag; + return this; + } + + public GetLibraryItemsRequest(@JsonProperty("sectionId") Long sectionId, @JsonProperty("tag") Tag tag) { + this.sectionId = sectionId; + this.tag = tag; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponse.java new file mode 100644 index 00000000..e876f0a6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetLibraryItemsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetLibraryItemsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetLibraryItemsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetLibraryItemsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The contents of the library by section and tag + */ + + public GetLibraryItemsResponseBody object; + + public GetLibraryItemsResponse withObject(GetLibraryItemsResponseBody object) { + this.object = object; + return this; + } + + public GetLibraryItemsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponseBody.java new file mode 100644 index 00000000..ea0e49ce --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetLibraryItemsResponseBody - The contents of the library by section and tag + */ + +public class GetLibraryItemsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetLibraryItemsMediaContainer mediaContainer; + + public GetLibraryItemsResponseBody withMediaContainer(GetLibraryItemsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetLibraryItemsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRole.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRole.java new file mode 100644 index 00000000..d2a99e94 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRole.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsRole { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryItemsRole withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryItemsRole(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsWriter.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsWriter.java new file mode 100644 index 00000000..f0492754 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsWriter.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryItemsWriter { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetLibraryItemsWriter withTag(String tag) { + this.tag = tag; + return this; + } + + public GetLibraryItemsWriter(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryLibraryResponseBody.java new file mode 100644 index 00000000..4e4f7a97 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetLibraryLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetLibraryLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetLibraryErrors[] errors; + + public GetLibraryLibraryResponseBody withErrors(GetLibraryErrors[] errors) { + this.errors = errors; + return this; + } + + public GetLibraryLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryMediaContainer.java new file mode 100644 index 00000000..cd01a32c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryMediaContainer.java @@ -0,0 +1,149 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetLibraryMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetLibraryMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetLibraryMediaContainer withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("content") + public String content; + + public GetLibraryMediaContainer withContent(String content) { + this.content = content; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetLibraryMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetLibraryMediaContainer withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public GetLibraryMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Integer mediaTagVersion; + + public GetLibraryMediaContainer withMediaTagVersion(Integer mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetLibraryMediaContainer withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title1") + public String title1; + + public GetLibraryMediaContainer withTitle1(String title1) { + this.title1 = title1; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewGroup") + public String viewGroup; + + public GetLibraryMediaContainer withViewGroup(String viewGroup) { + this.viewGroup = viewGroup; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewMode") + public Integer viewMode; + + public GetLibraryMediaContainer withViewMode(Integer viewMode) { + this.viewMode = viewMode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Directory") + public GetLibraryDirectory[] directory; + + public GetLibraryMediaContainer withDirectory(GetLibraryDirectory[] directory) { + this.directory = directory; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Type") + public GetLibraryType[] type; + + public GetLibraryMediaContainer withType(GetLibraryType[] type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("FieldType") + public FieldType[] fieldType; + + public GetLibraryMediaContainer withFieldType(FieldType[] fieldType) { + this.fieldType = fieldType; + return this; + } + + public GetLibraryMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryRequest.java new file mode 100644 index 00000000..f3928357 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryRequest.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetLibraryRequest { + /** + * the Id of the library to query + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId") + public Double sectionId; + + public GetLibraryRequest withSectionId(Double sectionId) { + this.sectionId = sectionId; + return this; + } + + /** + * Whether or not to include details for a section (types, filters, and sorts). + * Only exists for backwards compatibility, media providers other than the server libraries have it on always. + * + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeDetails") + public IncludeDetails includeDetails; + + public GetLibraryRequest withIncludeDetails(IncludeDetails includeDetails) { + this.includeDetails = includeDetails; + return this; + } + + public GetLibraryRequest(@JsonProperty("sectionId") Double sectionId) { + this.sectionId = sectionId; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponse.java new file mode 100644 index 00000000..a9f7b5e1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetLibraryResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetLibraryResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetLibraryResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetLibraryResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The details of the library + */ + + public GetLibraryResponseBody twoHundredApplicationJsonObject; + + public GetLibraryResponse withTwoHundredApplicationJsonObject(GetLibraryResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetLibraryLibraryResponseBody fourHundredAndOneApplicationJsonObject; + + public GetLibraryResponse withFourHundredAndOneApplicationJsonObject(GetLibraryLibraryResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetLibraryResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponseBody.java new file mode 100644 index 00000000..2bfb8da9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetLibraryResponseBody - The details of the library + */ + +public class GetLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetLibraryMediaContainer mediaContainer; + + public GetLibraryResponseBody withMediaContainer(GetLibraryMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryType.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryType.java new file mode 100644 index 00000000..38002772 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryType.java @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetLibraryType { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetLibraryType withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetLibraryType withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetLibraryType withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("active") + public Boolean active; + + public GetLibraryType withActive(Boolean active) { + this.active = active; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Filter") + public Filter[] filter; + + public GetLibraryType withFilter(Filter[] filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Sort") + public Sort[] sort; + + public GetLibraryType withSort(Sort[] sort) { + this.sort = sort; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Field") + public Field[] field; + + public GetLibraryType withField(Field[] field) { + this.field = field; + return this; + } + + public GetLibraryType(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenDirectory.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenDirectory.java new file mode 100644 index 00000000..8abaca16 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenDirectory.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataChildrenDirectory { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public GetMetadataChildrenDirectory withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetMetadataChildrenDirectory withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewedLeafCount") + public Integer viewedLeafCount; + + public GetMetadataChildrenDirectory withViewedLeafCount(Integer viewedLeafCount) { + this.viewedLeafCount = viewedLeafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetMetadataChildrenDirectory withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetMetadataChildrenDirectory withTitle(String title) { + this.title = title; + return this; + } + + public GetMetadataChildrenDirectory(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenErrors.java new file mode 100644 index 00000000..01d3d32a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataChildrenErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetMetadataChildrenErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetMetadataChildrenErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetMetadataChildrenErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetMetadataChildrenErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenLibraryResponseBody.java new file mode 100644 index 00000000..fc68c7a8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetMetadataChildrenLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetMetadataChildrenLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetMetadataChildrenErrors[] errors; + + public GetMetadataChildrenLibraryResponseBody withErrors(GetMetadataChildrenErrors[] errors) { + this.errors = errors; + return this; + } + + public GetMetadataChildrenLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMediaContainer.java new file mode 100644 index 00000000..6f6d29ee --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMediaContainer.java @@ -0,0 +1,221 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataChildrenMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetMetadataChildrenMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetMetadataChildrenMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetMetadataChildrenMediaContainer withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetMetadataChildrenMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetMetadataChildrenMediaContainer withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetMetadataChildrenMediaContainer withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetMetadataChildrenMediaContainer withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionUUID") + public String librarySectionUUID; + + public GetMetadataChildrenMediaContainer withLibrarySectionUUID(String librarySectionUUID) { + this.librarySectionUUID = librarySectionUUID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public GetMetadataChildrenMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Integer mediaTagVersion; + + public GetMetadataChildrenMediaContainer withMediaTagVersion(Integer mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("nocache") + public Boolean nocache; + + public GetMetadataChildrenMediaContainer withNocache(Boolean nocache) { + this.nocache = nocache; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentIndex") + public Integer parentIndex; + + public GetMetadataChildrenMediaContainer withParentIndex(Integer parentIndex) { + this.parentIndex = parentIndex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTitle") + public String parentTitle; + + public GetMetadataChildrenMediaContainer withParentTitle(String parentTitle) { + this.parentTitle = parentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentYear") + public Integer parentYear; + + public GetMetadataChildrenMediaContainer withParentYear(Integer parentYear) { + this.parentYear = parentYear; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetMetadataChildrenMediaContainer withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("theme") + public String theme; + + public GetMetadataChildrenMediaContainer withTheme(String theme) { + this.theme = theme; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetMetadataChildrenMediaContainer withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title1") + public String title1; + + public GetMetadataChildrenMediaContainer withTitle1(String title1) { + this.title1 = title1; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title2") + public String title2; + + public GetMetadataChildrenMediaContainer withTitle2(String title2) { + this.title2 = title2; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewGroup") + public String viewGroup; + + public GetMetadataChildrenMediaContainer withViewGroup(String viewGroup) { + this.viewGroup = viewGroup; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewMode") + public Integer viewMode; + + public GetMetadataChildrenMediaContainer withViewMode(Integer viewMode) { + this.viewMode = viewMode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Directory") + public GetMetadataChildrenDirectory[] directory; + + public GetMetadataChildrenMediaContainer withDirectory(GetMetadataChildrenDirectory[] directory) { + this.directory = directory; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetMetadataChildrenMetadata[] metadata; + + public GetMetadataChildrenMediaContainer withMetadata(GetMetadataChildrenMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetMetadataChildrenMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMetadata.java new file mode 100644 index 00000000..f8c69cb7 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMetadata.java @@ -0,0 +1,257 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataChildrenMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetMetadataChildrenMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetMetadataChildrenMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentRatingKey") + public String parentRatingKey; + + public GetMetadataChildrenMetadata withParentRatingKey(String parentRatingKey) { + this.parentRatingKey = parentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetMetadataChildrenMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentGuid") + public String parentGuid; + + public GetMetadataChildrenMetadata withParentGuid(String parentGuid) { + this.parentGuid = parentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentStudio") + public String parentStudio; + + public GetMetadataChildrenMetadata withParentStudio(String parentStudio) { + this.parentStudio = parentStudio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetMetadataChildrenMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetMetadataChildrenMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentKey") + public String parentKey; + + public GetMetadataChildrenMetadata withParentKey(String parentKey) { + this.parentKey = parentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTitle") + public String parentTitle; + + public GetMetadataChildrenMetadata withParentTitle(String parentTitle) { + this.parentTitle = parentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetMetadataChildrenMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Integer index; + + public GetMetadataChildrenMetadata withIndex(Integer index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentIndex") + public Integer parentIndex; + + public GetMetadataChildrenMetadata withParentIndex(Integer parentIndex) { + this.parentIndex = parentIndex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewCount") + public Integer viewCount; + + public GetMetadataChildrenMetadata withViewCount(Integer viewCount) { + this.viewCount = viewCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastViewedAt") + public Integer lastViewedAt; + + public GetMetadataChildrenMetadata withLastViewedAt(Integer lastViewedAt) { + this.lastViewedAt = lastViewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentYear") + public Integer parentYear; + + public GetMetadataChildrenMetadata withParentYear(Integer parentYear) { + this.parentYear = parentYear; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetMetadataChildrenMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetMetadataChildrenMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentThumb") + public String parentThumb; + + public GetMetadataChildrenMetadata withParentThumb(String parentThumb) { + this.parentThumb = parentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTheme") + public String parentTheme; + + public GetMetadataChildrenMetadata withParentTheme(String parentTheme) { + this.parentTheme = parentTheme; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public GetMetadataChildrenMetadata withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewedLeafCount") + public Integer viewedLeafCount; + + public GetMetadataChildrenMetadata withViewedLeafCount(Integer viewedLeafCount) { + this.viewedLeafCount = viewedLeafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetMetadataChildrenMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetMetadataChildrenMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("userRating") + public Integer userRating; + + public GetMetadataChildrenMetadata withUserRating(Integer userRating) { + this.userRating = userRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("skipCount") + public Integer skipCount; + + public GetMetadataChildrenMetadata withSkipCount(Integer skipCount) { + this.skipCount = skipCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastRatedAt") + public Integer lastRatedAt; + + public GetMetadataChildrenMetadata withLastRatedAt(Integer lastRatedAt) { + this.lastRatedAt = lastRatedAt; + return this; + } + + public GetMetadataChildrenMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenRequest.java new file mode 100644 index 00000000..d14bb766 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetMetadataChildrenRequest { + /** + * the id of the library item to return the children of. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey") + public Double ratingKey; + + public GetMetadataChildrenRequest withRatingKey(Double ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + public GetMetadataChildrenRequest(@JsonProperty("ratingKey") Double ratingKey) { + this.ratingKey = ratingKey; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponse.java new file mode 100644 index 00000000..3dad8a88 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetMetadataChildrenResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetMetadataChildrenResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetMetadataChildrenResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetMetadataChildrenResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The children of the library item. + */ + + public GetMetadataChildrenResponseBody twoHundredApplicationJsonObject; + + public GetMetadataChildrenResponse withTwoHundredApplicationJsonObject(GetMetadataChildrenResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetMetadataChildrenLibraryResponseBody fourHundredAndOneApplicationJsonObject; + + public GetMetadataChildrenResponse withFourHundredAndOneApplicationJsonObject(GetMetadataChildrenLibraryResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetMetadataChildrenResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponseBody.java new file mode 100644 index 00000000..dd65e5c9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetMetadataChildrenResponseBody - The children of the library item. + */ + +public class GetMetadataChildrenResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetMetadataChildrenMediaContainer mediaContainer; + + public GetMetadataChildrenResponseBody withMediaContainer(GetMetadataChildrenMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetMetadataChildrenResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataCountry.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataCountry.java new file mode 100644 index 00000000..65a30763 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataCountry.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataCountry { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetMetadataCountry withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filter") + public String filter; + + public GetMetadataCountry withFilter(String filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetMetadataCountry withTag(String tag) { + this.tag = tag; + return this; + } + + public GetMetadataCountry(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataDirector.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataDirector.java new file mode 100644 index 00000000..837f2679 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataDirector.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataDirector { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetMetadataDirector withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filter") + public String filter; + + public GetMetadataDirector withFilter(String filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetMetadataDirector withTag(String tag) { + this.tag = tag; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagKey") + public String tagKey; + + public GetMetadataDirector withTagKey(String tagKey) { + this.tagKey = tagKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetMetadataDirector withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + public GetMetadataDirector(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataErrors.java new file mode 100644 index 00000000..83426ebc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetMetadataErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetMetadataErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetMetadataErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetMetadataErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataGenre.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataGenre.java new file mode 100644 index 00000000..e509a823 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataGenre.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataGenre { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetMetadataGenre withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filter") + public String filter; + + public GetMetadataGenre withFilter(String filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetMetadataGenre withTag(String tag) { + this.tag = tag; + return this; + } + + public GetMetadataGenre(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataLibraryResponseBody.java new file mode 100644 index 00000000..1f3d69a1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetMetadataLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetMetadataLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetMetadataErrors[] errors; + + public GetMetadataLibraryResponseBody withErrors(GetMetadataErrors[] errors) { + this.errors = errors; + return this; + } + + public GetMetadataLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMedia.java new file mode 100644 index 00000000..0cd7081d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMedia.java @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetMetadataMedia withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetMetadataMedia withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Integer bitrate; + + public GetMetadataMedia withBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Integer width; + + public GetMetadataMedia withWidth(Integer width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Integer height; + + public GetMetadataMedia withHeight(Integer height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aspectRatio") + public Double aspectRatio; + + public GetMetadataMedia withAspectRatio(Double aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Integer audioChannels; + + public GetMetadataMedia withAudioChannels(Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public GetMetadataMedia withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public GetMetadataMedia withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoResolution") + public String videoResolution; + + public GetMetadataMedia withVideoResolution(String videoResolution) { + this.videoResolution = videoResolution; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetMetadataMedia withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoFrameRate") + public String videoFrameRate; + + public GetMetadataMedia withVideoFrameRate(String videoFrameRate) { + this.videoFrameRate = videoFrameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Integer optimizedForStreaming; + + public GetMetadataMedia withOptimizedForStreaming(Integer optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetMetadataMedia withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public GetMetadataMedia withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetMetadataMedia withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public GetMetadataPart[] part; + + public GetMetadataMedia withPart(GetMetadataPart[] part) { + this.part = part; + return this; + } + + public GetMetadataMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMediaContainer.java new file mode 100644 index 00000000..d119f18d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMediaContainer.java @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetMetadataMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetMetadataMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetMetadataMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetMetadataMediaContainer withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetMetadataMediaContainer withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionUUID") + public String librarySectionUUID; + + public GetMetadataMediaContainer withLibrarySectionUUID(String librarySectionUUID) { + this.librarySectionUUID = librarySectionUUID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public GetMetadataMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Integer mediaTagVersion; + + public GetMetadataMediaContainer withMediaTagVersion(Integer mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetMetadataMetadata[] metadata; + + public GetMetadataMediaContainer withMetadata(GetMetadataMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetMetadataMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMetadata.java new file mode 100644 index 00000000..502ffdbf --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMetadata.java @@ -0,0 +1,314 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.time.LocalDate; + + +public class GetMetadataMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetMetadataMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetMetadataMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetMetadataMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("studio") + public String studio; + + public GetMetadataMetadata withStudio(String studio) { + this.studio = studio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetMetadataMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetMetadataMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetMetadataMetadata withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetMetadataMetadata withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionKey") + public String librarySectionKey; + + public GetMetadataMetadata withLibrarySectionKey(String librarySectionKey) { + this.librarySectionKey = librarySectionKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentRating") + public String contentRating; + + public GetMetadataMetadata withContentRating(String contentRating) { + this.contentRating = contentRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetMetadataMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("rating") + public Double rating; + + public GetMetadataMetadata withRating(Double rating) { + this.rating = rating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRating") + public Double audienceRating; + + public GetMetadataMetadata withAudienceRating(Double audienceRating) { + this.audienceRating = audienceRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("year") + public Integer year; + + public GetMetadataMetadata withYear(Integer year) { + this.year = year; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagline") + public String tagline; + + public GetMetadataMetadata withTagline(String tagline) { + this.tagline = tagline; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetMetadataMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetMetadataMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetMetadataMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + @JsonProperty("originallyAvailableAt") + public LocalDate originallyAvailableAt; + + public GetMetadataMetadata withOriginallyAvailableAt(LocalDate originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetMetadataMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetMetadataMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRatingImage") + public String audienceRatingImage; + + public GetMetadataMetadata withAudienceRatingImage(String audienceRatingImage) { + this.audienceRatingImage = audienceRatingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasPremiumPrimaryExtra") + public String hasPremiumPrimaryExtra; + + public GetMetadataMetadata withHasPremiumPrimaryExtra(String hasPremiumPrimaryExtra) { + this.hasPremiumPrimaryExtra = hasPremiumPrimaryExtra; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingImage") + public String ratingImage; + + public GetMetadataMetadata withRatingImage(String ratingImage) { + this.ratingImage = ratingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public GetMetadataMedia[] media; + + public GetMetadataMetadata withMedia(GetMetadataMedia[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Genre") + public GetMetadataGenre[] genre; + + public GetMetadataMetadata withGenre(GetMetadataGenre[] genre) { + this.genre = genre; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Country") + public GetMetadataCountry[] country; + + public GetMetadataMetadata withCountry(GetMetadataCountry[] country) { + this.country = country; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Guid") + public Guids[] guids; + + public GetMetadataMetadata withGuids(Guids[] guids) { + this.guids = guids; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Rating") + public Ratings[] ratings; + + public GetMetadataMetadata withRatings(Ratings[] ratings) { + this.ratings = ratings; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Director") + public GetMetadataDirector[] director; + + public GetMetadataMetadata withDirector(GetMetadataDirector[] director) { + this.director = director; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Writer") + public GetMetadataWriter[] writer; + + public GetMetadataMetadata withWriter(GetMetadataWriter[] writer) { + this.writer = writer; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Role") + public GetMetadataRole[] role; + + public GetMetadataMetadata withRole(GetMetadataRole[] role) { + this.role = role; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Producer") + public Producer[] producer; + + public GetMetadataMetadata withProducer(Producer[] producer) { + this.producer = producer; + return this; + } + + public GetMetadataMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataPart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataPart.java new file mode 100644 index 00000000..a66ecbc3 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataPart.java @@ -0,0 +1,113 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataPart { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetMetadataPart withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetMetadataPart withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetMetadataPart withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public GetMetadataPart withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetMetadataPart withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetMetadataPart withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetMetadataPart withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public GetMetadataPart withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Boolean optimizedForStreaming; + + public GetMetadataPart withOptimizedForStreaming(Boolean optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetMetadataPart withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Stream") + public Stream[] stream; + + public GetMetadataPart withStream(Stream[] stream) { + this.stream = stream; + return this; + } + + public GetMetadataPart(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRequest.java new file mode 100644 index 00000000..89918c9b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetMetadataRequest { + /** + * the id of the library item to return the children of. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey") + public Double ratingKey; + + public GetMetadataRequest withRatingKey(Double ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + public GetMetadataRequest(@JsonProperty("ratingKey") Double ratingKey) { + this.ratingKey = ratingKey; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponse.java new file mode 100644 index 00000000..b389f960 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetMetadataResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetMetadataResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetMetadataResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetMetadataResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The metadata of the library item. + */ + + public GetMetadataResponseBody twoHundredApplicationJsonObject; + + public GetMetadataResponse withTwoHundredApplicationJsonObject(GetMetadataResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetMetadataLibraryResponseBody fourHundredAndOneApplicationJsonObject; + + public GetMetadataResponse withFourHundredAndOneApplicationJsonObject(GetMetadataLibraryResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetMetadataResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponseBody.java new file mode 100644 index 00000000..5fd9de4b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetMetadataResponseBody - The metadata of the library item. + */ + +public class GetMetadataResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetMetadataMediaContainer mediaContainer; + + public GetMetadataResponseBody withMediaContainer(GetMetadataMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetMetadataResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRole.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRole.java new file mode 100644 index 00000000..ba44bd75 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRole.java @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataRole { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetMetadataRole withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filter") + public String filter; + + public GetMetadataRole withFilter(String filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetMetadataRole withTag(String tag) { + this.tag = tag; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagKey") + public String tagKey; + + public GetMetadataRole withTagKey(String tagKey) { + this.tagKey = tagKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("role") + public String role; + + public GetMetadataRole withRole(String role) { + this.role = role; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetMetadataRole withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + public GetMetadataRole(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataWriter.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataWriter.java new file mode 100644 index 00000000..8cb1df6b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataWriter.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMetadataWriter { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetMetadataWriter withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filter") + public String filter; + + public GetMetadataWriter withFilter(String filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetMetadataWriter withTag(String tag) { + this.tag = tag; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagKey") + public String tagKey; + + public GetMetadataWriter withTagKey(String tagKey) { + this.tagKey = tagKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetMetadataWriter withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + public GetMetadataWriter(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountErrors.java new file mode 100644 index 00000000..e017b100 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetMyPlexAccountErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetMyPlexAccountErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetMyPlexAccountErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetMyPlexAccountErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetMyPlexAccountErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponse.java new file mode 100644 index 00000000..ef96bece --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetMyPlexAccountResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetMyPlexAccountResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetMyPlexAccountResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetMyPlexAccountResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * MyPlex Account + */ + + public GetMyPlexAccountResponseBody twoHundredApplicationJsonObject; + + public GetMyPlexAccountResponse withTwoHundredApplicationJsonObject(GetMyPlexAccountResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetMyPlexAccountServerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetMyPlexAccountResponse withFourHundredAndOneApplicationJsonObject(GetMyPlexAccountServerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetMyPlexAccountResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponseBody.java new file mode 100644 index 00000000..e9496a64 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetMyPlexAccountResponseBody - MyPlex Account + */ + +public class GetMyPlexAccountResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MyPlex") + public MyPlex myPlex; + + public GetMyPlexAccountResponseBody withMyPlex(MyPlex myPlex) { + this.myPlex = myPlex; + return this; + } + + public GetMyPlexAccountResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountServerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountServerResponseBody.java new file mode 100644 index 00000000..6e3fa1fa --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountServerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetMyPlexAccountServerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetMyPlexAccountServerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetMyPlexAccountErrors[] errors; + + public GetMyPlexAccountServerResponseBody withErrors(GetMyPlexAccountErrors[] errors) { + this.errors = errors; + return this; + } + + public GetMyPlexAccountServerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckErrors.java new file mode 100644 index 00000000..0500e402 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetOnDeckErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetOnDeckErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetOnDeckErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetOnDeckErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetOnDeckErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckGuids.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckGuids.java new file mode 100644 index 00000000..435295f2 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckGuids.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetOnDeckGuids { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public GetOnDeckGuids withId(String id) { + this.id = id; + return this; + } + + public GetOnDeckGuids(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckLibraryResponseBody.java new file mode 100644 index 00000000..88422265 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetOnDeckLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetOnDeckLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetOnDeckErrors[] errors; + + public GetOnDeckLibraryResponseBody withErrors(GetOnDeckErrors[] errors) { + this.errors = errors; + return this; + } + + public GetOnDeckLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMedia.java new file mode 100644 index 00000000..8ee633d5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMedia.java @@ -0,0 +1,149 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetOnDeckMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public GetOnDeckMedia withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public GetOnDeckMedia withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Double bitrate; + + public GetOnDeckMedia withBitrate(Double bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Double width; + + public GetOnDeckMedia withWidth(Double width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Double height; + + public GetOnDeckMedia withHeight(Double height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aspectRatio") + public Double aspectRatio; + + public GetOnDeckMedia withAspectRatio(Double aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Double audioChannels; + + public GetOnDeckMedia withAudioChannels(Double audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public GetOnDeckMedia withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public GetOnDeckMedia withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoResolution") + public String videoResolution; + + public GetOnDeckMedia withVideoResolution(String videoResolution) { + this.videoResolution = videoResolution; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetOnDeckMedia withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoFrameRate") + public String videoFrameRate; + + public GetOnDeckMedia withVideoFrameRate(String videoFrameRate) { + this.videoFrameRate = videoFrameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetOnDeckMedia withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetOnDeckMedia withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public GetOnDeckPart[] part; + + public GetOnDeckMedia withPart(GetOnDeckPart[] part) { + this.part = part; + return this; + } + + public GetOnDeckMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMediaContainer.java new file mode 100644 index 00000000..30022bca --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMediaContainer.java @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetOnDeckMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetOnDeckMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetOnDeckMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetOnDeckMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public GetOnDeckMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Double mediaTagVersion; + + public GetOnDeckMediaContainer withMediaTagVersion(Double mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mixedParents") + public Boolean mixedParents; + + public GetOnDeckMediaContainer withMixedParents(Boolean mixedParents) { + this.mixedParents = mixedParents; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetOnDeckMetadata[] metadata; + + public GetOnDeckMediaContainer withMetadata(GetOnDeckMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetOnDeckMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMetadata.java new file mode 100644 index 00000000..c8b03d6d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMetadata.java @@ -0,0 +1,345 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import lukehagar.plexapi.plexapi.utils.DateTimeDeserializer; +import lukehagar.plexapi.plexapi.utils.DateTimeSerializer; + + +public class GetOnDeckMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetOnDeckMetadata withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Double librarySectionID; + + public GetOnDeckMetadata withLibrarySectionID(Double librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetOnDeckMetadata withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionUUID") + public String librarySectionUUID; + + public GetOnDeckMetadata withLibrarySectionUUID(String librarySectionUUID) { + this.librarySectionUUID = librarySectionUUID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public Double ratingKey; + + public GetOnDeckMetadata withRatingKey(Double ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetOnDeckMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentRatingKey") + public Double parentRatingKey; + + public GetOnDeckMetadata withParentRatingKey(Double parentRatingKey) { + this.parentRatingKey = parentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentRatingKey") + public Double grandparentRatingKey; + + public GetOnDeckMetadata withGrandparentRatingKey(Double grandparentRatingKey) { + this.grandparentRatingKey = grandparentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetOnDeckMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentGuid") + public String parentGuid; + + public GetOnDeckMetadata withParentGuid(String parentGuid) { + this.parentGuid = parentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentGuid") + public String grandparentGuid; + + public GetOnDeckMetadata withGrandparentGuid(String grandparentGuid) { + this.grandparentGuid = grandparentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetOnDeckMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetOnDeckMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentKey") + public String grandparentKey; + + public GetOnDeckMetadata withGrandparentKey(String grandparentKey) { + this.grandparentKey = grandparentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentKey") + public String parentKey; + + public GetOnDeckMetadata withParentKey(String parentKey) { + this.parentKey = parentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionKey") + public String librarySectionKey; + + public GetOnDeckMetadata withLibrarySectionKey(String librarySectionKey) { + this.librarySectionKey = librarySectionKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentTitle") + public String grandparentTitle; + + public GetOnDeckMetadata withGrandparentTitle(String grandparentTitle) { + this.grandparentTitle = grandparentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTitle") + public String parentTitle; + + public GetOnDeckMetadata withParentTitle(String parentTitle) { + this.parentTitle = parentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentRating") + public String contentRating; + + public GetOnDeckMetadata withContentRating(String contentRating) { + this.contentRating = contentRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetOnDeckMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Double index; + + public GetOnDeckMetadata withIndex(Double index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentIndex") + public Double parentIndex; + + public GetOnDeckMetadata withParentIndex(Double parentIndex) { + this.parentIndex = parentIndex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastViewedAt") + public Double lastViewedAt; + + public GetOnDeckMetadata withLastViewedAt(Double lastViewedAt) { + this.lastViewedAt = lastViewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("year") + public Double year; + + public GetOnDeckMetadata withYear(Double year) { + this.year = year; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetOnDeckMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetOnDeckMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentThumb") + public String parentThumb; + + public GetOnDeckMetadata withParentThumb(String parentThumb) { + this.parentThumb = parentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentThumb") + public String grandparentThumb; + + public GetOnDeckMetadata withGrandparentThumb(String grandparentThumb) { + this.grandparentThumb = grandparentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentArt") + public String grandparentArt; + + public GetOnDeckMetadata withGrandparentArt(String grandparentArt) { + this.grandparentArt = grandparentArt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentTheme") + public String grandparentTheme; + + public GetOnDeckMetadata withGrandparentTheme(String grandparentTheme) { + this.grandparentTheme = grandparentTheme; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public GetOnDeckMetadata withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonSerialize(using = DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeDeserializer.class) + @JsonProperty("originallyAvailableAt") + public OffsetDateTime originallyAvailableAt; + + public GetOnDeckMetadata withOriginallyAvailableAt(OffsetDateTime originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Double addedAt; + + public GetOnDeckMetadata withAddedAt(Double addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Double updatedAt; + + public GetOnDeckMetadata withUpdatedAt(Double updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public GetOnDeckMedia[] media; + + public GetOnDeckMetadata withMedia(GetOnDeckMedia[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Guid") + public GetOnDeckGuids[] guids; + + public GetOnDeckMetadata withGuids(GetOnDeckGuids[] guids) { + this.guids = guids; + return this; + } + + public GetOnDeckMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckPart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckPart.java new file mode 100644 index 00000000..6fa29c91 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckPart.java @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetOnDeckPart { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public GetOnDeckPart withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetOnDeckPart withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public GetOnDeckPart withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public GetOnDeckPart withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetOnDeckPart withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetOnDeckPart withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetOnDeckPart withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetOnDeckPart withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Stream") + public GetOnDeckStream[] stream; + + public GetOnDeckPart withStream(GetOnDeckStream[] stream) { + this.stream = stream; + return this; + } + + public GetOnDeckPart(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponse.java new file mode 100644 index 00000000..9acb2e15 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetOnDeckResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetOnDeckResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetOnDeckResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetOnDeckResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The on Deck content + */ + + public GetOnDeckResponseBody twoHundredApplicationJsonObject; + + public GetOnDeckResponse withTwoHundredApplicationJsonObject(GetOnDeckResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetOnDeckLibraryResponseBody fourHundredAndOneApplicationJsonObject; + + public GetOnDeckResponse withFourHundredAndOneApplicationJsonObject(GetOnDeckLibraryResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetOnDeckResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponseBody.java new file mode 100644 index 00000000..fc0ac911 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetOnDeckResponseBody - The on Deck content + */ + +public class GetOnDeckResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetOnDeckMediaContainer mediaContainer; + + public GetOnDeckResponseBody withMediaContainer(GetOnDeckMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetOnDeckResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckStream.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckStream.java new file mode 100644 index 00000000..ae366abe --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckStream.java @@ -0,0 +1,221 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetOnDeckStream { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public GetOnDeckStream withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("streamType") + public Double streamType; + + public GetOnDeckStream withStreamType(Double streamType) { + this.streamType = streamType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("default") + public Boolean default_; + + public GetOnDeckStream withDefault(Boolean default_) { + this.default_ = default_; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("codec") + public String codec; + + public GetOnDeckStream withCodec(String codec) { + this.codec = codec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Double index; + + public GetOnDeckStream withIndex(Double index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Double bitrate; + + public GetOnDeckStream withBitrate(Double bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("language") + public String language; + + public GetOnDeckStream withLanguage(String language) { + this.language = language; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("languageTag") + public String languageTag; + + public GetOnDeckStream withLanguageTag(String languageTag) { + this.languageTag = languageTag; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("languageCode") + public String languageCode; + + public GetOnDeckStream withLanguageCode(String languageCode) { + this.languageCode = languageCode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitDepth") + public Double bitDepth; + + public GetOnDeckStream withBitDepth(Double bitDepth) { + this.bitDepth = bitDepth; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chromaLocation") + public String chromaLocation; + + public GetOnDeckStream withChromaLocation(String chromaLocation) { + this.chromaLocation = chromaLocation; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chromaSubsampling") + public String chromaSubsampling; + + public GetOnDeckStream withChromaSubsampling(String chromaSubsampling) { + this.chromaSubsampling = chromaSubsampling; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("codedHeight") + public Double codedHeight; + + public GetOnDeckStream withCodedHeight(Double codedHeight) { + this.codedHeight = codedHeight; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("codedWidth") + public Double codedWidth; + + public GetOnDeckStream withCodedWidth(Double codedWidth) { + this.codedWidth = codedWidth; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("colorRange") + public String colorRange; + + public GetOnDeckStream withColorRange(String colorRange) { + this.colorRange = colorRange; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("frameRate") + public Double frameRate; + + public GetOnDeckStream withFrameRate(Double frameRate) { + this.frameRate = frameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Double height; + + public GetOnDeckStream withHeight(Double height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("level") + public Double level; + + public GetOnDeckStream withLevel(Double level) { + this.level = level; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("profile") + public String profile; + + public GetOnDeckStream withProfile(String profile) { + this.profile = profile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("refFrames") + public Double refFrames; + + public GetOnDeckStream withRefFrames(Double refFrames) { + this.refFrames = refFrames; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Double width; + + public GetOnDeckStream withWidth(Double width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("displayTitle") + public String displayTitle; + + public GetOnDeckStream withDisplayTitle(String displayTitle) { + this.displayTitle = displayTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("extendedDisplayTitle") + public String extendedDisplayTitle; + + public GetOnDeckStream withExtendedDisplayTitle(String extendedDisplayTitle) { + this.extendedDisplayTitle = extendedDisplayTitle; + return this; + } + + public GetOnDeckStream(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinErrors.java new file mode 100644 index 00000000..fb1fc85c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPinErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetPinErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetPinErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetPinErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetPinErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinPlexResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinPlexResponseBody.java new file mode 100644 index 00000000..216a7bb8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinPlexResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetPinPlexResponseBody - X-Plex-Client-Identifier is missing + */ + +public class GetPinPlexResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetPinErrors[] errors; + + public GetPinPlexResponseBody withErrors(GetPinErrors[] errors) { + this.errors = errors; + return this; + } + + public GetPinPlexResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinRequest.java new file mode 100644 index 00000000..712f520d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinRequest.java @@ -0,0 +1,43 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetPinRequest { + /** + * The unique identifier for the client application + * This is used to track the client application and its usage + * (UUID, serial number, or other number unique per device) + * + */ + @SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier") + public String xPlexClientIdentifier; + + public GetPinRequest withXPlexClientIdentifier(String xPlexClientIdentifier) { + this.xPlexClientIdentifier = xPlexClientIdentifier; + return this; + } + + /** + * Determines the kind of code returned by the API call + * Strong codes are used for Pin authentication flows + * Non-Strong codes are used for `Plex.tv/link` + * + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=strong") + public Boolean strong; + + public GetPinRequest withStrong(Boolean strong) { + this.strong = strong; + return this; + } + + public GetPinRequest(@JsonProperty("X-Plex-Client-Identifier") String xPlexClientIdentifier) { + this.xPlexClientIdentifier = xPlexClientIdentifier; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponse.java new file mode 100644 index 00000000..2ba5dbe0 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetPinResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetPinResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetPinResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetPinResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The Pin + */ + + public GetPinResponseBody twoHundredApplicationJsonObject; + + public GetPinResponse withTwoHundredApplicationJsonObject(GetPinResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * X-Plex-Client-Identifier is missing + */ + + public GetPinPlexResponseBody fourHundredApplicationJsonObject; + + public GetPinResponse withFourHundredApplicationJsonObject(GetPinPlexResponseBody fourHundredApplicationJsonObject) { + this.fourHundredApplicationJsonObject = fourHundredApplicationJsonObject; + return this; + } + + public GetPinResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponseBody.java new file mode 100644 index 00000000..8e7bce4e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponseBody.java @@ -0,0 +1,143 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import lukehagar.plexapi.plexapi.utils.DateTimeDeserializer; +import lukehagar.plexapi.plexapi.utils.DateTimeSerializer; + +/** + * GetPinResponseBody - The Pin + */ + +public class GetPinResponseBody { + /** + * PinID for use with authentication + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public GetPinResponseBody withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public String code; + + public GetPinResponseBody withCode(String code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("product") + public String product; + + public GetPinResponseBody withProduct(String product) { + this.product = product; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("trusted") + public Boolean trusted; + + public GetPinResponseBody withTrusted(Boolean trusted) { + this.trusted = trusted; + return this; + } + + /** + * a link to a QR code hosted on plex.tv + * The QR code redirects to the relevant `plex.tv/link` authentication page + * Which then prompts the user for the 4 Digit Link Pin + * + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("qr") + public String qr; + + public GetPinResponseBody withQr(String qr) { + this.qr = qr; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("clientIdentifier") + public String clientIdentifier; + + public GetPinResponseBody withClientIdentifier(String clientIdentifier) { + this.clientIdentifier = clientIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("location") + public Location location; + + public GetPinResponseBody withLocation(Location location) { + this.location = location; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("expiresIn") + public Double expiresIn; + + public GetPinResponseBody withExpiresIn(Double expiresIn) { + this.expiresIn = expiresIn; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonSerialize(using = DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeDeserializer.class) + @JsonProperty("createdAt") + public OffsetDateTime createdAt; + + public GetPinResponseBody withCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonSerialize(using = DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeDeserializer.class) + @JsonProperty("expiresAt") + public OffsetDateTime expiresAt; + + public GetPinResponseBody withExpiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("authToken") + public String authToken; + + public GetPinResponseBody withAuthToken(String authToken) { + this.authToken = authToken; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("newRegistration") + public String newRegistration; + + public GetPinResponseBody withNewRegistration(String newRegistration) { + this.newRegistration = newRegistration; + return this; + } + + public GetPinResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsCountry.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsCountry.java new file mode 100644 index 00000000..f069400b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsCountry.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsCountry { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetPlaylistContentsCountry withTag(String tag) { + this.tag = tag; + return this; + } + + public GetPlaylistContentsCountry(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsDirector.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsDirector.java new file mode 100644 index 00000000..e8da5e8e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsDirector.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsDirector { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetPlaylistContentsDirector withTag(String tag) { + this.tag = tag; + return this; + } + + public GetPlaylistContentsDirector(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsErrors.java new file mode 100644 index 00000000..160f742d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetPlaylistContentsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetPlaylistContentsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetPlaylistContentsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetPlaylistContentsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsGenre.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsGenre.java new file mode 100644 index 00000000..1df87b39 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsGenre.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsGenre { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetPlaylistContentsGenre withTag(String tag) { + this.tag = tag; + return this; + } + + public GetPlaylistContentsGenre(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMedia.java new file mode 100644 index 00000000..36c81b80 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMedia.java @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetPlaylistContentsMedia withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetPlaylistContentsMedia withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Integer bitrate; + + public GetPlaylistContentsMedia withBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Integer width; + + public GetPlaylistContentsMedia withWidth(Integer width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Integer height; + + public GetPlaylistContentsMedia withHeight(Integer height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aspectRatio") + public Double aspectRatio; + + public GetPlaylistContentsMedia withAspectRatio(Double aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Integer audioChannels; + + public GetPlaylistContentsMedia withAudioChannels(Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public GetPlaylistContentsMedia withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public GetPlaylistContentsMedia withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoResolution") + public String videoResolution; + + public GetPlaylistContentsMedia withVideoResolution(String videoResolution) { + this.videoResolution = videoResolution; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetPlaylistContentsMedia withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoFrameRate") + public String videoFrameRate; + + public GetPlaylistContentsMedia withVideoFrameRate(String videoFrameRate) { + this.videoFrameRate = videoFrameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Integer optimizedForStreaming; + + public GetPlaylistContentsMedia withOptimizedForStreaming(Integer optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetPlaylistContentsMedia withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public GetPlaylistContentsMedia withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetPlaylistContentsMedia withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public GetPlaylistContentsPart[] part; + + public GetPlaylistContentsMedia withPart(GetPlaylistContentsPart[] part) { + this.part = part; + return this; + } + + public GetPlaylistContentsMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMediaContainer.java new file mode 100644 index 00000000..06f0e62e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMediaContainer.java @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetPlaylistContentsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("composite") + public String composite; + + public GetPlaylistContentsMediaContainer withComposite(String composite) { + this.composite = composite; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetPlaylistContentsMediaContainer withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public GetPlaylistContentsMediaContainer withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("playlistType") + public String playlistType; + + public GetPlaylistContentsMediaContainer withPlaylistType(String playlistType) { + this.playlistType = playlistType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetPlaylistContentsMediaContainer withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("smart") + public Boolean smart; + + public GetPlaylistContentsMediaContainer withSmart(Boolean smart) { + this.smart = smart; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetPlaylistContentsMediaContainer withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetPlaylistContentsMetadata[] metadata; + + public GetPlaylistContentsMediaContainer withMetadata(GetPlaylistContentsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetPlaylistContentsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMetadata.java new file mode 100644 index 00000000..9cd7e39c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMetadata.java @@ -0,0 +1,305 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.time.LocalDate; + + +public class GetPlaylistContentsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetPlaylistContentsMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetPlaylistContentsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetPlaylistContentsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("studio") + public String studio; + + public GetPlaylistContentsMetadata withStudio(String studio) { + this.studio = studio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetPlaylistContentsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetPlaylistContentsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("titleSort") + public String titleSort; + + public GetPlaylistContentsMetadata withTitleSort(String titleSort) { + this.titleSort = titleSort; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetPlaylistContentsMetadata withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Integer librarySectionID; + + public GetPlaylistContentsMetadata withLibrarySectionID(Integer librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionKey") + public String librarySectionKey; + + public GetPlaylistContentsMetadata withLibrarySectionKey(String librarySectionKey) { + this.librarySectionKey = librarySectionKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentRating") + public String contentRating; + + public GetPlaylistContentsMetadata withContentRating(String contentRating) { + this.contentRating = contentRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetPlaylistContentsMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("rating") + public Double rating; + + public GetPlaylistContentsMetadata withRating(Double rating) { + this.rating = rating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRating") + public Double audienceRating; + + public GetPlaylistContentsMetadata withAudienceRating(Double audienceRating) { + this.audienceRating = audienceRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("year") + public Integer year; + + public GetPlaylistContentsMetadata withYear(Integer year) { + this.year = year; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagline") + public String tagline; + + public GetPlaylistContentsMetadata withTagline(String tagline) { + this.tagline = tagline; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetPlaylistContentsMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetPlaylistContentsMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetPlaylistContentsMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + @JsonProperty("originallyAvailableAt") + public LocalDate originallyAvailableAt; + + public GetPlaylistContentsMetadata withOriginallyAvailableAt(LocalDate originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetPlaylistContentsMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetPlaylistContentsMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRatingImage") + public String audienceRatingImage; + + public GetPlaylistContentsMetadata withAudienceRatingImage(String audienceRatingImage) { + this.audienceRatingImage = audienceRatingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasPremiumExtras") + public String hasPremiumExtras; + + public GetPlaylistContentsMetadata withHasPremiumExtras(String hasPremiumExtras) { + this.hasPremiumExtras = hasPremiumExtras; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasPremiumPrimaryExtra") + public String hasPremiumPrimaryExtra; + + public GetPlaylistContentsMetadata withHasPremiumPrimaryExtra(String hasPremiumPrimaryExtra) { + this.hasPremiumPrimaryExtra = hasPremiumPrimaryExtra; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingImage") + public String ratingImage; + + public GetPlaylistContentsMetadata withRatingImage(String ratingImage) { + this.ratingImage = ratingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public GetPlaylistContentsMedia[] media; + + public GetPlaylistContentsMetadata withMedia(GetPlaylistContentsMedia[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Genre") + public GetPlaylistContentsGenre[] genre; + + public GetPlaylistContentsMetadata withGenre(GetPlaylistContentsGenre[] genre) { + this.genre = genre; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Country") + public GetPlaylistContentsCountry[] country; + + public GetPlaylistContentsMetadata withCountry(GetPlaylistContentsCountry[] country) { + this.country = country; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Director") + public GetPlaylistContentsDirector[] director; + + public GetPlaylistContentsMetadata withDirector(GetPlaylistContentsDirector[] director) { + this.director = director; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Writer") + public GetPlaylistContentsWriter[] writer; + + public GetPlaylistContentsMetadata withWriter(GetPlaylistContentsWriter[] writer) { + this.writer = writer; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Role") + public GetPlaylistContentsRole[] role; + + public GetPlaylistContentsMetadata withRole(GetPlaylistContentsRole[] role) { + this.role = role; + return this; + } + + public GetPlaylistContentsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPart.java new file mode 100644 index 00000000..092fc2c9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPart.java @@ -0,0 +1,104 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsPart { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetPlaylistContentsPart withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetPlaylistContentsPart withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetPlaylistContentsPart withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public GetPlaylistContentsPart withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetPlaylistContentsPart withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetPlaylistContentsPart withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetPlaylistContentsPart withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public GetPlaylistContentsPart withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Boolean optimizedForStreaming; + + public GetPlaylistContentsPart withOptimizedForStreaming(Boolean optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetPlaylistContentsPart withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + public GetPlaylistContentsPart(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPlaylistsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPlaylistsResponseBody.java new file mode 100644 index 00000000..0a8e7156 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPlaylistsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetPlaylistContentsPlaylistsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetPlaylistContentsPlaylistsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetPlaylistContentsErrors[] errors; + + public GetPlaylistContentsPlaylistsResponseBody withErrors(GetPlaylistContentsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetPlaylistContentsPlaylistsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRequest.java new file mode 100644 index 00000000..90c44072 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRequest.java @@ -0,0 +1,38 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetPlaylistContentsRequest { + /** + * the ID of the playlist + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=playlistID") + public Double playlistID; + + public GetPlaylistContentsRequest withPlaylistID(Double playlistID) { + this.playlistID = playlistID; + return this; + } + + /** + * the metadata type of the item to return + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=type") + public Double type; + + public GetPlaylistContentsRequest withType(Double type) { + this.type = type; + return this; + } + + public GetPlaylistContentsRequest(@JsonProperty("playlistID") Double playlistID, @JsonProperty("type") Double type) { + this.playlistID = playlistID; + this.type = type; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponse.java new file mode 100644 index 00000000..f5e10b23 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetPlaylistContentsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetPlaylistContentsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetPlaylistContentsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetPlaylistContentsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The playlist contents + */ + + public GetPlaylistContentsResponseBody twoHundredApplicationJsonObject; + + public GetPlaylistContentsResponse withTwoHundredApplicationJsonObject(GetPlaylistContentsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetPlaylistContentsPlaylistsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetPlaylistContentsResponse withFourHundredAndOneApplicationJsonObject(GetPlaylistContentsPlaylistsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetPlaylistContentsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponseBody.java new file mode 100644 index 00000000..81c843a6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetPlaylistContentsResponseBody - The playlist contents + */ + +public class GetPlaylistContentsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetPlaylistContentsMediaContainer mediaContainer; + + public GetPlaylistContentsResponseBody withMediaContainer(GetPlaylistContentsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetPlaylistContentsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRole.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRole.java new file mode 100644 index 00000000..12f07843 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRole.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsRole { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetPlaylistContentsRole withTag(String tag) { + this.tag = tag; + return this; + } + + public GetPlaylistContentsRole(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsWriter.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsWriter.java new file mode 100644 index 00000000..ba3f5ab4 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsWriter.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistContentsWriter { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetPlaylistContentsWriter withTag(String tag) { + this.tag = tag; + return this; + } + + public GetPlaylistContentsWriter(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistErrors.java new file mode 100644 index 00000000..dbcbfe19 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetPlaylistErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetPlaylistErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetPlaylistErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetPlaylistErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMediaContainer.java new file mode 100644 index 00000000..c1a87e2d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetPlaylistMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetPlaylistMetadata[] metadata; + + public GetPlaylistMediaContainer withMetadata(GetPlaylistMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetPlaylistMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMetadata.java new file mode 100644 index 00000000..4906bbb1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMetadata.java @@ -0,0 +1,149 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("content") + public String content; + + public GetPlaylistMetadata withContent(String content) { + this.content = content; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetPlaylistMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetPlaylistMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetPlaylistMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetPlaylistMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetPlaylistMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetPlaylistMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("smart") + public Boolean smart; + + public GetPlaylistMetadata withSmart(Boolean smart) { + this.smart = smart; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("playlistType") + public String playlistType; + + public GetPlaylistMetadata withPlaylistType(String playlistType) { + this.playlistType = playlistType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("composite") + public String composite; + + public GetPlaylistMetadata withComposite(String composite) { + this.composite = composite; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("icon") + public String icon; + + public GetPlaylistMetadata withIcon(String icon) { + this.icon = icon; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetPlaylistMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public GetPlaylistMetadata withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetPlaylistMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetPlaylistMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public GetPlaylistMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistPlaylistsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistPlaylistsResponseBody.java new file mode 100644 index 00000000..579c18f1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistPlaylistsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetPlaylistPlaylistsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetPlaylistPlaylistsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetPlaylistErrors[] errors; + + public GetPlaylistPlaylistsResponseBody withErrors(GetPlaylistErrors[] errors) { + this.errors = errors; + return this; + } + + public GetPlaylistPlaylistsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistRequest.java new file mode 100644 index 00000000..d685ac8b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetPlaylistRequest { + /** + * the ID of the playlist + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=playlistID") + public Double playlistID; + + public GetPlaylistRequest withPlaylistID(Double playlistID) { + this.playlistID = playlistID; + return this; + } + + public GetPlaylistRequest(@JsonProperty("playlistID") Double playlistID) { + this.playlistID = playlistID; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponse.java new file mode 100644 index 00000000..535e5628 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetPlaylistResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetPlaylistResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetPlaylistResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetPlaylistResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The playlist + */ + + public GetPlaylistResponseBody twoHundredApplicationJsonObject; + + public GetPlaylistResponse withTwoHundredApplicationJsonObject(GetPlaylistResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetPlaylistPlaylistsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetPlaylistResponse withFourHundredAndOneApplicationJsonObject(GetPlaylistPlaylistsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetPlaylistResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponseBody.java new file mode 100644 index 00000000..6a7c75e5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetPlaylistResponseBody - The playlist + */ + +public class GetPlaylistResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetPlaylistMediaContainer mediaContainer; + + public GetPlaylistResponseBody withMediaContainer(GetPlaylistMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetPlaylistResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsErrors.java new file mode 100644 index 00000000..4a7f7cfb --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetPlaylistsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetPlaylistsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetPlaylistsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetPlaylistsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMediaContainer.java new file mode 100644 index 00000000..9374fa1e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetPlaylistsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetPlaylistsMetadata[] metadata; + + public GetPlaylistsMediaContainer withMetadata(GetPlaylistsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetPlaylistsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMetadata.java new file mode 100644 index 00000000..da1e8310 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMetadata.java @@ -0,0 +1,158 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetPlaylistsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetPlaylistsMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetPlaylistsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetPlaylistsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetPlaylistsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetPlaylistsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetPlaylistsMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("smart") + public Boolean smart; + + public GetPlaylistsMetadata withSmart(Boolean smart) { + this.smart = smart; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("playlistType") + public String playlistType; + + public GetPlaylistsMetadata withPlaylistType(String playlistType) { + this.playlistType = playlistType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("composite") + public String composite; + + public GetPlaylistsMetadata withComposite(String composite) { + this.composite = composite; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("icon") + public String icon; + + public GetPlaylistsMetadata withIcon(String icon) { + this.icon = icon; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewCount") + public Integer viewCount; + + public GetPlaylistsMetadata withViewCount(Integer viewCount) { + this.viewCount = viewCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lastViewedAt") + public Integer lastViewedAt; + + public GetPlaylistsMetadata withLastViewedAt(Integer lastViewedAt) { + this.lastViewedAt = lastViewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetPlaylistsMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("leafCount") + public Integer leafCount; + + public GetPlaylistsMetadata withLeafCount(Integer leafCount) { + this.leafCount = leafCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetPlaylistsMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetPlaylistsMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public GetPlaylistsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsPlaylistsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsPlaylistsResponseBody.java new file mode 100644 index 00000000..d071efd5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsPlaylistsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetPlaylistsPlaylistsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetPlaylistsPlaylistsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetPlaylistsErrors[] errors; + + public GetPlaylistsPlaylistsResponseBody withErrors(GetPlaylistsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetPlaylistsPlaylistsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsRequest.java new file mode 100644 index 00000000..71bb18cc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsRequest.java @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetPlaylistsRequest { + /** + * limit to a type of playlist. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=playlistType") + public PlaylistType playlistType; + + public GetPlaylistsRequest withPlaylistType(PlaylistType playlistType) { + this.playlistType = playlistType; + return this; + } + + /** + * type of playlists to return (default is all). + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=smart") + public QueryParamSmart smart; + + public GetPlaylistsRequest withSmart(QueryParamSmart smart) { + this.smart = smart; + return this; + } + + public GetPlaylistsRequest(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponse.java new file mode 100644 index 00000000..9592d252 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetPlaylistsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetPlaylistsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetPlaylistsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetPlaylistsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * returns all playlists + */ + + public GetPlaylistsResponseBody twoHundredApplicationJsonObject; + + public GetPlaylistsResponse withTwoHundredApplicationJsonObject(GetPlaylistsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetPlaylistsPlaylistsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetPlaylistsResponse withFourHundredAndOneApplicationJsonObject(GetPlaylistsPlaylistsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetPlaylistsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponseBody.java new file mode 100644 index 00000000..54f2dc72 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetPlaylistsResponseBody - returns all playlists + */ + +public class GetPlaylistsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetPlaylistsMediaContainer mediaContainer; + + public GetPlaylistsResponseBody withMediaContainer(GetPlaylistsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetPlaylistsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedErrors.java new file mode 100644 index 00000000..afa280b1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetRecentlyAddedErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetRecentlyAddedErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetRecentlyAddedErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetRecentlyAddedErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetRecentlyAddedErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedLibraryResponseBody.java new file mode 100644 index 00000000..a037fdea --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetRecentlyAddedLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetRecentlyAddedLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetRecentlyAddedErrors[] errors; + + public GetRecentlyAddedLibraryResponseBody withErrors(GetRecentlyAddedErrors[] errors) { + this.errors = errors; + return this; + } + + public GetRecentlyAddedLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedMediaContainer.java new file mode 100644 index 00000000..5a5bead1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedMediaContainer.java @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetRecentlyAddedMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetRecentlyAddedMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetRecentlyAddedMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetRecentlyAddedMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public GetRecentlyAddedMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Double mediaTagVersion; + + public GetRecentlyAddedMediaContainer withMediaTagVersion(Double mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mixedParents") + public Boolean mixedParents; + + public GetRecentlyAddedMediaContainer withMixedParents(Boolean mixedParents) { + this.mixedParents = mixedParents; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public Metadata[] metadata; + + public GetRecentlyAddedMediaContainer withMetadata(Metadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetRecentlyAddedMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponse.java new file mode 100644 index 00000000..93ba9a53 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetRecentlyAddedResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetRecentlyAddedResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetRecentlyAddedResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetRecentlyAddedResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The recently added content + */ + + public GetRecentlyAddedResponseBody twoHundredApplicationJsonObject; + + public GetRecentlyAddedResponse withTwoHundredApplicationJsonObject(GetRecentlyAddedResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetRecentlyAddedLibraryResponseBody fourHundredAndOneApplicationJsonObject; + + public GetRecentlyAddedResponse withFourHundredAndOneApplicationJsonObject(GetRecentlyAddedLibraryResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetRecentlyAddedResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponseBody.java new file mode 100644 index 00000000..de85596e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetRecentlyAddedResponseBody - The recently added content + */ + +public class GetRecentlyAddedResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetRecentlyAddedMediaContainer mediaContainer; + + public GetRecentlyAddedResponseBody withMediaContainer(GetRecentlyAddedMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetRecentlyAddedResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoErrors.java new file mode 100644 index 00000000..6bc51da5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetResizedPhotoErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetResizedPhotoErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetResizedPhotoErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetResizedPhotoErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetResizedPhotoErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoRequest.java new file mode 100644 index 00000000..aa6e368e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoRequest.java @@ -0,0 +1,98 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetResizedPhotoRequest { + /** + * The width for the resized photo + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=width") + public Double width; + + public GetResizedPhotoRequest withWidth(Double width) { + this.width = width; + return this; + } + + /** + * The height for the resized photo + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=height") + public Double height; + + public GetResizedPhotoRequest withHeight(Double height) { + this.height = height; + return this; + } + + /** + * The opacity for the resized photo + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=opacity") + public Long opacity; + + public GetResizedPhotoRequest withOpacity(Long opacity) { + this.opacity = opacity; + return this; + } + + /** + * The width for the resized photo + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=blur") + public Double blur; + + public GetResizedPhotoRequest withBlur(Double blur) { + this.blur = blur; + return this; + } + + /** + * images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=minSize") + public MinSize minSize; + + public GetResizedPhotoRequest withMinSize(MinSize minSize) { + this.minSize = minSize; + return this; + } + + /** + * allow images to be resized beyond native dimensions. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=upscale") + public Upscale upscale; + + public GetResizedPhotoRequest withUpscale(Upscale upscale) { + this.upscale = upscale; + return this; + } + + /** + * path to image within Plex + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=url") + public String url; + + public GetResizedPhotoRequest withUrl(String url) { + this.url = url; + return this; + } + + public GetResizedPhotoRequest(@JsonProperty("width") Double width, @JsonProperty("height") Double height, @JsonProperty("opacity") Long opacity, @JsonProperty("blur") Double blur, @JsonProperty("minSize") MinSize minSize, @JsonProperty("upscale") Upscale upscale, @JsonProperty("url") String url) { + this.width = width; + this.height = height; + this.opacity = opacity; + this.blur = blur; + this.minSize = minSize; + this.upscale = upscale; + this.url = url; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponse.java new file mode 100644 index 00000000..1b24b327 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetResizedPhotoResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetResizedPhotoResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetResizedPhotoResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetResizedPhotoResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetResizedPhotoResponseBody object; + + public GetResizedPhotoResponse withObject(GetResizedPhotoResponseBody object) { + this.object = object; + return this; + } + + public GetResizedPhotoResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponseBody.java new file mode 100644 index 00000000..60d9dd20 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetResizedPhotoResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetResizedPhotoResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetResizedPhotoErrors[] errors; + + public GetResizedPhotoResponseBody withErrors(GetResizedPhotoErrors[] errors) { + this.errors = errors; + return this; + } + + public GetResizedPhotoResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsCountry.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsCountry.java new file mode 100644 index 00000000..891c015c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsCountry.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsCountry { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetSearchResultsCountry withTag(String tag) { + this.tag = tag; + return this; + } + + public GetSearchResultsCountry(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsDirector.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsDirector.java new file mode 100644 index 00000000..6b57527c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsDirector.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsDirector { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetSearchResultsDirector withTag(String tag) { + this.tag = tag; + return this; + } + + public GetSearchResultsDirector(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsErrors.java new file mode 100644 index 00000000..5a1866eb --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetSearchResultsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetSearchResultsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetSearchResultsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetSearchResultsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsGenre.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsGenre.java new file mode 100644 index 00000000..60e4777e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsGenre.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsGenre { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetSearchResultsGenre withTag(String tag) { + this.tag = tag; + return this; + } + + public GetSearchResultsGenre(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMedia.java new file mode 100644 index 00000000..51c1cb53 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMedia.java @@ -0,0 +1,149 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public GetSearchResultsMedia withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public GetSearchResultsMedia withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Double bitrate; + + public GetSearchResultsMedia withBitrate(Double bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Double width; + + public GetSearchResultsMedia withWidth(Double width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Double height; + + public GetSearchResultsMedia withHeight(Double height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aspectRatio") + public Double aspectRatio; + + public GetSearchResultsMedia withAspectRatio(Double aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Double audioChannels; + + public GetSearchResultsMedia withAudioChannels(Double audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public GetSearchResultsMedia withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public GetSearchResultsMedia withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoResolution") + public Double videoResolution; + + public GetSearchResultsMedia withVideoResolution(Double videoResolution) { + this.videoResolution = videoResolution; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetSearchResultsMedia withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoFrameRate") + public String videoFrameRate; + + public GetSearchResultsMedia withVideoFrameRate(String videoFrameRate) { + this.videoFrameRate = videoFrameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetSearchResultsMedia withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetSearchResultsMedia withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public GetSearchResultsPart[] part; + + public GetSearchResultsMedia withPart(GetSearchResultsPart[] part) { + this.part = part; + return this; + } + + public GetSearchResultsMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMediaContainer.java new file mode 100644 index 00000000..bc089ee6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMediaContainer.java @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetSearchResultsMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public GetSearchResultsMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public GetSearchResultsMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Double mediaTagVersion; + + public GetSearchResultsMediaContainer withMediaTagVersion(Double mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetSearchResultsMetadata[] metadata; + + public GetSearchResultsMediaContainer withMetadata(GetSearchResultsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Provider") + public Provider[] provider; + + public GetSearchResultsMediaContainer withProvider(Provider[] provider) { + this.provider = provider; + return this; + } + + public GetSearchResultsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMetadata.java new file mode 100644 index 00000000..72f0995c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMetadata.java @@ -0,0 +1,327 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import lukehagar.plexapi.plexapi.utils.DateTimeDeserializer; +import lukehagar.plexapi.plexapi.utils.DateTimeSerializer; + + +public class GetSearchResultsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public GetSearchResultsMetadata withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Double librarySectionID; + + public GetSearchResultsMetadata withLibrarySectionID(Double librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetSearchResultsMetadata withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionUUID") + public String librarySectionUUID; + + public GetSearchResultsMetadata withLibrarySectionUUID(String librarySectionUUID) { + this.librarySectionUUID = librarySectionUUID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("personal") + public Boolean personal; + + public GetSearchResultsMetadata withPersonal(Boolean personal) { + this.personal = personal; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("sourceTitle") + public String sourceTitle; + + public GetSearchResultsMetadata withSourceTitle(String sourceTitle) { + this.sourceTitle = sourceTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public Double ratingKey; + + public GetSearchResultsMetadata withRatingKey(Double ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetSearchResultsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetSearchResultsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("studio") + public String studio; + + public GetSearchResultsMetadata withStudio(String studio) { + this.studio = studio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetSearchResultsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetSearchResultsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentRating") + public String contentRating; + + public GetSearchResultsMetadata withContentRating(String contentRating) { + this.contentRating = contentRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public GetSearchResultsMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("rating") + public Double rating; + + public GetSearchResultsMetadata withRating(Double rating) { + this.rating = rating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRating") + public Double audienceRating; + + public GetSearchResultsMetadata withAudienceRating(Double audienceRating) { + this.audienceRating = audienceRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("year") + public Double year; + + public GetSearchResultsMetadata withYear(Double year) { + this.year = year; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagline") + public String tagline; + + public GetSearchResultsMetadata withTagline(String tagline) { + this.tagline = tagline; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetSearchResultsMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetSearchResultsMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public GetSearchResultsMetadata withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonSerialize(using = DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeDeserializer.class) + @JsonProperty("originallyAvailableAt") + public OffsetDateTime originallyAvailableAt; + + public GetSearchResultsMetadata withOriginallyAvailableAt(OffsetDateTime originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Double addedAt; + + public GetSearchResultsMetadata withAddedAt(Double addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Double updatedAt; + + public GetSearchResultsMetadata withUpdatedAt(Double updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRatingImage") + public String audienceRatingImage; + + public GetSearchResultsMetadata withAudienceRatingImage(String audienceRatingImage) { + this.audienceRatingImage = audienceRatingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chapterSource") + public String chapterSource; + + public GetSearchResultsMetadata withChapterSource(String chapterSource) { + this.chapterSource = chapterSource; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("primaryExtraKey") + public String primaryExtraKey; + + public GetSearchResultsMetadata withPrimaryExtraKey(String primaryExtraKey) { + this.primaryExtraKey = primaryExtraKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingImage") + public String ratingImage; + + public GetSearchResultsMetadata withRatingImage(String ratingImage) { + this.ratingImage = ratingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public GetSearchResultsMedia[] media; + + public GetSearchResultsMetadata withMedia(GetSearchResultsMedia[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Genre") + public GetSearchResultsGenre[] genre; + + public GetSearchResultsMetadata withGenre(GetSearchResultsGenre[] genre) { + this.genre = genre; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Director") + public GetSearchResultsDirector[] director; + + public GetSearchResultsMetadata withDirector(GetSearchResultsDirector[] director) { + this.director = director; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Writer") + public GetSearchResultsWriter[] writer; + + public GetSearchResultsMetadata withWriter(GetSearchResultsWriter[] writer) { + this.writer = writer; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Country") + public GetSearchResultsCountry[] country; + + public GetSearchResultsMetadata withCountry(GetSearchResultsCountry[] country) { + this.country = country; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Role") + public GetSearchResultsRole[] role; + + public GetSearchResultsMetadata withRole(GetSearchResultsRole[] role) { + this.role = role; + return this; + } + + public GetSearchResultsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsPart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsPart.java new file mode 100644 index 00000000..8f5db56d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsPart.java @@ -0,0 +1,86 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsPart { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public GetSearchResultsPart withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetSearchResultsPart withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public GetSearchResultsPart withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public GetSearchResultsPart withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetSearchResultsPart withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioProfile") + public String audioProfile; + + public GetSearchResultsPart withAudioProfile(String audioProfile) { + this.audioProfile = audioProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetSearchResultsPart withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public GetSearchResultsPart withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + public GetSearchResultsPart(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRequest.java new file mode 100644 index 00000000..06774d6b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetSearchResultsRequest { + /** + * The search query string to use + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=query") + public String query; + + public GetSearchResultsRequest withQuery(String query) { + this.query = query; + return this; + } + + public GetSearchResultsRequest(@JsonProperty("query") String query) { + this.query = query; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponse.java new file mode 100644 index 00000000..01911b58 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetSearchResultsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetSearchResultsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetSearchResultsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetSearchResultsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Search Results + */ + + public GetSearchResultsResponseBody twoHundredApplicationJsonObject; + + public GetSearchResultsResponse withTwoHundredApplicationJsonObject(GetSearchResultsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetSearchResultsSearchResponseBody fourHundredAndOneApplicationJsonObject; + + public GetSearchResultsResponse withFourHundredAndOneApplicationJsonObject(GetSearchResultsSearchResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetSearchResultsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponseBody.java new file mode 100644 index 00000000..339e2b2a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetSearchResultsResponseBody - Search Results + */ + +public class GetSearchResultsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetSearchResultsMediaContainer mediaContainer; + + public GetSearchResultsResponseBody withMediaContainer(GetSearchResultsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetSearchResultsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRole.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRole.java new file mode 100644 index 00000000..ef61f21a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRole.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsRole { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetSearchResultsRole withTag(String tag) { + this.tag = tag; + return this; + } + + public GetSearchResultsRole(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsSearchResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsSearchResponseBody.java new file mode 100644 index 00000000..5289cff2 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsSearchResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetSearchResultsSearchResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetSearchResultsSearchResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetSearchResultsErrors[] errors; + + public GetSearchResultsSearchResponseBody withErrors(GetSearchResultsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetSearchResultsSearchResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsWriter.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsWriter.java new file mode 100644 index 00000000..7eb80165 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsWriter.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSearchResultsWriter { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public GetSearchResultsWriter withTag(String tag) { + this.tag = tag; + return this; + } + + public GetSearchResultsWriter(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesActivitiesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesActivitiesResponseBody.java new file mode 100644 index 00000000..f3275e8d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesActivitiesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerActivitiesActivitiesResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetServerActivitiesActivitiesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetServerActivitiesErrors[] errors; + + public GetServerActivitiesActivitiesResponseBody withErrors(GetServerActivitiesErrors[] errors) { + this.errors = errors; + return this; + } + + public GetServerActivitiesActivitiesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesErrors.java new file mode 100644 index 00000000..2f939244 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerActivitiesErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetServerActivitiesErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetServerActivitiesErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetServerActivitiesErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetServerActivitiesErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesMediaContainer.java new file mode 100644 index 00000000..8da2b92f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerActivitiesMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetServerActivitiesMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Activity") + public Activity[] activity; + + public GetServerActivitiesMediaContainer withActivity(Activity[] activity) { + this.activity = activity; + return this; + } + + public GetServerActivitiesMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponse.java new file mode 100644 index 00000000..9e39c22d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetServerActivitiesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetServerActivitiesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetServerActivitiesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetServerActivitiesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The Server Activities + */ + + public GetServerActivitiesResponseBody twoHundredApplicationJsonObject; + + public GetServerActivitiesResponse withTwoHundredApplicationJsonObject(GetServerActivitiesResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetServerActivitiesActivitiesResponseBody fourHundredAndOneApplicationJsonObject; + + public GetServerActivitiesResponse withFourHundredAndOneApplicationJsonObject(GetServerActivitiesActivitiesResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetServerActivitiesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponseBody.java new file mode 100644 index 00000000..526aae3a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerActivitiesResponseBody - The Server Activities + */ + +public class GetServerActivitiesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetServerActivitiesMediaContainer mediaContainer; + + public GetServerActivitiesResponseBody withMediaContainer(GetServerActivitiesMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetServerActivitiesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponse.java new file mode 100644 index 00000000..8d7188ab --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetServerCapabilitiesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetServerCapabilitiesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetServerCapabilitiesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetServerCapabilitiesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The Server Capabilities + */ + + public GetServerCapabilitiesResponseBody twoHundredApplicationJsonObject; + + public GetServerCapabilitiesResponse withTwoHundredApplicationJsonObject(GetServerCapabilitiesResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetServerCapabilitiesServerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetServerCapabilitiesResponse withFourHundredAndOneApplicationJsonObject(GetServerCapabilitiesServerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetServerCapabilitiesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponseBody.java new file mode 100644 index 00000000..4923df40 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerCapabilitiesResponseBody - The Server Capabilities + */ + +public class GetServerCapabilitiesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public MediaContainer mediaContainer; + + public GetServerCapabilitiesResponseBody withMediaContainer(MediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetServerCapabilitiesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesServerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesServerResponseBody.java new file mode 100644 index 00000000..a828b276 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesServerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerCapabilitiesServerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetServerCapabilitiesServerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public Errors[] errors; + + public GetServerCapabilitiesServerResponseBody withErrors(Errors[] errors) { + this.errors = errors; + return this; + } + + public GetServerCapabilitiesServerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityErrors.java new file mode 100644 index 00000000..8c835116 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerIdentityErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetServerIdentityErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetServerIdentityErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetServerIdentityErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetServerIdentityErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityMediaContainer.java new file mode 100644 index 00000000..9fb08f9f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityMediaContainer.java @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerIdentityMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetServerIdentityMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("claimed") + public Boolean claimed; + + public GetServerIdentityMediaContainer withClaimed(Boolean claimed) { + this.claimed = claimed; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("machineIdentifier") + public String machineIdentifier; + + public GetServerIdentityMediaContainer withMachineIdentifier(String machineIdentifier) { + this.machineIdentifier = machineIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("version") + public String version; + + public GetServerIdentityMediaContainer withVersion(String version) { + this.version = version; + return this; + } + + public GetServerIdentityMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponse.java new file mode 100644 index 00000000..9c4c341e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetServerIdentityResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetServerIdentityResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetServerIdentityResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetServerIdentityResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The Server Identity information + */ + + public GetServerIdentityResponseBody twoHundredApplicationJsonObject; + + public GetServerIdentityResponse withTwoHundredApplicationJsonObject(GetServerIdentityResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetServerIdentityServerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetServerIdentityResponse withFourHundredAndOneApplicationJsonObject(GetServerIdentityServerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetServerIdentityResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponseBody.java new file mode 100644 index 00000000..07def663 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerIdentityResponseBody - The Server Identity information + */ + +public class GetServerIdentityResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetServerIdentityMediaContainer mediaContainer; + + public GetServerIdentityResponseBody withMediaContainer(GetServerIdentityMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetServerIdentityResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityServerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityServerResponseBody.java new file mode 100644 index 00000000..12e83570 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityServerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerIdentityServerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetServerIdentityServerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetServerIdentityErrors[] errors; + + public GetServerIdentityServerResponseBody withErrors(GetServerIdentityErrors[] errors) { + this.errors = errors; + return this; + } + + public GetServerIdentityServerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListErrors.java new file mode 100644 index 00000000..99ddef26 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerListErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetServerListErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetServerListErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetServerListErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetServerListErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListMediaContainer.java new file mode 100644 index 00000000..4d623273 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerListMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public GetServerListMediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Server") + public GetServerListServer[] server; + + public GetServerListMediaContainer withServer(GetServerListServer[] server) { + this.server = server; + return this; + } + + public GetServerListMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponse.java new file mode 100644 index 00000000..29a198cf --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetServerListResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetServerListResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetServerListResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetServerListResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * List of Servers + */ + + public GetServerListResponseBody twoHundredApplicationJsonObject; + + public GetServerListResponse withTwoHundredApplicationJsonObject(GetServerListResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetServerListServerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetServerListResponse withFourHundredAndOneApplicationJsonObject(GetServerListServerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetServerListResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponseBody.java new file mode 100644 index 00000000..7852db67 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerListResponseBody - List of Servers + */ + +public class GetServerListResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetServerListMediaContainer mediaContainer; + + public GetServerListResponseBody withMediaContainer(GetServerListMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetServerListResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServer.java new file mode 100644 index 00000000..6916ceb0 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServer.java @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerListServer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + public String name; + + public GetServerListServer withName(String name) { + this.name = name; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("host") + public String host; + + public GetServerListServer withHost(String host) { + this.host = host; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("address") + public String address; + + public GetServerListServer withAddress(String address) { + this.address = address; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("port") + public Double port; + + public GetServerListServer withPort(Double port) { + this.port = port; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("machineIdentifier") + public String machineIdentifier; + + public GetServerListServer withMachineIdentifier(String machineIdentifier) { + this.machineIdentifier = machineIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("version") + public String version; + + public GetServerListServer withVersion(String version) { + this.version = version; + return this; + } + + public GetServerListServer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServerResponseBody.java new file mode 100644 index 00000000..ce4bb39b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerListServerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetServerListServerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetServerListErrors[] errors; + + public GetServerListServerResponseBody withErrors(GetServerListErrors[] errors) { + this.errors = errors; + return this; + } + + public GetServerListServerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesErrors.java new file mode 100644 index 00000000..1e2d5a31 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerPreferencesErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetServerPreferencesErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetServerPreferencesErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetServerPreferencesErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetServerPreferencesErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesMediaContainer.java new file mode 100644 index 00000000..b19d028b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetServerPreferencesMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetServerPreferencesMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Setting") + public Setting[] setting; + + public GetServerPreferencesMediaContainer withSetting(Setting[] setting) { + this.setting = setting; + return this; + } + + public GetServerPreferencesMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponse.java new file mode 100644 index 00000000..6eadcb1c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetServerPreferencesResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetServerPreferencesResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetServerPreferencesResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetServerPreferencesResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Server Preferences + */ + + public GetServerPreferencesResponseBody twoHundredApplicationJsonObject; + + public GetServerPreferencesResponse withTwoHundredApplicationJsonObject(GetServerPreferencesResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetServerPreferencesServerResponseBody fourHundredAndOneApplicationJsonObject; + + public GetServerPreferencesResponse withFourHundredAndOneApplicationJsonObject(GetServerPreferencesServerResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetServerPreferencesResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponseBody.java new file mode 100644 index 00000000..244735bf --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerPreferencesResponseBody - Server Preferences + */ + +public class GetServerPreferencesResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetServerPreferencesMediaContainer mediaContainer; + + public GetServerPreferencesResponseBody withMediaContainer(GetServerPreferencesMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetServerPreferencesResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesServerResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesServerResponseBody.java new file mode 100644 index 00000000..a1e79ca6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesServerResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetServerPreferencesServerResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetServerPreferencesServerResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetServerPreferencesErrors[] errors; + + public GetServerPreferencesServerResponseBody withErrors(GetServerPreferencesErrors[] errors) { + this.errors = errors; + return this; + } + + public GetServerPreferencesServerResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryErrors.java new file mode 100644 index 00000000..9163ca6a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionHistoryErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetSessionHistoryErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetSessionHistoryErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetSessionHistoryErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetSessionHistoryErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMediaContainer.java new file mode 100644 index 00000000..f9c1b74d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionHistoryMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetSessionHistoryMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetSessionHistoryMetadata[] metadata; + + public GetSessionHistoryMediaContainer withMetadata(GetSessionHistoryMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetSessionHistoryMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMetadata.java new file mode 100644 index 00000000..f323d33a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMetadata.java @@ -0,0 +1,188 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.time.LocalDate; + + +public class GetSessionHistoryMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("historyKey") + public String historyKey; + + public GetSessionHistoryMetadata withHistoryKey(String historyKey) { + this.historyKey = historyKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetSessionHistoryMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetSessionHistoryMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public String librarySectionID; + + public GetSessionHistoryMetadata withLibrarySectionID(String librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentKey") + public String parentKey; + + public GetSessionHistoryMetadata withParentKey(String parentKey) { + this.parentKey = parentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentKey") + public String grandparentKey; + + public GetSessionHistoryMetadata withGrandparentKey(String grandparentKey) { + this.grandparentKey = grandparentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetSessionHistoryMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentTitle") + public String grandparentTitle; + + public GetSessionHistoryMetadata withGrandparentTitle(String grandparentTitle) { + this.grandparentTitle = grandparentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetSessionHistoryMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetSessionHistoryMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentThumb") + public String parentThumb; + + public GetSessionHistoryMetadata withParentThumb(String parentThumb) { + this.parentThumb = parentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentThumb") + public String grandparentThumb; + + public GetSessionHistoryMetadata withGrandparentThumb(String grandparentThumb) { + this.grandparentThumb = grandparentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentArt") + public String grandparentArt; + + public GetSessionHistoryMetadata withGrandparentArt(String grandparentArt) { + this.grandparentArt = grandparentArt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Integer index; + + public GetSessionHistoryMetadata withIndex(Integer index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentIndex") + public Integer parentIndex; + + public GetSessionHistoryMetadata withParentIndex(Integer parentIndex) { + this.parentIndex = parentIndex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") + @JsonProperty("originallyAvailableAt") + public LocalDate originallyAvailableAt; + + public GetSessionHistoryMetadata withOriginallyAvailableAt(LocalDate originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewedAt") + public Integer viewedAt; + + public GetSessionHistoryMetadata withViewedAt(Integer viewedAt) { + this.viewedAt = viewedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("accountID") + public Integer accountID; + + public GetSessionHistoryMetadata withAccountID(Integer accountID) { + this.accountID = accountID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("deviceID") + public Integer deviceID; + + public GetSessionHistoryMetadata withDeviceID(Integer deviceID) { + this.deviceID = deviceID; + return this; + } + + public GetSessionHistoryMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponse.java new file mode 100644 index 00000000..2090a381 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetSessionHistoryResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetSessionHistoryResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetSessionHistoryResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetSessionHistoryResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * List of Plex Sessions + */ + + public GetSessionHistoryResponseBody twoHundredApplicationJsonObject; + + public GetSessionHistoryResponse withTwoHundredApplicationJsonObject(GetSessionHistoryResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetSessionHistorySessionsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetSessionHistoryResponse withFourHundredAndOneApplicationJsonObject(GetSessionHistorySessionsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetSessionHistoryResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponseBody.java new file mode 100644 index 00000000..3ff2cd91 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetSessionHistoryResponseBody - List of Plex Sessions + */ + +public class GetSessionHistoryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetSessionHistoryMediaContainer mediaContainer; + + public GetSessionHistoryResponseBody withMediaContainer(GetSessionHistoryMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetSessionHistoryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistorySessionsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistorySessionsResponseBody.java new file mode 100644 index 00000000..1b16e98c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistorySessionsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetSessionHistorySessionsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetSessionHistorySessionsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetSessionHistoryErrors[] errors; + + public GetSessionHistorySessionsResponseBody withErrors(GetSessionHistoryErrors[] errors) { + this.errors = errors; + return this; + } + + public GetSessionHistorySessionsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsErrors.java new file mode 100644 index 00000000..1edb623f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetSessionsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetSessionsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetSessionsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetSessionsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMedia.java new file mode 100644 index 00000000..afdf5fc2 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMedia.java @@ -0,0 +1,86 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionsMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Integer audioChannels; + + public GetSessionsMedia withAudioChannels(Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public GetSessionsMedia withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Integer bitrate; + + public GetSessionsMedia withBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetSessionsMedia withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetSessionsMedia withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public GetSessionsMedia withId(String id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("selected") + public Boolean selected; + + public GetSessionsMedia withSelected(Boolean selected) { + this.selected = selected; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public GetSessionsPart[] part; + + public GetSessionsMedia withPart(GetSessionsPart[] part) { + this.part = part; + return this; + } + + public GetSessionsMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMediaContainer.java new file mode 100644 index 00000000..cab83a66 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetSessionsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetSessionsMetadata[] metadata; + + public GetSessionsMediaContainer withMetadata(GetSessionsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public GetSessionsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMetadata.java new file mode 100644 index 00000000..4eff6cf5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMetadata.java @@ -0,0 +1,347 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionsMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public GetSessionsMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public GetSessionsMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetSessionsMetadata withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentArt") + public String grandparentArt; + + public GetSessionsMetadata withGrandparentArt(String grandparentArt) { + this.grandparentArt = grandparentArt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentGuid") + public String grandparentGuid; + + public GetSessionsMetadata withGrandparentGuid(String grandparentGuid) { + this.grandparentGuid = grandparentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentKey") + public String grandparentKey; + + public GetSessionsMetadata withGrandparentKey(String grandparentKey) { + this.grandparentKey = grandparentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentRatingKey") + public String grandparentRatingKey; + + public GetSessionsMetadata withGrandparentRatingKey(String grandparentRatingKey) { + this.grandparentRatingKey = grandparentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentThumb") + public String grandparentThumb; + + public GetSessionsMetadata withGrandparentThumb(String grandparentThumb) { + this.grandparentThumb = grandparentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("grandparentTitle") + public String grandparentTitle; + + public GetSessionsMetadata withGrandparentTitle(String grandparentTitle) { + this.grandparentTitle = grandparentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public GetSessionsMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Integer index; + + public GetSessionsMetadata withIndex(Integer index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetSessionsMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public String librarySectionID; + + public GetSessionsMetadata withLibrarySectionID(String librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionKey") + public String librarySectionKey; + + public GetSessionsMetadata withLibrarySectionKey(String librarySectionKey) { + this.librarySectionKey = librarySectionKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public GetSessionsMetadata withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("musicAnalysisVersion") + public String musicAnalysisVersion; + + public GetSessionsMetadata withMusicAnalysisVersion(String musicAnalysisVersion) { + this.musicAnalysisVersion = musicAnalysisVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentGuid") + public String parentGuid; + + public GetSessionsMetadata withParentGuid(String parentGuid) { + this.parentGuid = parentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentIndex") + public Integer parentIndex; + + public GetSessionsMetadata withParentIndex(Integer parentIndex) { + this.parentIndex = parentIndex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentKey") + public String parentKey; + + public GetSessionsMetadata withParentKey(String parentKey) { + this.parentKey = parentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentRatingKey") + public String parentRatingKey; + + public GetSessionsMetadata withParentRatingKey(String parentRatingKey) { + this.parentRatingKey = parentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentStudio") + public String parentStudio; + + public GetSessionsMetadata withParentStudio(String parentStudio) { + this.parentStudio = parentStudio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentThumb") + public String parentThumb; + + public GetSessionsMetadata withParentThumb(String parentThumb) { + this.parentThumb = parentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTitle") + public String parentTitle; + + public GetSessionsMetadata withParentTitle(String parentTitle) { + this.parentTitle = parentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentYear") + public Integer parentYear; + + public GetSessionsMetadata withParentYear(Integer parentYear) { + this.parentYear = parentYear; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingCount") + public Integer ratingCount; + + public GetSessionsMetadata withRatingCount(Integer ratingCount) { + this.ratingCount = ratingCount; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public GetSessionsMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("sessionKey") + public String sessionKey; + + public GetSessionsMetadata withSessionKey(String sessionKey) { + this.sessionKey = sessionKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public GetSessionsMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public GetSessionsMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("titleSort") + public String titleSort; + + public GetSessionsMetadata withTitleSort(String titleSort) { + this.titleSort = titleSort; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public GetSessionsMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public GetSessionsMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewOffset") + public Integer viewOffset; + + public GetSessionsMetadata withViewOffset(Integer viewOffset) { + this.viewOffset = viewOffset; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public GetSessionsMedia[] media; + + public GetSessionsMetadata withMedia(GetSessionsMedia[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("User") + public User user; + + public GetSessionsMetadata withUser(User user) { + this.user = user; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Player") + public Player player; + + public GetSessionsMetadata withPlayer(Player player) { + this.player = player; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Session") + public Session session; + + public GetSessionsMetadata withSession(Session session) { + this.session = session; + return this; + } + + public GetSessionsMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsPart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsPart.java new file mode 100644 index 00000000..a9f94fa8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsPart.java @@ -0,0 +1,104 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionsPart { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public GetSessionsPart withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public GetSessionsPart withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public GetSessionsPart withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasThumbnail") + public String hasThumbnail; + + public GetSessionsPart withHasThumbnail(String hasThumbnail) { + this.hasThumbnail = hasThumbnail; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public GetSessionsPart withId(String id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public GetSessionsPart withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetSessionsPart withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("decision") + public String decision; + + public GetSessionsPart withDecision(String decision) { + this.decision = decision; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("selected") + public Boolean selected; + + public GetSessionsPart withSelected(Boolean selected) { + this.selected = selected; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Stream") + public GetSessionsStream[] stream; + + public GetSessionsPart withStream(GetSessionsStream[] stream) { + this.stream = stream; + return this; + } + + public GetSessionsPart(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponse.java new file mode 100644 index 00000000..55e82304 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetSessionsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetSessionsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetSessionsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetSessionsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * List of Active Plex Sessions + */ + + public GetSessionsResponseBody twoHundredApplicationJsonObject; + + public GetSessionsResponse withTwoHundredApplicationJsonObject(GetSessionsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetSessionsSessionsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetSessionsResponse withFourHundredAndOneApplicationJsonObject(GetSessionsSessionsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetSessionsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponseBody.java new file mode 100644 index 00000000..2d3112db --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetSessionsResponseBody - List of Active Plex Sessions + */ + +public class GetSessionsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetSessionsMediaContainer mediaContainer; + + public GetSessionsResponseBody withMediaContainer(GetSessionsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetSessionsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsSessionsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsSessionsResponseBody.java new file mode 100644 index 00000000..e70d5571 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsSessionsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetSessionsSessionsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetSessionsSessionsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetSessionsErrors[] errors; + + public GetSessionsSessionsResponseBody withErrors(GetSessionsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetSessionsSessionsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsStream.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsStream.java new file mode 100644 index 00000000..45e58e12 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsStream.java @@ -0,0 +1,194 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSessionsStream { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("albumGain") + public String albumGain; + + public GetSessionsStream withAlbumGain(String albumGain) { + this.albumGain = albumGain; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("albumPeak") + public String albumPeak; + + public GetSessionsStream withAlbumPeak(String albumPeak) { + this.albumPeak = albumPeak; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("albumRange") + public String albumRange; + + public GetSessionsStream withAlbumRange(String albumRange) { + this.albumRange = albumRange; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannelLayout") + public String audioChannelLayout; + + public GetSessionsStream withAudioChannelLayout(String audioChannelLayout) { + this.audioChannelLayout = audioChannelLayout; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitDepth") + public Integer bitDepth; + + public GetSessionsStream withBitDepth(Integer bitDepth) { + this.bitDepth = bitDepth; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Integer bitrate; + + public GetSessionsStream withBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("channels") + public Integer channels; + + public GetSessionsStream withChannels(Integer channels) { + this.channels = channels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("codec") + public String codec; + + public GetSessionsStream withCodec(String codec) { + this.codec = codec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("displayTitle") + public String displayTitle; + + public GetSessionsStream withDisplayTitle(String displayTitle) { + this.displayTitle = displayTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("extendedDisplayTitle") + public String extendedDisplayTitle; + + public GetSessionsStream withExtendedDisplayTitle(String extendedDisplayTitle) { + this.extendedDisplayTitle = extendedDisplayTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("gain") + public String gain; + + public GetSessionsStream withGain(String gain) { + this.gain = gain; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public GetSessionsStream withId(String id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Integer index; + + public GetSessionsStream withIndex(Integer index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("loudness") + public String loudness; + + public GetSessionsStream withLoudness(String loudness) { + this.loudness = loudness; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("lra") + public String lra; + + public GetSessionsStream withLra(String lra) { + this.lra = lra; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("peak") + public String peak; + + public GetSessionsStream withPeak(String peak) { + this.peak = peak; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("samplingRate") + public Integer samplingRate; + + public GetSessionsStream withSamplingRate(Integer samplingRate) { + this.samplingRate = samplingRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("selected") + public Boolean selected; + + public GetSessionsStream withSelected(Boolean selected) { + this.selected = selected; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("streamType") + public Integer streamType; + + public GetSessionsStream withStreamType(Integer streamType) { + this.streamType = streamType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("location") + public String location; + + public GetSessionsStream withLocation(String location) { + this.location = location; + return this; + } + + public GetSessionsStream(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationErrors.java new file mode 100644 index 00000000..593bcc5c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetSourceConnectionInformationErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetSourceConnectionInformationErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetSourceConnectionInformationErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetSourceConnectionInformationErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetSourceConnectionInformationErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationRequest.java new file mode 100644 index 00000000..836d53d3 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetSourceConnectionInformationRequest { + /** + * The source identifier with an included prefix. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=source") + public String source; + + public GetSourceConnectionInformationRequest withSource(String source) { + this.source = source; + return this; + } + + public GetSourceConnectionInformationRequest(@JsonProperty("source") String source) { + this.source = source; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponse.java new file mode 100644 index 00000000..5011847a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetSourceConnectionInformationResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetSourceConnectionInformationResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetSourceConnectionInformationResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetSourceConnectionInformationResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetSourceConnectionInformationResponseBody object; + + public GetSourceConnectionInformationResponse withObject(GetSourceConnectionInformationResponseBody object) { + this.object = object; + return this; + } + + public GetSourceConnectionInformationResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponseBody.java new file mode 100644 index 00000000..34a28695 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetSourceConnectionInformationResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetSourceConnectionInformationResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetSourceConnectionInformationErrors[] errors; + + public GetSourceConnectionInformationResponseBody withErrors(GetSourceConnectionInformationErrors[] errors) { + this.errors = errors; + return this; + } + + public GetSourceConnectionInformationResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsDevice.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsDevice.java new file mode 100644 index 00000000..87d95327 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsDevice.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetStatisticsDevice { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public GetStatisticsDevice withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + public String name; + + public GetStatisticsDevice withName(String name) { + this.name = name; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("platform") + public String platform; + + public GetStatisticsDevice withPlatform(String platform) { + this.platform = platform; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("clientIdentifier") + public String clientIdentifier; + + public GetStatisticsDevice withClientIdentifier(String clientIdentifier) { + this.clientIdentifier = clientIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("createdAt") + public Integer createdAt; + + public GetStatisticsDevice withCreatedAt(Integer createdAt) { + this.createdAt = createdAt; + return this; + } + + public GetStatisticsDevice(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsErrors.java new file mode 100644 index 00000000..99035d5b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetStatisticsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetStatisticsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetStatisticsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetStatisticsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetStatisticsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsMediaContainer.java new file mode 100644 index 00000000..4aa5a280 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsMediaContainer.java @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetStatisticsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetStatisticsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Device") + public GetStatisticsDevice[] device; + + public GetStatisticsMediaContainer withDevice(GetStatisticsDevice[] device) { + this.device = device; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Account") + public Account[] account; + + public GetStatisticsMediaContainer withAccount(Account[] account) { + this.account = account; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("StatisticsMedia") + public StatisticsMedia[] statisticsMedia; + + public GetStatisticsMediaContainer withStatisticsMedia(StatisticsMedia[] statisticsMedia) { + this.statisticsMedia = statisticsMedia; + return this; + } + + public GetStatisticsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsRequest.java new file mode 100644 index 00000000..6fca1238 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsRequest.java @@ -0,0 +1,25 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetStatisticsRequest { + /** + * The timespan to retrieve statistics for + * the exact meaning of this parameter is not known + * + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=Timespan") + public Long timespan; + + public GetStatisticsRequest withTimespan(Long timespan) { + this.timespan = timespan; + return this; + } + + public GetStatisticsRequest(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponse.java new file mode 100644 index 00000000..b5173dc6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetStatisticsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetStatisticsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetStatisticsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetStatisticsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Media Statistics + */ + + public GetStatisticsResponseBody twoHundredApplicationJsonObject; + + public GetStatisticsResponse withTwoHundredApplicationJsonObject(GetStatisticsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetStatisticsStatisticsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetStatisticsResponse withFourHundredAndOneApplicationJsonObject(GetStatisticsStatisticsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetStatisticsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponseBody.java new file mode 100644 index 00000000..d1572d00 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetStatisticsResponseBody - Media Statistics + */ + +public class GetStatisticsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetStatisticsMediaContainer mediaContainer; + + public GetStatisticsResponseBody withMediaContainer(GetStatisticsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetStatisticsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsStatisticsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsStatisticsResponseBody.java new file mode 100644 index 00000000..1481f1c1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsStatisticsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetStatisticsStatisticsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetStatisticsStatisticsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetStatisticsErrors[] errors; + + public GetStatisticsStatisticsResponseBody withErrors(GetStatisticsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetStatisticsStatisticsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineErrors.java new file mode 100644 index 00000000..3b45fa2f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetTimelineErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetTimelineErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetTimelineErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetTimelineErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetTimelineErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineRequest.java new file mode 100644 index 00000000..1ba05e56 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineRequest.java @@ -0,0 +1,134 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetTimelineRequest { + /** + * The rating key of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=ratingKey") + public Double ratingKey; + + public GetTimelineRequest withRatingKey(Double ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + /** + * The key of the media item to get the timeline for + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=key") + public String key; + + public GetTimelineRequest withKey(String key) { + this.key = key; + return this; + } + + /** + * The state of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=state") + public State state; + + public GetTimelineRequest withState(State state) { + this.state = state; + return this; + } + + /** + * Whether the media item has MDE + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=hasMDE") + public Double hasMDE; + + public GetTimelineRequest withHasMDE(Double hasMDE) { + this.hasMDE = hasMDE; + return this; + } + + /** + * The time of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=time") + public Double time; + + public GetTimelineRequest withTime(Double time) { + this.time = time; + return this; + } + + /** + * The duration of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=duration") + public Double duration; + + public GetTimelineRequest withDuration(Double duration) { + this.duration = duration; + return this; + } + + /** + * The context of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=context") + public String context; + + public GetTimelineRequest withContext(String context) { + this.context = context; + return this; + } + + /** + * The play queue item ID of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=playQueueItemID") + public Double playQueueItemID; + + public GetTimelineRequest withPlayQueueItemID(Double playQueueItemID) { + this.playQueueItemID = playQueueItemID; + return this; + } + + /** + * The playback time of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=playBackTime") + public Double playBackTime; + + public GetTimelineRequest withPlayBackTime(Double playBackTime) { + this.playBackTime = playBackTime; + return this; + } + + /** + * The row of the media item + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=row") + public Double row; + + public GetTimelineRequest withRow(Double row) { + this.row = row; + return this; + } + + public GetTimelineRequest(@JsonProperty("ratingKey") Double ratingKey, @JsonProperty("key") String key, @JsonProperty("state") State state, @JsonProperty("hasMDE") Double hasMDE, @JsonProperty("time") Double time, @JsonProperty("duration") Double duration, @JsonProperty("context") String context, @JsonProperty("playQueueItemID") Double playQueueItemID, @JsonProperty("playBackTime") Double playBackTime, @JsonProperty("row") Double row) { + this.ratingKey = ratingKey; + this.key = key; + this.state = state; + this.hasMDE = hasMDE; + this.time = time; + this.duration = duration; + this.context = context; + this.playQueueItemID = playQueueItemID; + this.playBackTime = playBackTime; + this.row = row; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponse.java new file mode 100644 index 00000000..22b38276 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetTimelineResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetTimelineResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetTimelineResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetTimelineResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetTimelineResponseBody object; + + public GetTimelineResponse withObject(GetTimelineResponseBody object) { + this.object = object; + return this; + } + + public GetTimelineResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponseBody.java new file mode 100644 index 00000000..4509cecd --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetTimelineResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetTimelineResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetTimelineErrors[] errors; + + public GetTimelineResponseBody withErrors(GetTimelineErrors[] errors) { + this.errors = errors; + return this; + } + + public GetTimelineResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenErrors.java new file mode 100644 index 00000000..a67fd12c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetTokenErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetTokenErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetTokenErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetTokenErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetTokenErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenRequest.java new file mode 100644 index 00000000..85e9f4ec --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenRequest.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetTokenRequest { + /** + * The PinID to retrieve an access token for + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=pinID") + public String pinID; + + public GetTokenRequest withPinID(String pinID) { + this.pinID = pinID; + return this; + } + + /** + * The unique identifier for the client application + * This is used to track the client application and its usage + * (UUID, serial number, or other number unique per device) + * + */ + @SpeakeasyMetadata("header:style=simple,explode=false,name=X-Plex-Client-Identifier") + public String xPlexClientIdentifier; + + public GetTokenRequest withXPlexClientIdentifier(String xPlexClientIdentifier) { + this.xPlexClientIdentifier = xPlexClientIdentifier; + return this; + } + + public GetTokenRequest(@JsonProperty("pinID") String pinID, @JsonProperty("X-Plex-Client-Identifier") String xPlexClientIdentifier) { + this.pinID = pinID; + this.xPlexClientIdentifier = xPlexClientIdentifier; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponse.java new file mode 100644 index 00000000..1235d160 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetTokenResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetTokenResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetTokenResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetTokenResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * X-Plex-Client-Identifier is missing + */ + + public GetTokenResponseBody object; + + public GetTokenResponse withObject(GetTokenResponseBody object) { + this.object = object; + return this; + } + + public GetTokenResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponseBody.java new file mode 100644 index 00000000..470c813a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetTokenResponseBody - X-Plex-Client-Identifier is missing + */ + +public class GetTokenResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetTokenErrors[] errors; + + public GetTokenResponseBody withErrors(GetTokenErrors[] errors) { + this.errors = errors; + return this; + } + + public GetTokenResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsErrors.java new file mode 100644 index 00000000..7fd9c511 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetTranscodeSessionsErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetTranscodeSessionsErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetTranscodeSessionsErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetTranscodeSessionsErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetTranscodeSessionsErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsMediaContainer.java new file mode 100644 index 00000000..63c81dd3 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsMediaContainer.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetTranscodeSessionsMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetTranscodeSessionsMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("TranscodeSession") + public TranscodeSession[] transcodeSession; + + public GetTranscodeSessionsMediaContainer withTranscodeSession(TranscodeSession[] transcodeSession) { + this.transcodeSession = transcodeSession; + return this; + } + + public GetTranscodeSessionsMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponse.java new file mode 100644 index 00000000..7de28123 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetTranscodeSessionsResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetTranscodeSessionsResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetTranscodeSessionsResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetTranscodeSessionsResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The Transcode Sessions + */ + + public GetTranscodeSessionsResponseBody twoHundredApplicationJsonObject; + + public GetTranscodeSessionsResponse withTwoHundredApplicationJsonObject(GetTranscodeSessionsResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetTranscodeSessionsSessionsResponseBody fourHundredAndOneApplicationJsonObject; + + public GetTranscodeSessionsResponse withFourHundredAndOneApplicationJsonObject(GetTranscodeSessionsSessionsResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetTranscodeSessionsResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponseBody.java new file mode 100644 index 00000000..c7be08a6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetTranscodeSessionsResponseBody - The Transcode Sessions + */ + +public class GetTranscodeSessionsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetTranscodeSessionsMediaContainer mediaContainer; + + public GetTranscodeSessionsResponseBody withMediaContainer(GetTranscodeSessionsMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetTranscodeSessionsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsSessionsResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsSessionsResponseBody.java new file mode 100644 index 00000000..6c3fe5c9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsSessionsResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetTranscodeSessionsSessionsResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetTranscodeSessionsSessionsResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetTranscodeSessionsErrors[] errors; + + public GetTranscodeSessionsSessionsResponseBody withErrors(GetTranscodeSessionsErrors[] errors) { + this.errors = errors; + return this; + } + + public GetTranscodeSessionsSessionsResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenErrors.java new file mode 100644 index 00000000..09aa5b39 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetTransientTokenErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetTransientTokenErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetTransientTokenErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetTransientTokenErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetTransientTokenErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenQueryParamType.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenQueryParamType.java new file mode 100644 index 00000000..ad19a167 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenQueryParamType.java @@ -0,0 +1,21 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * GetTransientTokenQueryParamType - `delegation` - This is the only supported `type` parameter. + */ +public enum GetTransientTokenQueryParamType { + DELEGATION("delegation"); + + @JsonValue + public final String value; + + private GetTransientTokenQueryParamType(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenRequest.java new file mode 100644 index 00000000..0c61ddd0 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenRequest.java @@ -0,0 +1,38 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class GetTransientTokenRequest { + /** + * `delegation` - This is the only supported `type` parameter. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=type") + public GetTransientTokenQueryParamType type; + + public GetTransientTokenRequest withType(GetTransientTokenQueryParamType type) { + this.type = type; + return this; + } + + /** + * `all` - This is the only supported `scope` parameter. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=scope") + public Scope scope; + + public GetTransientTokenRequest withScope(Scope scope) { + this.scope = scope; + return this; + } + + public GetTransientTokenRequest(@JsonProperty("type") GetTransientTokenQueryParamType type, @JsonProperty("scope") Scope scope) { + this.type = type; + this.scope = scope; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponse.java new file mode 100644 index 00000000..848c0203 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetTransientTokenResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetTransientTokenResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetTransientTokenResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetTransientTokenResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetTransientTokenResponseBody object; + + public GetTransientTokenResponse withObject(GetTransientTokenResponseBody object) { + this.object = object; + return this; + } + + public GetTransientTokenResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponseBody.java new file mode 100644 index 00000000..d09706b8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetTransientTokenResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetTransientTokenResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetTransientTokenErrors[] errors; + + public GetTransientTokenResponseBody withErrors(GetTransientTokenErrors[] errors) { + this.errors = errors; + return this; + } + + public GetTransientTokenResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusErrors.java new file mode 100644 index 00000000..3d247216 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetUpdateStatusErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public GetUpdateStatusErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public GetUpdateStatusErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public GetUpdateStatusErrors withStatus(Double status) { + this.status = status; + return this; + } + + public GetUpdateStatusErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusMediaContainer.java new file mode 100644 index 00000000..5779b0a1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusMediaContainer.java @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class GetUpdateStatusMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public GetUpdateStatusMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("canInstall") + public Boolean canInstall; + + public GetUpdateStatusMediaContainer withCanInstall(Boolean canInstall) { + this.canInstall = canInstall; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("checkedAt") + public Integer checkedAt; + + public GetUpdateStatusMediaContainer withCheckedAt(Integer checkedAt) { + this.checkedAt = checkedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("downloadURL") + public String downloadURL; + + public GetUpdateStatusMediaContainer withDownloadURL(String downloadURL) { + this.downloadURL = downloadURL; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Integer status; + + public GetUpdateStatusMediaContainer withStatus(Integer status) { + this.status = status; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Release") + public Release[] release; + + public GetUpdateStatusMediaContainer withRelease(Release[] release) { + this.release = release; + return this; + } + + public GetUpdateStatusMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponse.java new file mode 100644 index 00000000..27325730 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponse.java @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class GetUpdateStatusResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public GetUpdateStatusResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public GetUpdateStatusResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public GetUpdateStatusResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The Server Updates + */ + + public GetUpdateStatusResponseBody twoHundredApplicationJsonObject; + + public GetUpdateStatusResponse withTwoHundredApplicationJsonObject(GetUpdateStatusResponseBody twoHundredApplicationJsonObject) { + this.twoHundredApplicationJsonObject = twoHundredApplicationJsonObject; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public GetUpdateStatusUpdaterResponseBody fourHundredAndOneApplicationJsonObject; + + public GetUpdateStatusResponse withFourHundredAndOneApplicationJsonObject(GetUpdateStatusUpdaterResponseBody fourHundredAndOneApplicationJsonObject) { + this.fourHundredAndOneApplicationJsonObject = fourHundredAndOneApplicationJsonObject; + return this; + } + + public GetUpdateStatusResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponseBody.java new file mode 100644 index 00000000..75c0563f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetUpdateStatusResponseBody - The Server Updates + */ + +public class GetUpdateStatusResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public GetUpdateStatusMediaContainer mediaContainer; + + public GetUpdateStatusResponseBody withMediaContainer(GetUpdateStatusMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public GetUpdateStatusResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusUpdaterResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusUpdaterResponseBody.java new file mode 100644 index 00000000..f0e21d8f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusUpdaterResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * GetUpdateStatusUpdaterResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class GetUpdateStatusUpdaterResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public GetUpdateStatusErrors[] errors; + + public GetUpdateStatusUpdaterResponseBody withErrors(GetUpdateStatusErrors[] errors) { + this.errors = errors; + return this; + } + + public GetUpdateStatusUpdaterResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Guids.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Guids.java new file mode 100644 index 00000000..d4838707 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Guids.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Guids { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public Guids withId(String id) { + this.id = id; + return this; + } + + public Guids(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Hub.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Hub.java new file mode 100644 index 00000000..5ca92f21 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Hub.java @@ -0,0 +1,113 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Hub { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hubKey") + public String hubKey; + + public Hub withHubKey(String hubKey) { + this.hubKey = hubKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Hub withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Hub withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Hub withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hubIdentifier") + public String hubIdentifier; + + public Hub withHubIdentifier(String hubIdentifier) { + this.hubIdentifier = hubIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("context") + public String context; + + public Hub withContext(String context) { + this.context = context; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public Hub withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("more") + public Boolean more; + + public Hub withMore(Boolean more) { + this.more = more; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("style") + public String style; + + public Hub withStyle(String style) { + this.style = style; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("promoted") + public Boolean promoted; + + public Hub withPromoted(Boolean promoted) { + this.promoted = promoted; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public GetGlobalHubsMetadata[] metadata; + + public Hub withMetadata(GetGlobalHubsMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public Hub(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeDetails.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeDetails.java new file mode 100644 index 00000000..2fa4bb69 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeDetails.java @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * IncludeDetails - Whether or not to include details for a section (types, filters, and sorts). + * Only exists for backwards compatibility, media providers other than the server libraries have it on always. + * + */ +public enum IncludeDetails { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private IncludeDetails(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Level.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Level.java new file mode 100644 index 00000000..610596f1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Level.java @@ -0,0 +1,31 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Level - An integer log level to write to the PMS log with. + * 0: Error + * 1: Warning + * 2: Info + * 3: Debug + * 4: Verbose + * + */ +public enum Level { + ZERO(0L), + ONE(1L), + TWO(2L), + THREE(3L), + FOUR(4L); + + @JsonValue + public final Long value; + + private Level(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Location.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Location.java new file mode 100644 index 00000000..36b0cccc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Location.java @@ -0,0 +1,104 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Location { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public String code; + + public Location withCode(String code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("european_union_member") + public Boolean europeanUnionMember; + + public Location withEuropeanUnionMember(Boolean europeanUnionMember) { + this.europeanUnionMember = europeanUnionMember; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("continent_code") + public String continentCode; + + public Location withContinentCode(String continentCode) { + this.continentCode = continentCode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("country") + public String country; + + public Location withCountry(String country) { + this.country = country; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("city") + public String city; + + public Location withCity(String city) { + this.city = city; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("time_zone") + public String timeZone; + + public Location withTimeZone(String timeZone) { + this.timeZone = timeZone; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("postal_code") + public Double postalCode; + + public Location withPostalCode(Double postalCode) { + this.postalCode = postalCode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("in_privacy_restricted_country") + public Boolean inPrivacyRestrictedCountry; + + public Location withInPrivacyRestrictedCountry(Boolean inPrivacyRestrictedCountry) { + this.inPrivacyRestrictedCountry = inPrivacyRestrictedCountry; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subdivisions") + public String subdivisions; + + public Location withSubdivisions(String subdivisions) { + this.subdivisions = subdivisions; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("coordinates") + public String coordinates; + + public Location withCoordinates(String coordinates) { + this.coordinates = coordinates; + return this; + } + + public Location(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineErrors.java new file mode 100644 index 00000000..1db95e58 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class LogLineErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public LogLineErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public LogLineErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public LogLineErrors withStatus(Double status) { + this.status = status; + return this; + } + + public LogLineErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineRequest.java new file mode 100644 index 00000000..75eec3d4 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineRequest.java @@ -0,0 +1,56 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class LogLineRequest { + /** + * An integer log level to write to the PMS log with. + * 0: Error + * 1: Warning + * 2: Info + * 3: Debug + * 4: Verbose + * + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=level") + public Level level; + + public LogLineRequest withLevel(Level level) { + this.level = level; + return this; + } + + /** + * The text of the message to write to the log. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=message") + public String message; + + public LogLineRequest withMessage(String message) { + this.message = message; + return this; + } + + /** + * a string indicating the source of the message. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=source") + public String source; + + public LogLineRequest withSource(String source) { + this.source = source; + return this; + } + + public LogLineRequest(@JsonProperty("level") Level level, @JsonProperty("message") String message, @JsonProperty("source") String source) { + this.level = level; + this.message = message; + this.source = source; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponse.java new file mode 100644 index 00000000..5fc25ad3 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class LogLineResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public LogLineResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public LogLineResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public LogLineResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public LogLineResponseBody object; + + public LogLineResponse withObject(LogLineResponseBody object) { + this.object = object; + return this; + } + + public LogLineResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponseBody.java new file mode 100644 index 00000000..773860bf --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * LogLineResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class LogLineResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public LogLineErrors[] errors; + + public LogLineResponseBody withErrors(LogLineErrors[] errors) { + this.errors = errors; + return this; + } + + public LogLineResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineErrors.java new file mode 100644 index 00000000..45d3a279 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class LogMultiLineErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public LogMultiLineErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public LogMultiLineErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public LogMultiLineErrors withStatus(Double status) { + this.status = status; + return this; + } + + public LogMultiLineErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponse.java new file mode 100644 index 00000000..9f7bcf64 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class LogMultiLineResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public LogMultiLineResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public LogMultiLineResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public LogMultiLineResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public LogMultiLineResponseBody object; + + public LogMultiLineResponse withObject(LogMultiLineResponseBody object) { + this.object = object; + return this; + } + + public LogMultiLineResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponseBody.java new file mode 100644 index 00000000..dd8e0fba --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * LogMultiLineResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class LogMultiLineResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public LogMultiLineErrors[] errors; + + public LogMultiLineResponseBody withErrors(LogMultiLineErrors[] errors) { + this.errors = errors; + return this; + } + + public LogMultiLineResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedErrors.java new file mode 100644 index 00000000..bd372c80 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class MarkPlayedErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public MarkPlayedErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public MarkPlayedErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public MarkPlayedErrors withStatus(Double status) { + this.status = status; + return this; + } + + public MarkPlayedErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedRequest.java new file mode 100644 index 00000000..76f4808b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class MarkPlayedRequest { + /** + * The media key to mark as played + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=key") + public Double key; + + public MarkPlayedRequest withKey(Double key) { + this.key = key; + return this; + } + + public MarkPlayedRequest(@JsonProperty("key") Double key) { + this.key = key; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponse.java new file mode 100644 index 00000000..2bdea3a9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class MarkPlayedResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public MarkPlayedResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public MarkPlayedResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public MarkPlayedResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public MarkPlayedResponseBody object; + + public MarkPlayedResponse withObject(MarkPlayedResponseBody object) { + this.object = object; + return this; + } + + public MarkPlayedResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponseBody.java new file mode 100644 index 00000000..784d6a3f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * MarkPlayedResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class MarkPlayedResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public MarkPlayedErrors[] errors; + + public MarkPlayedResponseBody withErrors(MarkPlayedErrors[] errors) { + this.errors = errors; + return this; + } + + public MarkPlayedResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedErrors.java new file mode 100644 index 00000000..bb42c251 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class MarkUnplayedErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public MarkUnplayedErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public MarkUnplayedErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public MarkUnplayedErrors withStatus(Double status) { + this.status = status; + return this; + } + + public MarkUnplayedErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedRequest.java new file mode 100644 index 00000000..33f287aa --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class MarkUnplayedRequest { + /** + * The media key to mark as Unplayed + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=key") + public Double key; + + public MarkUnplayedRequest withKey(Double key) { + this.key = key; + return this; + } + + public MarkUnplayedRequest(@JsonProperty("key") Double key) { + this.key = key; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponse.java new file mode 100644 index 00000000..8babce28 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class MarkUnplayedResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public MarkUnplayedResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public MarkUnplayedResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public MarkUnplayedResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public MarkUnplayedResponseBody object; + + public MarkUnplayedResponse withObject(MarkUnplayedResponseBody object) { + this.object = object; + return this; + } + + public MarkUnplayedResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponseBody.java new file mode 100644 index 00000000..8409d252 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * MarkUnplayedResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class MarkUnplayedResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public MarkUnplayedErrors[] errors; + + public MarkUnplayedResponseBody withErrors(MarkUnplayedErrors[] errors) { + this.errors = errors; + return this; + } + + public MarkUnplayedResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Media.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Media.java new file mode 100644 index 00000000..c4b8f87b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Media.java @@ -0,0 +1,158 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Media { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public Media withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public Media withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Double bitrate; + + public Media withBitrate(Double bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Double width; + + public Media withWidth(Double width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Double height; + + public Media withHeight(Double height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("aspectRatio") + public Double aspectRatio; + + public Media withAspectRatio(Double aspectRatio) { + this.aspectRatio = aspectRatio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Double audioChannels; + + public Media withAudioChannels(Double audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public Media withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public Media withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoResolution") + public Double videoResolution; + + public Media withVideoResolution(Double videoResolution) { + this.videoResolution = videoResolution; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public Media withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoFrameRate") + public String videoFrameRate; + + public Media withVideoFrameRate(String videoFrameRate) { + this.videoFrameRate = videoFrameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Double optimizedForStreaming; + + public Media withOptimizedForStreaming(Double optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public Media withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public Media withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Part") + public Part[] part; + + public Media withPart(Part[] part) { + this.part = part; + return this; + } + + public Media(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MediaContainer.java new file mode 100644 index 00000000..43261995 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MediaContainer.java @@ -0,0 +1,473 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class MediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public MediaContainer withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowCameraUpload") + public Boolean allowCameraUpload; + + public MediaContainer withAllowCameraUpload(Boolean allowCameraUpload) { + this.allowCameraUpload = allowCameraUpload; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowChannelAccess") + public Boolean allowChannelAccess; + + public MediaContainer withAllowChannelAccess(Boolean allowChannelAccess) { + this.allowChannelAccess = allowChannelAccess; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowMediaDeletion") + public Boolean allowMediaDeletion; + + public MediaContainer withAllowMediaDeletion(Boolean allowMediaDeletion) { + this.allowMediaDeletion = allowMediaDeletion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSharing") + public Boolean allowSharing; + + public MediaContainer withAllowSharing(Boolean allowSharing) { + this.allowSharing = allowSharing; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public MediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowTuners") + public Boolean allowTuners; + + public MediaContainer withAllowTuners(Boolean allowTuners) { + this.allowTuners = allowTuners; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("backgroundProcessing") + public Boolean backgroundProcessing; + + public MediaContainer withBackgroundProcessing(Boolean backgroundProcessing) { + this.backgroundProcessing = backgroundProcessing; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("certificate") + public Boolean certificate; + + public MediaContainer withCertificate(Boolean certificate) { + this.certificate = certificate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("companionProxy") + public Boolean companionProxy; + + public MediaContainer withCompanionProxy(Boolean companionProxy) { + this.companionProxy = companionProxy; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("countryCode") + public String countryCode; + + public MediaContainer withCountryCode(String countryCode) { + this.countryCode = countryCode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("diagnostics") + public String diagnostics; + + public MediaContainer withDiagnostics(String diagnostics) { + this.diagnostics = diagnostics; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("eventStream") + public Boolean eventStream; + + public MediaContainer withEventStream(Boolean eventStream) { + this.eventStream = eventStream; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("friendlyName") + public String friendlyName; + + public MediaContainer withFriendlyName(String friendlyName) { + this.friendlyName = friendlyName; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hubSearch") + public Boolean hubSearch; + + public MediaContainer withHubSearch(Boolean hubSearch) { + this.hubSearch = hubSearch; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("itemClusters") + public Boolean itemClusters; + + public MediaContainer withItemClusters(Boolean itemClusters) { + this.itemClusters = itemClusters; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("livetv") + public Double livetv; + + public MediaContainer withLivetv(Double livetv) { + this.livetv = livetv; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("machineIdentifier") + public String machineIdentifier; + + public MediaContainer withMachineIdentifier(String machineIdentifier) { + this.machineIdentifier = machineIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaProviders") + public Boolean mediaProviders; + + public MediaContainer withMediaProviders(Boolean mediaProviders) { + this.mediaProviders = mediaProviders; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("multiuser") + public Boolean multiuser; + + public MediaContainer withMultiuser(Boolean multiuser) { + this.multiuser = multiuser; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("musicAnalysis") + public Double musicAnalysis; + + public MediaContainer withMusicAnalysis(Double musicAnalysis) { + this.musicAnalysis = musicAnalysis; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("myPlex") + public Boolean myPlex; + + public MediaContainer withMyPlex(Boolean myPlex) { + this.myPlex = myPlex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("myPlexMappingState") + public String myPlexMappingState; + + public MediaContainer withMyPlexMappingState(String myPlexMappingState) { + this.myPlexMappingState = myPlexMappingState; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("myPlexSigninState") + public String myPlexSigninState; + + public MediaContainer withMyPlexSigninState(String myPlexSigninState) { + this.myPlexSigninState = myPlexSigninState; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("myPlexSubscription") + public Boolean myPlexSubscription; + + public MediaContainer withMyPlexSubscription(Boolean myPlexSubscription) { + this.myPlexSubscription = myPlexSubscription; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("myPlexUsername") + public String myPlexUsername; + + public MediaContainer withMyPlexUsername(String myPlexUsername) { + this.myPlexUsername = myPlexUsername; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("offlineTranscode") + public Double offlineTranscode; + + public MediaContainer withOfflineTranscode(Double offlineTranscode) { + this.offlineTranscode = offlineTranscode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ownerFeatures") + public String ownerFeatures; + + public MediaContainer withOwnerFeatures(String ownerFeatures) { + this.ownerFeatures = ownerFeatures; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("photoAutoTag") + public Boolean photoAutoTag; + + public MediaContainer withPhotoAutoTag(Boolean photoAutoTag) { + this.photoAutoTag = photoAutoTag; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("platform") + public String platform; + + public MediaContainer withPlatform(String platform) { + this.platform = platform; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("platformVersion") + public String platformVersion; + + public MediaContainer withPlatformVersion(String platformVersion) { + this.platformVersion = platformVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("pluginHost") + public Boolean pluginHost; + + public MediaContainer withPluginHost(Boolean pluginHost) { + this.pluginHost = pluginHost; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("pushNotifications") + public Boolean pushNotifications; + + public MediaContainer withPushNotifications(Boolean pushNotifications) { + this.pushNotifications = pushNotifications; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("readOnlyLibraries") + public Boolean readOnlyLibraries; + + public MediaContainer withReadOnlyLibraries(Boolean readOnlyLibraries) { + this.readOnlyLibraries = readOnlyLibraries; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("streamingBrainABRVersion") + public Double streamingBrainABRVersion; + + public MediaContainer withStreamingBrainABRVersion(Double streamingBrainABRVersion) { + this.streamingBrainABRVersion = streamingBrainABRVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("streamingBrainVersion") + public Double streamingBrainVersion; + + public MediaContainer withStreamingBrainVersion(Double streamingBrainVersion) { + this.streamingBrainVersion = streamingBrainVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("sync") + public Boolean sync; + + public MediaContainer withSync(Boolean sync) { + this.sync = sync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderActiveVideoSessions") + public Double transcoderActiveVideoSessions; + + public MediaContainer withTranscoderActiveVideoSessions(Double transcoderActiveVideoSessions) { + this.transcoderActiveVideoSessions = transcoderActiveVideoSessions; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderAudio") + public Boolean transcoderAudio; + + public MediaContainer withTranscoderAudio(Boolean transcoderAudio) { + this.transcoderAudio = transcoderAudio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderLyrics") + public Boolean transcoderLyrics; + + public MediaContainer withTranscoderLyrics(Boolean transcoderLyrics) { + this.transcoderLyrics = transcoderLyrics; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderPhoto") + public Boolean transcoderPhoto; + + public MediaContainer withTranscoderPhoto(Boolean transcoderPhoto) { + this.transcoderPhoto = transcoderPhoto; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderSubtitles") + public Boolean transcoderSubtitles; + + public MediaContainer withTranscoderSubtitles(Boolean transcoderSubtitles) { + this.transcoderSubtitles = transcoderSubtitles; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderVideo") + public Boolean transcoderVideo; + + public MediaContainer withTranscoderVideo(Boolean transcoderVideo) { + this.transcoderVideo = transcoderVideo; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderVideoBitrates") + public String transcoderVideoBitrates; + + public MediaContainer withTranscoderVideoBitrates(String transcoderVideoBitrates) { + this.transcoderVideoBitrates = transcoderVideoBitrates; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderVideoQualities") + public String transcoderVideoQualities; + + public MediaContainer withTranscoderVideoQualities(String transcoderVideoQualities) { + this.transcoderVideoQualities = transcoderVideoQualities; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcoderVideoResolutions") + public String transcoderVideoResolutions; + + public MediaContainer withTranscoderVideoResolutions(String transcoderVideoResolutions) { + this.transcoderVideoResolutions = transcoderVideoResolutions; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Double updatedAt; + + public MediaContainer withUpdatedAt(Double updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updater") + public Boolean updater; + + public MediaContainer withUpdater(Boolean updater) { + this.updater = updater; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("version") + public String version; + + public MediaContainer withVersion(String version) { + this.version = version; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("voiceSearch") + public Boolean voiceSearch; + + public MediaContainer withVoiceSearch(Boolean voiceSearch) { + this.voiceSearch = voiceSearch; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Directory") + public Directory[] directory; + + public MediaContainer withDirectory(Directory[] directory) { + this.directory = directory; + return this; + } + + public MediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Metadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Metadata.java new file mode 100644 index 00000000..a65f4a5e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Metadata.java @@ -0,0 +1,309 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import java.time.OffsetDateTime; +import lukehagar.plexapi.plexapi.utils.DateTimeDeserializer; +import lukehagar.plexapi.plexapi.utils.DateTimeSerializer; + + +public class Metadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public Metadata withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionID") + public Double librarySectionID; + + public Metadata withLibrarySectionID(Double librarySectionID) { + this.librarySectionID = librarySectionID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionTitle") + public String librarySectionTitle; + + public Metadata withLibrarySectionTitle(String librarySectionTitle) { + this.librarySectionTitle = librarySectionTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("librarySectionUUID") + public String librarySectionUUID; + + public Metadata withLibrarySectionUUID(String librarySectionUUID) { + this.librarySectionUUID = librarySectionUUID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public Double ratingKey; + + public Metadata withRatingKey(Double ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Metadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public Metadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("studio") + public String studio; + + public Metadata withStudio(String studio) { + this.studio = studio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Metadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Metadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("contentRating") + public String contentRating; + + public Metadata withContentRating(String contentRating) { + this.contentRating = contentRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public Metadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("rating") + public Double rating; + + public Metadata withRating(Double rating) { + this.rating = rating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRating") + public Double audienceRating; + + public Metadata withAudienceRating(Double audienceRating) { + this.audienceRating = audienceRating; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("year") + public Double year; + + public Metadata withYear(Double year) { + this.year = year; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagline") + public String tagline; + + public Metadata withTagline(String tagline) { + this.tagline = tagline; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public Metadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public Metadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public Metadata withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonSerialize(using = DateTimeSerializer.class) + @JsonDeserialize(using = DateTimeDeserializer.class) + @JsonProperty("originallyAvailableAt") + public OffsetDateTime originallyAvailableAt; + + public Metadata withOriginallyAvailableAt(OffsetDateTime originallyAvailableAt) { + this.originallyAvailableAt = originallyAvailableAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Double addedAt; + + public Metadata withAddedAt(Double addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Double updatedAt; + + public Metadata withUpdatedAt(Double updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audienceRatingImage") + public String audienceRatingImage; + + public Metadata withAudienceRatingImage(String audienceRatingImage) { + this.audienceRatingImage = audienceRatingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chapterSource") + public String chapterSource; + + public Metadata withChapterSource(String chapterSource) { + this.chapterSource = chapterSource; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("primaryExtraKey") + public String primaryExtraKey; + + public Metadata withPrimaryExtraKey(String primaryExtraKey) { + this.primaryExtraKey = primaryExtraKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingImage") + public String ratingImage; + + public Metadata withRatingImage(String ratingImage) { + this.ratingImage = ratingImage; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + public Media[] media; + + public Metadata withMedia(Media[] media) { + this.media = media; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Genre") + public Genre[] genre; + + public Metadata withGenre(Genre[] genre) { + this.genre = genre; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Director") + public Director[] director; + + public Metadata withDirector(Director[] director) { + this.director = director; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Writer") + public Writer[] writer; + + public Metadata withWriter(Writer[] writer) { + this.writer = writer; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Country") + public Country[] country; + + public Metadata withCountry(Country[] country) { + this.country = country; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Role") + public Role[] role; + + public Metadata withRole(Role[] role) { + this.role = role; + return this; + } + + public Metadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MinSize.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MinSize.java new file mode 100644 index 00000000..8231dd37 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MinSize.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * MinSize - images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against. + */ +public enum MinSize { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private MinSize(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MyPlex.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MyPlex.java new file mode 100644 index 00000000..d8765ea5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/MyPlex.java @@ -0,0 +1,122 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class MyPlex { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("authToken") + public String authToken; + + public MyPlex withAuthToken(String authToken) { + this.authToken = authToken; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("username") + public String username; + + public MyPlex withUsername(String username) { + this.username = username; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mappingState") + public String mappingState; + + public MyPlex withMappingState(String mappingState) { + this.mappingState = mappingState; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mappingError") + public String mappingError; + + public MyPlex withMappingError(String mappingError) { + this.mappingError = mappingError; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("signInState") + public String signInState; + + public MyPlex withSignInState(String signInState) { + this.signInState = signInState; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("publicAddress") + public String publicAddress; + + public MyPlex withPublicAddress(String publicAddress) { + this.publicAddress = publicAddress; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("publicPort") + public Double publicPort; + + public MyPlex withPublicPort(Double publicPort) { + this.publicPort = publicPort; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("privateAddress") + public String privateAddress; + + public MyPlex withPrivateAddress(String privateAddress) { + this.privateAddress = privateAddress; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("privatePort") + public Double privatePort; + + public MyPlex withPrivatePort(Double privatePort) { + this.privatePort = privatePort; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subscriptionFeatures") + public String subscriptionFeatures; + + public MyPlex withSubscriptionFeatures(String subscriptionFeatures) { + this.subscriptionFeatures = subscriptionFeatures; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subscriptionActive") + public Boolean subscriptionActive; + + public MyPlex withSubscriptionActive(Boolean subscriptionActive) { + this.subscriptionActive = subscriptionActive; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subscriptionState") + public String subscriptionState; + + public MyPlex withSubscriptionState(String subscriptionState) { + this.subscriptionState = subscriptionState; + return this; + } + + public MyPlex(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/OnlyTransient.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/OnlyTransient.java new file mode 100644 index 00000000..b299e003 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/OnlyTransient.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * OnlyTransient - Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + */ +public enum OnlyTransient { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private OnlyTransient(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Operator.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Operator.java new file mode 100644 index 00000000..18042856 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Operator.java @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Operator { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Operator withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Operator withTitle(String title) { + this.title = title; + return this; + } + + public Operator(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Part.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Part.java new file mode 100644 index 00000000..a33c3161 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Part.java @@ -0,0 +1,104 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Part { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Double id; + + public Part withId(Double id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Part withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Double duration; + + public Part withDuration(Double duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("file") + public String file; + + public Part withFile(String file) { + this.file = file; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Double size; + + public Part withSize(Double size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public Part withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("has64bitOffsets") + public Boolean has64bitOffsets; + + public Part withHas64bitOffsets(Boolean has64bitOffsets) { + this.has64bitOffsets = has64bitOffsets; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasThumbnail") + public Double hasThumbnail; + + public Part withHasThumbnail(Double hasThumbnail) { + this.hasThumbnail = hasThumbnail; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("optimizedForStreaming") + public Boolean optimizedForStreaming; + + public Part withOptimizedForStreaming(Boolean optimizedForStreaming) { + this.optimizedForStreaming = optimizedForStreaming; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoProfile") + public String videoProfile; + + public Part withVideoProfile(String videoProfile) { + this.videoProfile = videoProfile; + return this; + } + + public Part(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PathParamTaskName.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PathParamTaskName.java new file mode 100644 index 00000000..b8026787 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PathParamTaskName.java @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * PathParamTaskName - The name of the task to be started. + */ +public enum PathParamTaskName { + BACKUP_DATABASE("BackupDatabase"), + BUILD_GRACENOTE_COLLECTIONS("BuildGracenoteCollections"), + CHECK_FOR_UPDATES("CheckForUpdates"), + CLEAN_OLD_BUNDLES("CleanOldBundles"), + CLEAN_OLD_CACHE_FILES("CleanOldCacheFiles"), + DEEP_MEDIA_ANALYSIS("DeepMediaAnalysis"), + GENERATE_AUTO_TAGS("GenerateAutoTags"), + GENERATE_CHAPTER_THUMBS("GenerateChapterThumbs"), + GENERATE_MEDIA_INDEX_FILES("GenerateMediaIndexFiles"), + OPTIMIZE_DATABASE("OptimizeDatabase"), + REFRESH_LIBRARIES("RefreshLibraries"), + REFRESH_LOCAL_MEDIA("RefreshLocalMedia"), + REFRESH_PERIODIC_METADATA("RefreshPeriodicMetadata"), + UPGRADE_MEDIA_ANALYSIS("UpgradeMediaAnalysis"); + + @JsonValue + public final String value; + + private PathParamTaskName(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchErrors.java new file mode 100644 index 00000000..cd0ddc5c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class PerformSearchErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public PerformSearchErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public PerformSearchErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public PerformSearchErrors withStatus(Double status) { + this.status = status; + return this; + } + + public PerformSearchErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchRequest.java new file mode 100644 index 00000000..42bba02a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchRequest.java @@ -0,0 +1,48 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class PerformSearchRequest { + /** + * The query term + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=query") + public String query; + + public PerformSearchRequest withQuery(String query) { + this.query = query; + return this; + } + + /** + * This gives context to the search, and can result in re-ordering of search result hubs + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=sectionId") + public Double sectionId; + + public PerformSearchRequest withSectionId(Double sectionId) { + this.sectionId = sectionId; + return this; + } + + /** + * The number of items to return per hub + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=limit") + public Double limit; + + public PerformSearchRequest withLimit(Double limit) { + this.limit = limit; + return this; + } + + public PerformSearchRequest(@JsonProperty("query") String query) { + this.query = query; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponse.java new file mode 100644 index 00000000..2b3b4e74 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class PerformSearchResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public PerformSearchResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public PerformSearchResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public PerformSearchResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public PerformSearchResponseBody object; + + public PerformSearchResponse withObject(PerformSearchResponseBody object) { + this.object = object; + return this; + } + + public PerformSearchResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponseBody.java new file mode 100644 index 00000000..6e9e0f27 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * PerformSearchResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class PerformSearchResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public PerformSearchErrors[] errors; + + public PerformSearchResponseBody withErrors(PerformSearchErrors[] errors) { + this.errors = errors; + return this; + } + + public PerformSearchResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchErrors.java new file mode 100644 index 00000000..c023b999 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class PerformVoiceSearchErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public PerformVoiceSearchErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public PerformVoiceSearchErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public PerformVoiceSearchErrors withStatus(Double status) { + this.status = status; + return this; + } + + public PerformVoiceSearchErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchRequest.java new file mode 100644 index 00000000..8ab5646a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchRequest.java @@ -0,0 +1,48 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class PerformVoiceSearchRequest { + /** + * The query term + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=query") + public String query; + + public PerformVoiceSearchRequest withQuery(String query) { + this.query = query; + return this; + } + + /** + * This gives context to the search, and can result in re-ordering of search result hubs + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=sectionId") + public Double sectionId; + + public PerformVoiceSearchRequest withSectionId(Double sectionId) { + this.sectionId = sectionId; + return this; + } + + /** + * The number of items to return per hub + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=limit") + public Double limit; + + public PerformVoiceSearchRequest withLimit(Double limit) { + this.limit = limit; + return this; + } + + public PerformVoiceSearchRequest(@JsonProperty("query") String query) { + this.query = query; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponse.java new file mode 100644 index 00000000..9cf4408d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class PerformVoiceSearchResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public PerformVoiceSearchResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public PerformVoiceSearchResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public PerformVoiceSearchResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public PerformVoiceSearchResponseBody object; + + public PerformVoiceSearchResponse withObject(PerformVoiceSearchResponseBody object) { + this.object = object; + return this; + } + + public PerformVoiceSearchResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponseBody.java new file mode 100644 index 00000000..1e84b108 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * PerformVoiceSearchResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class PerformVoiceSearchResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public PerformVoiceSearchErrors[] errors; + + public PerformVoiceSearchResponseBody withErrors(PerformVoiceSearchErrors[] errors) { + this.errors = errors; + return this; + } + + public PerformVoiceSearchResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Player.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Player.java new file mode 100644 index 00000000..aa4e6465 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Player.java @@ -0,0 +1,149 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Player { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("address") + public String address; + + public Player withAddress(String address) { + this.address = address; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("machineIdentifier") + public String machineIdentifier; + + public Player withMachineIdentifier(String machineIdentifier) { + this.machineIdentifier = machineIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("model") + public String model; + + public Player withModel(String model) { + this.model = model; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("platform") + public String platform; + + public Player withPlatform(String platform) { + this.platform = platform; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("platformVersion") + public String platformVersion; + + public Player withPlatformVersion(String platformVersion) { + this.platformVersion = platformVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("product") + public String product; + + public Player withProduct(String product) { + this.product = product; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("profile") + public String profile; + + public Player withProfile(String profile) { + this.profile = profile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("remotePublicAddress") + public String remotePublicAddress; + + public Player withRemotePublicAddress(String remotePublicAddress) { + this.remotePublicAddress = remotePublicAddress; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("state") + public String state; + + public Player withState(String state) { + this.state = state; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Player withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("version") + public String version; + + public Player withVersion(String version) { + this.version = version; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("local") + public Boolean local; + + public Player withLocal(Boolean local) { + this.local = local; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("relayed") + public Boolean relayed; + + public Player withRelayed(Boolean relayed) { + this.relayed = relayed; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("secure") + public Boolean secure; + + public Player withSecure(Boolean secure) { + this.secure = secure; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("userID") + public Integer userID; + + public Player withUserID(Integer userID) { + this.userID = userID; + return this; + } + + public Player(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PlaylistType.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PlaylistType.java new file mode 100644 index 00000000..7d3dca58 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/PlaylistType.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * PlaylistType - limit to a type of playlist. + */ +public enum PlaylistType { + AUDIO("audio"), + VIDEO("video"), + PHOTO("photo"); + + @JsonValue + public final String value; + + private PlaylistType(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Producer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Producer.java new file mode 100644 index 00000000..3965a1cb --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Producer.java @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Producer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public Producer withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("filter") + public String filter; + + public Producer withFilter(String filter) { + this.filter = filter; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public Producer withTag(String tag) { + this.tag = tag; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tagKey") + public String tagKey; + + public Producer withTagKey(String tagKey) { + this.tagKey = tagKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public Producer withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + public Producer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Provider.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Provider.java new file mode 100644 index 00000000..e1cd1200 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Provider.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Provider { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Provider withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Provider withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Provider withType(String type) { + this.type = type; + return this; + } + + public Provider(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamOnlyTransient.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamOnlyTransient.java new file mode 100644 index 00000000..f8a99252 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamOnlyTransient.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * QueryParamOnlyTransient - Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). + */ +public enum QueryParamOnlyTransient { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private QueryParamOnlyTransient(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamSmart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamSmart.java new file mode 100644 index 00000000..67cb6103 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamSmart.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * QueryParamSmart - type of playlists to return (default is all). + */ +public enum QueryParamSmart { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private QueryParamSmart(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamType.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamType.java new file mode 100644 index 00000000..0af2ffd5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamType.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * QueryParamType - type of playlist to create + */ +public enum QueryParamType { + AUDIO("audio"), + VIDEO("video"), + PHOTO("photo"); + + @JsonValue + public final String value; + + private QueryParamType(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Ratings.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Ratings.java new file mode 100644 index 00000000..1f0d3dc0 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Ratings.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Ratings { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("image") + public String image; + + public Ratings withImage(String image) { + this.image = image; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("value") + public Double value; + + public Ratings withValue(Double value) { + this.value = value; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Ratings withType(String type) { + this.type = type; + return this; + } + + public Ratings(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryErrors.java new file mode 100644 index 00000000..1cc53307 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class RefreshLibraryErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public RefreshLibraryErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public RefreshLibraryErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public RefreshLibraryErrors withStatus(Double status) { + this.status = status; + return this; + } + + public RefreshLibraryErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryRequest.java new file mode 100644 index 00000000..e6485361 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class RefreshLibraryRequest { + /** + * the Id of the library to refresh + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId") + public Double sectionId; + + public RefreshLibraryRequest withSectionId(Double sectionId) { + this.sectionId = sectionId; + return this; + } + + public RefreshLibraryRequest(@JsonProperty("sectionId") Double sectionId) { + this.sectionId = sectionId; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponse.java new file mode 100644 index 00000000..65fc86b6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class RefreshLibraryResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public RefreshLibraryResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public RefreshLibraryResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public RefreshLibraryResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public RefreshLibraryResponseBody object; + + public RefreshLibraryResponse withObject(RefreshLibraryResponseBody object) { + this.object = object; + return this; + } + + public RefreshLibraryResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponseBody.java new file mode 100644 index 00000000..57ab9bee --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * RefreshLibraryResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class RefreshLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public RefreshLibraryErrors[] errors; + + public RefreshLibraryResponseBody withErrors(RefreshLibraryErrors[] errors) { + this.errors = errors; + return this; + } + + public RefreshLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Release.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Release.java new file mode 100644 index 00000000..bc5c7bb1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Release.java @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Release { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Release withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("version") + public String version; + + public Release withVersion(String version) { + this.version = version; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("added") + public String added; + + public Release withAdded(String added) { + this.added = added; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("fixed") + public String fixed; + + public Release withFixed(String fixed) { + this.fixed = fixed; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("downloadURL") + public String downloadURL; + + public Release withDownloadURL(String downloadURL) { + this.downloadURL = downloadURL; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("state") + public String state; + + public Release withState(String state) { + this.state = state; + return this; + } + + public Release(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Role.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Role.java new file mode 100644 index 00000000..f69cbf80 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Role.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Role { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public Role withTag(String tag) { + this.tag = tag; + return this; + } + + public Role(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Scope.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Scope.java new file mode 100644 index 00000000..e77fc694 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Scope.java @@ -0,0 +1,21 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Scope - `all` - This is the only supported `scope` parameter. + */ +public enum Scope { + ALL("all"); + + @JsonValue + public final String value; + + private Scope(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMediaContainer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMediaContainer.java new file mode 100644 index 00000000..4fbbd4f7 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMediaContainer.java @@ -0,0 +1,131 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class SearchLibraryMediaContainer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public SearchLibraryMediaContainer withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("allowSync") + public Boolean allowSync; + + public SearchLibraryMediaContainer withAllowSync(Boolean allowSync) { + this.allowSync = allowSync; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public SearchLibraryMediaContainer withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("identifier") + public String identifier; + + public SearchLibraryMediaContainer withIdentifier(String identifier) { + this.identifier = identifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagPrefix") + public String mediaTagPrefix; + + public SearchLibraryMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("mediaTagVersion") + public Integer mediaTagVersion; + + public SearchLibraryMediaContainer withMediaTagVersion(Integer mediaTagVersion) { + this.mediaTagVersion = mediaTagVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("nocache") + public Boolean nocache; + + public SearchLibraryMediaContainer withNocache(Boolean nocache) { + this.nocache = nocache; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public SearchLibraryMediaContainer withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title1") + public String title1; + + public SearchLibraryMediaContainer withTitle1(String title1) { + this.title1 = title1; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title2") + public String title2; + + public SearchLibraryMediaContainer withTitle2(String title2) { + this.title2 = title2; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewGroup") + public String viewGroup; + + public SearchLibraryMediaContainer withViewGroup(String viewGroup) { + this.viewGroup = viewGroup; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("viewMode") + public Integer viewMode; + + public SearchLibraryMediaContainer withViewMode(Integer viewMode) { + this.viewMode = viewMode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Metadata") + public SearchLibraryMetadata[] metadata; + + public SearchLibraryMediaContainer withMetadata(SearchLibraryMetadata[] metadata) { + this.metadata = metadata; + return this; + } + + public SearchLibraryMediaContainer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMetadata.java new file mode 100644 index 00000000..776bc320 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMetadata.java @@ -0,0 +1,194 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class SearchLibraryMetadata { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("ratingKey") + public String ratingKey; + + public SearchLibraryMetadata withRatingKey(String ratingKey) { + this.ratingKey = ratingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public SearchLibraryMetadata withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentRatingKey") + public String parentRatingKey; + + public SearchLibraryMetadata withParentRatingKey(String parentRatingKey) { + this.parentRatingKey = parentRatingKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("guid") + public String guid; + + public SearchLibraryMetadata withGuid(String guid) { + this.guid = guid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentGuid") + public String parentGuid; + + public SearchLibraryMetadata withParentGuid(String parentGuid) { + this.parentGuid = parentGuid; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentStudio") + public String parentStudio; + + public SearchLibraryMetadata withParentStudio(String parentStudio) { + this.parentStudio = parentStudio; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public SearchLibraryMetadata withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public SearchLibraryMetadata withTitle(String title) { + this.title = title; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentKey") + public String parentKey; + + public SearchLibraryMetadata withParentKey(String parentKey) { + this.parentKey = parentKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTitle") + public String parentTitle; + + public SearchLibraryMetadata withParentTitle(String parentTitle) { + this.parentTitle = parentTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public SearchLibraryMetadata withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Integer index; + + public SearchLibraryMetadata withIndex(Integer index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentIndex") + public Integer parentIndex; + + public SearchLibraryMetadata withParentIndex(Integer parentIndex) { + this.parentIndex = parentIndex; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentYear") + public Integer parentYear; + + public SearchLibraryMetadata withParentYear(Integer parentYear) { + this.parentYear = parentYear; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public SearchLibraryMetadata withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("art") + public String art; + + public SearchLibraryMetadata withArt(String art) { + this.art = art; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentThumb") + public String parentThumb; + + public SearchLibraryMetadata withParentThumb(String parentThumb) { + this.parentThumb = parentThumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("parentTheme") + public String parentTheme; + + public SearchLibraryMetadata withParentTheme(String parentTheme) { + this.parentTheme = parentTheme; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("addedAt") + public Integer addedAt; + + public SearchLibraryMetadata withAddedAt(Integer addedAt) { + this.addedAt = addedAt; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("updatedAt") + public Integer updatedAt; + + public SearchLibraryMetadata withUpdatedAt(Integer updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public SearchLibraryMetadata(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryRequest.java new file mode 100644 index 00000000..f1469291 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryRequest.java @@ -0,0 +1,38 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class SearchLibraryRequest { + /** + * the Id of the library to query + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionId") + public Long sectionId; + + public SearchLibraryRequest withSectionId(Long sectionId) { + this.sectionId = sectionId; + return this; + } + + /** + * Plex content type to search for + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=type") + public Type type; + + public SearchLibraryRequest withType(Type type) { + this.type = type; + return this; + } + + public SearchLibraryRequest(@JsonProperty("sectionId") Long sectionId, @JsonProperty("type") Type type) { + this.sectionId = sectionId; + this.type = type; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponse.java new file mode 100644 index 00000000..5482c24a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class SearchLibraryResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public SearchLibraryResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public SearchLibraryResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public SearchLibraryResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * The contents of the library by section and type + */ + + public SearchLibraryResponseBody object; + + public SearchLibraryResponse withObject(SearchLibraryResponseBody object) { + this.object = object; + return this; + } + + public SearchLibraryResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponseBody.java new file mode 100644 index 00000000..424ec136 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * SearchLibraryResponseBody - The contents of the library by section and type + */ + +public class SearchLibraryResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + public SearchLibraryMediaContainer mediaContainer; + + public SearchLibraryResponseBody withMediaContainer(SearchLibraryMediaContainer mediaContainer) { + this.mediaContainer = mediaContainer; + return this; + } + + public SearchLibraryResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Server.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Server.java new file mode 100644 index 00000000..8a90431c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Server.java @@ -0,0 +1,113 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Server { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("name") + public String name; + + public Server withName(String name) { + this.name = name; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("host") + public String host; + + public Server withHost(String host) { + this.host = host; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("address") + public String address; + + public Server withAddress(String address) { + this.address = address; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("port") + public Double port; + + public Server withPort(Double port) { + this.port = port; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("machineIdentifier") + public String machineIdentifier; + + public Server withMachineIdentifier(String machineIdentifier) { + this.machineIdentifier = machineIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("version") + public String version; + + public Server withVersion(String version) { + this.version = version; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("protocol") + public String protocol; + + public Server withProtocol(String protocol) { + this.protocol = protocol; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("product") + public String product; + + public Server withProduct(String product) { + this.product = product; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("deviceClass") + public String deviceClass; + + public Server withDeviceClass(String deviceClass) { + this.deviceClass = deviceClass; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("protocolVersion") + public Double protocolVersion; + + public Server withProtocolVersion(Double protocolVersion) { + this.protocolVersion = protocolVersion; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("protocolCapabilities") + public String protocolCapabilities; + + public Server withProtocolCapabilities(String protocolCapabilities) { + this.protocolCapabilities = protocolCapabilities; + return this; + } + + public Server(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Session.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Session.java new file mode 100644 index 00000000..3f65d0d8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Session.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Session { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public Session withId(String id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bandwidth") + public Integer bandwidth; + + public Session withBandwidth(Integer bandwidth) { + this.bandwidth = bandwidth; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("location") + public String location; + + public Session withLocation(String location) { + this.location = location; + return this; + } + + public Session(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Setting.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Setting.java new file mode 100644 index 00000000..602bdfd8 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Setting.java @@ -0,0 +1,104 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Setting { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public Setting withId(String id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("label") + public String label; + + public Setting withLabel(String label) { + this.label = label; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("summary") + public String summary; + + public Setting withSummary(String summary) { + this.summary = summary; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("type") + public String type; + + public Setting withType(String type) { + this.type = type; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("default") + public Boolean default_; + + public Setting withDefault(Boolean default_) { + this.default_ = default_; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("value") + public Boolean value; + + public Setting withValue(Boolean value) { + this.value = value; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hidden") + public Boolean hidden; + + public Setting withHidden(Boolean hidden) { + this.hidden = hidden; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("advanced") + public Boolean advanced; + + public Setting withAdvanced(Boolean advanced) { + this.advanced = advanced; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("group") + public String group; + + public Setting withGroup(String group) { + this.group = group; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("enumValues") + public String enumValues; + + public Setting withEnumValues(String enumValues) { + this.enumValues = enumValues; + return this; + } + + public Setting(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Skip.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Skip.java new file mode 100644 index 00000000..bdc45f4d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Skip.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Skip - Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. + */ +public enum Skip { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private Skip(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Smart.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Smart.java new file mode 100644 index 00000000..576726ac --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Smart.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Smart - whether the playlist is smart or not + */ +public enum Smart { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private Smart(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Sort.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Sort.java new file mode 100644 index 00000000..91802f79 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Sort.java @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Sort { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("default") + public String default_; + + public Sort withDefault(String default_) { + this.default_ = default_; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("defaultDirection") + public String defaultDirection; + + public Sort withDefaultDirection(String defaultDirection) { + this.defaultDirection = defaultDirection; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("descKey") + public String descKey; + + public Sort withDescKey(String descKey) { + this.descKey = descKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("firstCharacterKey") + public String firstCharacterKey; + + public Sort withFirstCharacterKey(String firstCharacterKey) { + this.firstCharacterKey = firstCharacterKey; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public Sort withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public Sort withTitle(String title) { + this.title = title; + return this; + } + + public Sort(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksErrors.java new file mode 100644 index 00000000..410fa722 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class StartAllTasksErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public StartAllTasksErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public StartAllTasksErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public StartAllTasksErrors withStatus(Double status) { + this.status = status; + return this; + } + + public StartAllTasksErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponse.java new file mode 100644 index 00000000..a6d86e1f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class StartAllTasksResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public StartAllTasksResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public StartAllTasksResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public StartAllTasksResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public StartAllTasksResponseBody object; + + public StartAllTasksResponse withObject(StartAllTasksResponseBody object) { + this.object = object; + return this; + } + + public StartAllTasksResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponseBody.java new file mode 100644 index 00000000..a2c2b91e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * StartAllTasksResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class StartAllTasksResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public StartAllTasksErrors[] errors; + + public StartAllTasksResponseBody withErrors(StartAllTasksErrors[] errors) { + this.errors = errors; + return this; + } + + public StartAllTasksResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskErrors.java new file mode 100644 index 00000000..517aad2e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class StartTaskErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public StartTaskErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public StartTaskErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public StartTaskErrors withStatus(Double status) { + this.status = status; + return this; + } + + public StartTaskErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskRequest.java new file mode 100644 index 00000000..30c95f65 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class StartTaskRequest { + /** + * the name of the task to be started. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=taskName") + public TaskName taskName; + + public StartTaskRequest withTaskName(TaskName taskName) { + this.taskName = taskName; + return this; + } + + public StartTaskRequest(@JsonProperty("taskName") TaskName taskName) { + this.taskName = taskName; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponse.java new file mode 100644 index 00000000..b04852f1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class StartTaskResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public StartTaskResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public StartTaskResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public StartTaskResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public StartTaskResponseBody object; + + public StartTaskResponse withObject(StartTaskResponseBody object) { + this.object = object; + return this; + } + + public StartTaskResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponseBody.java new file mode 100644 index 00000000..c6712080 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * StartTaskResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class StartTaskResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public StartTaskErrors[] errors; + + public StartTaskResponseBody withErrors(StartTaskErrors[] errors) { + this.errors = errors; + return this; + } + + public StartTaskResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeErrors.java new file mode 100644 index 00000000..322ae515 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class StartUniversalTranscodeErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public StartUniversalTranscodeErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public StartUniversalTranscodeErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public StartUniversalTranscodeErrors withStatus(Double status) { + this.status = status; + return this; + } + + public StartUniversalTranscodeErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeRequest.java new file mode 100644 index 00000000..7f6c2f86 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeRequest.java @@ -0,0 +1,195 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class StartUniversalTranscodeRequest { + /** + * Whether the media item has MDE + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=hasMDE") + public Double hasMDE; + + public StartUniversalTranscodeRequest withHasMDE(Double hasMDE) { + this.hasMDE = hasMDE; + return this; + } + + /** + * The path to the media item to transcode + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=path") + public String path; + + public StartUniversalTranscodeRequest withPath(String path) { + this.path = path; + return this; + } + + /** + * The index of the media item to transcode + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=mediaIndex") + public Double mediaIndex; + + public StartUniversalTranscodeRequest withMediaIndex(Double mediaIndex) { + this.mediaIndex = mediaIndex; + return this; + } + + /** + * The index of the part to transcode + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=partIndex") + public Double partIndex; + + public StartUniversalTranscodeRequest withPartIndex(Double partIndex) { + this.partIndex = partIndex; + return this; + } + + /** + * The protocol to use for the transcode session + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=protocol") + public String protocol; + + public StartUniversalTranscodeRequest withProtocol(String protocol) { + this.protocol = protocol; + return this; + } + + /** + * Whether to use fast seek or not + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=fastSeek") + public Double fastSeek; + + public StartUniversalTranscodeRequest withFastSeek(Double fastSeek) { + this.fastSeek = fastSeek; + return this; + } + + /** + * Whether to use direct play or not + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=directPlay") + public Double directPlay; + + public StartUniversalTranscodeRequest withDirectPlay(Double directPlay) { + this.directPlay = directPlay; + return this; + } + + /** + * Whether to use direct stream or not + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=directStream") + public Double directStream; + + public StartUniversalTranscodeRequest withDirectStream(Double directStream) { + this.directStream = directStream; + return this; + } + + /** + * The size of the subtitles + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=subtitleSize") + public Double subtitleSize; + + public StartUniversalTranscodeRequest withSubtitleSize(Double subtitleSize) { + this.subtitleSize = subtitleSize; + return this; + } + + /** + * The subtitles + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=subtites") + public String subtites; + + public StartUniversalTranscodeRequest withSubtites(String subtites) { + this.subtites = subtites; + return this; + } + + /** + * The audio boost + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=audioBoost") + public Double audioBoost; + + public StartUniversalTranscodeRequest withAudioBoost(Double audioBoost) { + this.audioBoost = audioBoost; + return this; + } + + /** + * The location of the transcode session + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=location") + public String location; + + public StartUniversalTranscodeRequest withLocation(String location) { + this.location = location; + return this; + } + + /** + * The size of the media buffer + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=mediaBufferSize") + public Double mediaBufferSize; + + public StartUniversalTranscodeRequest withMediaBufferSize(Double mediaBufferSize) { + this.mediaBufferSize = mediaBufferSize; + return this; + } + + /** + * The session ID + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=session") + public String session; + + public StartUniversalTranscodeRequest withSession(String session) { + this.session = session; + return this; + } + + /** + * Whether to add a debug overlay or not + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=addDebugOverlay") + public Double addDebugOverlay; + + public StartUniversalTranscodeRequest withAddDebugOverlay(Double addDebugOverlay) { + this.addDebugOverlay = addDebugOverlay; + return this; + } + + /** + * Whether to auto adjust quality or not + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=autoAdjustQuality") + public Double autoAdjustQuality; + + public StartUniversalTranscodeRequest withAutoAdjustQuality(Double autoAdjustQuality) { + this.autoAdjustQuality = autoAdjustQuality; + return this; + } + + public StartUniversalTranscodeRequest(@JsonProperty("hasMDE") Double hasMDE, @JsonProperty("path") String path, @JsonProperty("mediaIndex") Double mediaIndex, @JsonProperty("partIndex") Double partIndex, @JsonProperty("protocol") String protocol) { + this.hasMDE = hasMDE; + this.path = path; + this.mediaIndex = mediaIndex; + this.partIndex = partIndex; + this.protocol = protocol; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponse.java new file mode 100644 index 00000000..4a747267 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class StartUniversalTranscodeResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public StartUniversalTranscodeResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public StartUniversalTranscodeResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public StartUniversalTranscodeResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public StartUniversalTranscodeResponseBody object; + + public StartUniversalTranscodeResponse withObject(StartUniversalTranscodeResponseBody object) { + this.object = object; + return this; + } + + public StartUniversalTranscodeResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponseBody.java new file mode 100644 index 00000000..021dc7f5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * StartUniversalTranscodeResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class StartUniversalTranscodeResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public StartUniversalTranscodeErrors[] errors; + + public StartUniversalTranscodeResponseBody withErrors(StartUniversalTranscodeErrors[] errors) { + this.errors = errors; + return this; + } + + public StartUniversalTranscodeResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/State.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/State.java new file mode 100644 index 00000000..328d1bec --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/State.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * State - The state of the media item + */ +public enum State { + PLAYING("playing"), + PAUSED("paused"), + STOPPED("stopped"); + + @JsonValue + public final String value; + + private State(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsMedia.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsMedia.java new file mode 100644 index 00000000..5cac1724 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsMedia.java @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class StatisticsMedia { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("accountID") + public Integer accountID; + + public StatisticsMedia withAccountID(Integer accountID) { + this.accountID = accountID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("deviceID") + public Integer deviceID; + + public StatisticsMedia withDeviceID(Integer deviceID) { + this.deviceID = deviceID; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("timespan") + public Integer timespan; + + public StatisticsMedia withTimespan(Integer timespan) { + this.timespan = timespan; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("at") + public Integer at; + + public StatisticsMedia withAt(Integer at) { + this.at = at; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("metadataType") + public Integer metadataType; + + public StatisticsMedia withMetadataType(Integer metadataType) { + this.metadataType = metadataType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("count") + public Integer count; + + public StatisticsMedia withCount(Integer count) { + this.count = count; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public StatisticsMedia withDuration(Integer duration) { + this.duration = duration; + return this; + } + + public StatisticsMedia(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksErrors.java new file mode 100644 index 00000000..c7d46a70 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class StopAllTasksErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public StopAllTasksErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public StopAllTasksErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public StopAllTasksErrors withStatus(Double status) { + this.status = status; + return this; + } + + public StopAllTasksErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponse.java new file mode 100644 index 00000000..8c081bf1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class StopAllTasksResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public StopAllTasksResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public StopAllTasksResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public StopAllTasksResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public StopAllTasksResponseBody object; + + public StopAllTasksResponse withObject(StopAllTasksResponseBody object) { + this.object = object; + return this; + } + + public StopAllTasksResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponseBody.java new file mode 100644 index 00000000..df809f8d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * StopAllTasksResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class StopAllTasksResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public StopAllTasksErrors[] errors; + + public StopAllTasksResponseBody withErrors(StopAllTasksErrors[] errors) { + this.errors = errors; + return this; + } + + public StopAllTasksResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskErrors.java new file mode 100644 index 00000000..a9da1ea4 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class StopTaskErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public StopTaskErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public StopTaskErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public StopTaskErrors withStatus(Double status) { + this.status = status; + return this; + } + + public StopTaskErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskRequest.java new file mode 100644 index 00000000..c83bac64 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class StopTaskRequest { + /** + * The name of the task to be started. + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=taskName") + public PathParamTaskName taskName; + + public StopTaskRequest withTaskName(PathParamTaskName taskName) { + this.taskName = taskName; + return this; + } + + public StopTaskRequest(@JsonProperty("taskName") PathParamTaskName taskName) { + this.taskName = taskName; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponse.java new file mode 100644 index 00000000..8ab9e89d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class StopTaskResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public StopTaskResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public StopTaskResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public StopTaskResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public StopTaskResponseBody object; + + public StopTaskResponse withObject(StopTaskResponseBody object) { + this.object = object; + return this; + } + + public StopTaskResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponseBody.java new file mode 100644 index 00000000..13dea53a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * StopTaskResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class StopTaskResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public StopTaskErrors[] errors; + + public StopTaskResponseBody withErrors(StopTaskErrors[] errors) { + this.errors = errors; + return this; + } + + public StopTaskResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionErrors.java new file mode 100644 index 00000000..626a1939 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class StopTranscodeSessionErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public StopTranscodeSessionErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public StopTranscodeSessionErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public StopTranscodeSessionErrors withStatus(Double status) { + this.status = status; + return this; + } + + public StopTranscodeSessionErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionRequest.java new file mode 100644 index 00000000..27d10a81 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionRequest.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class StopTranscodeSessionRequest { + /** + * the Key of the transcode session to stop + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sessionKey") + public String sessionKey; + + public StopTranscodeSessionRequest withSessionKey(String sessionKey) { + this.sessionKey = sessionKey; + return this; + } + + public StopTranscodeSessionRequest(@JsonProperty("sessionKey") String sessionKey) { + this.sessionKey = sessionKey; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponse.java new file mode 100644 index 00000000..9fee9fca --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class StopTranscodeSessionResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public StopTranscodeSessionResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public StopTranscodeSessionResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public StopTranscodeSessionResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public StopTranscodeSessionResponseBody object; + + public StopTranscodeSessionResponse withObject(StopTranscodeSessionResponseBody object) { + this.object = object; + return this; + } + + public StopTranscodeSessionResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponseBody.java new file mode 100644 index 00000000..ffd5dd29 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * StopTranscodeSessionResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class StopTranscodeSessionResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public StopTranscodeSessionErrors[] errors; + + public StopTranscodeSessionResponseBody withErrors(StopTranscodeSessionErrors[] errors) { + this.errors = errors; + return this; + } + + public StopTranscodeSessionResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Stream.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Stream.java new file mode 100644 index 00000000..8b53086c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Stream.java @@ -0,0 +1,302 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Stream { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public Integer id; + + public Stream withId(Integer id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("streamType") + public Integer streamType; + + public Stream withStreamType(Integer streamType) { + this.streamType = streamType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("default") + public Boolean default_; + + public Stream withDefault(Boolean default_) { + this.default_ = default_; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("codec") + public String codec; + + public Stream withCodec(String codec) { + this.codec = codec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("index") + public Integer index; + + public Stream withIndex(Integer index) { + this.index = index; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitrate") + public Integer bitrate; + + public Stream withBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("bitDepth") + public Integer bitDepth; + + public Stream withBitDepth(Integer bitDepth) { + this.bitDepth = bitDepth; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chromaLocation") + public String chromaLocation; + + public Stream withChromaLocation(String chromaLocation) { + this.chromaLocation = chromaLocation; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("chromaSubsampling") + public String chromaSubsampling; + + public Stream withChromaSubsampling(String chromaSubsampling) { + this.chromaSubsampling = chromaSubsampling; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("codedHeight") + public Integer codedHeight; + + public Stream withCodedHeight(Integer codedHeight) { + this.codedHeight = codedHeight; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("codedWidth") + public Integer codedWidth; + + public Stream withCodedWidth(Integer codedWidth) { + this.codedWidth = codedWidth; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("colorPrimaries") + public String colorPrimaries; + + public Stream withColorPrimaries(String colorPrimaries) { + this.colorPrimaries = colorPrimaries; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("colorRange") + public String colorRange; + + public Stream withColorRange(String colorRange) { + this.colorRange = colorRange; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("colorSpace") + public String colorSpace; + + public Stream withColorSpace(String colorSpace) { + this.colorSpace = colorSpace; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("colorTrc") + public String colorTrc; + + public Stream withColorTrc(String colorTrc) { + this.colorTrc = colorTrc; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("frameRate") + public Integer frameRate; + + public Stream withFrameRate(Integer frameRate) { + this.frameRate = frameRate; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("hasScalingMatrix") + public Boolean hasScalingMatrix; + + public Stream withHasScalingMatrix(Boolean hasScalingMatrix) { + this.hasScalingMatrix = hasScalingMatrix; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("height") + public Integer height; + + public Stream withHeight(Integer height) { + this.height = height; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("level") + public Integer level; + + public Stream withLevel(Integer level) { + this.level = level; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("profile") + public String profile; + + public Stream withProfile(String profile) { + this.profile = profile; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("refFrames") + public Integer refFrames; + + public Stream withRefFrames(Integer refFrames) { + this.refFrames = refFrames; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("scanType") + public String scanType; + + public Stream withScanType(String scanType) { + this.scanType = scanType; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("streamIdentifier") + public String streamIdentifier; + + public Stream withStreamIdentifier(String streamIdentifier) { + this.streamIdentifier = streamIdentifier; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("width") + public Integer width; + + public Stream withWidth(Integer width) { + this.width = width; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("displayTitle") + public String displayTitle; + + public Stream withDisplayTitle(String displayTitle) { + this.displayTitle = displayTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("extendedDisplayTitle") + public String extendedDisplayTitle; + + public Stream withExtendedDisplayTitle(String extendedDisplayTitle) { + this.extendedDisplayTitle = extendedDisplayTitle; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("selected") + public Boolean selected; + + public Stream withSelected(Boolean selected) { + this.selected = selected; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("channels") + public Integer channels; + + public Stream withChannels(Integer channels) { + this.channels = channels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("language") + public String language; + + public Stream withLanguage(String language) { + this.language = language; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("languageTag") + public String languageTag; + + public Stream withLanguageTag(String languageTag) { + this.languageTag = languageTag; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("languageCode") + public String languageCode; + + public Stream withLanguageCode(String languageCode) { + this.languageCode = languageCode; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("samplingRate") + public Integer samplingRate; + + public Stream withSamplingRate(Integer samplingRate) { + this.samplingRate = samplingRate; + return this; + } + + public Stream(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tag.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tag.java new file mode 100644 index 00000000..a473362f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tag.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Tag - A key representing a specific tag within the section. + */ +public enum Tag { + ALL("all"), + UNWATCHED("unwatched"), + NEWEST("newest"), + RECENTLY_ADDED("recentlyAdded"), + RECENTLY_VIEWED("recentlyViewed"), + ON_DECK("onDeck"), + COLLECTION("collection"), + EDITION("edition"), + GENRE("genre"), + YEAR("year"), + DECADE("decade"), + DIRECTOR("director"), + ACTOR("actor"), + COUNTRY("country"), + CONTENT_RATING("contentRating"), + RATING("rating"), + RESOLUTION("resolution"), + FIRST_CHARACTER("firstCharacter"), + FOLDER("folder"); + + @JsonValue + public final String value; + + private Tag(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TaskName.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TaskName.java new file mode 100644 index 00000000..84e20e63 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TaskName.java @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * TaskName - the name of the task to be started. + */ +public enum TaskName { + BACKUP_DATABASE("BackupDatabase"), + BUILD_GRACENOTE_COLLECTIONS("BuildGracenoteCollections"), + CHECK_FOR_UPDATES("CheckForUpdates"), + CLEAN_OLD_BUNDLES("CleanOldBundles"), + CLEAN_OLD_CACHE_FILES("CleanOldCacheFiles"), + DEEP_MEDIA_ANALYSIS("DeepMediaAnalysis"), + GENERATE_AUTO_TAGS("GenerateAutoTags"), + GENERATE_CHAPTER_THUMBS("GenerateChapterThumbs"), + GENERATE_MEDIA_INDEX_FILES("GenerateMediaIndexFiles"), + OPTIMIZE_DATABASE("OptimizeDatabase"), + REFRESH_LIBRARIES("RefreshLibraries"), + REFRESH_LOCAL_MEDIA("RefreshLocalMedia"), + REFRESH_PERIODIC_METADATA("RefreshPeriodicMetadata"), + UPGRADE_MEDIA_ANALYSIS("UpgradeMediaAnalysis"); + + @JsonValue + public final String value; + + private TaskName(String value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tonight.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tonight.java new file mode 100644 index 00000000..a71e3050 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Tonight.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Tonight - Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install + */ +public enum Tonight { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private Tonight(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TranscodeSession.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TranscodeSession.java new file mode 100644 index 00000000..940e50a5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/TranscodeSession.java @@ -0,0 +1,230 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class TranscodeSession { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("key") + public String key; + + public TranscodeSession withKey(String key) { + this.key = key; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("throttled") + public Boolean throttled; + + public TranscodeSession withThrottled(Boolean throttled) { + this.throttled = throttled; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("complete") + public Boolean complete; + + public TranscodeSession withComplete(Boolean complete) { + this.complete = complete; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("progress") + public Double progress; + + public TranscodeSession withProgress(Double progress) { + this.progress = progress; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("size") + public Integer size; + + public TranscodeSession withSize(Integer size) { + this.size = size; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("speed") + public Double speed; + + public TranscodeSession withSpeed(Double speed) { + this.speed = speed; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("error") + public Boolean error; + + public TranscodeSession withError(Boolean error) { + this.error = error; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("duration") + public Integer duration; + + public TranscodeSession withDuration(Integer duration) { + this.duration = duration; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("remaining") + public Integer remaining; + + public TranscodeSession withRemaining(Integer remaining) { + this.remaining = remaining; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("context") + public String context; + + public TranscodeSession withContext(String context) { + this.context = context; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("sourceVideoCodec") + public String sourceVideoCodec; + + public TranscodeSession withSourceVideoCodec(String sourceVideoCodec) { + this.sourceVideoCodec = sourceVideoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("sourceAudioCodec") + public String sourceAudioCodec; + + public TranscodeSession withSourceAudioCodec(String sourceAudioCodec) { + this.sourceAudioCodec = sourceAudioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoDecision") + public String videoDecision; + + public TranscodeSession withVideoDecision(String videoDecision) { + this.videoDecision = videoDecision; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioDecision") + public String audioDecision; + + public TranscodeSession withAudioDecision(String audioDecision) { + this.audioDecision = audioDecision; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("subtitleDecision") + public String subtitleDecision; + + public TranscodeSession withSubtitleDecision(String subtitleDecision) { + this.subtitleDecision = subtitleDecision; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("protocol") + public String protocol; + + public TranscodeSession withProtocol(String protocol) { + this.protocol = protocol; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("container") + public String container; + + public TranscodeSession withContainer(String container) { + this.container = container; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("videoCodec") + public String videoCodec; + + public TranscodeSession withVideoCodec(String videoCodec) { + this.videoCodec = videoCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioCodec") + public String audioCodec; + + public TranscodeSession withAudioCodec(String audioCodec) { + this.audioCodec = audioCodec; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("audioChannels") + public Integer audioChannels; + + public TranscodeSession withAudioChannels(Integer audioChannels) { + this.audioChannels = audioChannels; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("transcodeHwRequested") + public Boolean transcodeHwRequested; + + public TranscodeSession withTranscodeHwRequested(Boolean transcodeHwRequested) { + this.transcodeHwRequested = transcodeHwRequested; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("timeStamp") + public Double timeStamp; + + public TranscodeSession withTimeStamp(Double timeStamp) { + this.timeStamp = timeStamp; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("maxOffsetAvailable") + public Double maxOffsetAvailable; + + public TranscodeSession withMaxOffsetAvailable(Double maxOffsetAvailable) { + this.maxOffsetAvailable = maxOffsetAvailable; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("minOffsetAvailable") + public Double minOffsetAvailable; + + public TranscodeSession withMinOffsetAvailable(Double minOffsetAvailable) { + this.minOffsetAvailable = minOffsetAvailable; + return this; + } + + public TranscodeSession(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Type.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Type.java new file mode 100644 index 00000000..5c2948b9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Type.java @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Type - Plex content type to search for + */ +public enum Type { + ONE(1L), + TWO(2L), + THREE(3L), + FOUR(4L); + + @JsonValue + public final Long value; + + private Type(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressErrors.java new file mode 100644 index 00000000..7fb9bb17 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class UpdatePlayProgressErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public UpdatePlayProgressErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public UpdatePlayProgressErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public UpdatePlayProgressErrors withStatus(Double status) { + this.status = status; + return this; + } + + public UpdatePlayProgressErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressRequest.java new file mode 100644 index 00000000..9225c155 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressRequest.java @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class UpdatePlayProgressRequest { + /** + * the media key + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=key") + public String key; + + public UpdatePlayProgressRequest withKey(String key) { + this.key = key; + return this; + } + + /** + * The time, in milliseconds, used to set the media playback progress. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=time") + public Double time; + + public UpdatePlayProgressRequest withTime(Double time) { + this.time = time; + return this; + } + + /** + * The playback state of the media item. + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=state") + public String state; + + public UpdatePlayProgressRequest withState(String state) { + this.state = state; + return this; + } + + public UpdatePlayProgressRequest(@JsonProperty("key") String key, @JsonProperty("time") Double time, @JsonProperty("state") String state) { + this.key = key; + this.time = time; + this.state = state; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponse.java new file mode 100644 index 00000000..08db4545 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class UpdatePlayProgressResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public UpdatePlayProgressResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public UpdatePlayProgressResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public UpdatePlayProgressResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public UpdatePlayProgressResponseBody object; + + public UpdatePlayProgressResponse withObject(UpdatePlayProgressResponseBody object) { + this.object = object; + return this; + } + + public UpdatePlayProgressResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponseBody.java new file mode 100644 index 00000000..0c26a4b2 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * UpdatePlayProgressResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class UpdatePlayProgressResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public UpdatePlayProgressErrors[] errors; + + public UpdatePlayProgressResponseBody withErrors(UpdatePlayProgressErrors[] errors) { + this.errors = errors; + return this; + } + + public UpdatePlayProgressResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistErrors.java new file mode 100644 index 00000000..116787f0 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class UpdatePlaylistErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public UpdatePlaylistErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public UpdatePlaylistErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public UpdatePlaylistErrors withStatus(Double status) { + this.status = status; + return this; + } + + public UpdatePlaylistErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistRequest.java new file mode 100644 index 00000000..db8fd872 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistRequest.java @@ -0,0 +1,48 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class UpdatePlaylistRequest { + /** + * the ID of the playlist + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=playlistID") + public Double playlistID; + + public UpdatePlaylistRequest withPlaylistID(Double playlistID) { + this.playlistID = playlistID; + return this; + } + + /** + * name of the playlist + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=title") + public String title; + + public UpdatePlaylistRequest withTitle(String title) { + this.title = title; + return this; + } + + /** + * summary description of the playlist + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=summary") + public String summary; + + public UpdatePlaylistRequest withSummary(String summary) { + this.summary = summary; + return this; + } + + public UpdatePlaylistRequest(@JsonProperty("playlistID") Double playlistID) { + this.playlistID = playlistID; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponse.java new file mode 100644 index 00000000..75d320f5 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class UpdatePlaylistResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public UpdatePlaylistResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public UpdatePlaylistResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public UpdatePlaylistResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public UpdatePlaylistResponseBody object; + + public UpdatePlaylistResponse withObject(UpdatePlaylistResponseBody object) { + this.object = object; + return this; + } + + public UpdatePlaylistResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponseBody.java new file mode 100644 index 00000000..c665ac00 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * UpdatePlaylistResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class UpdatePlaylistResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public UpdatePlaylistErrors[] errors; + + public UpdatePlaylistResponseBody withErrors(UpdatePlaylistErrors[] errors) { + this.errors = errors; + return this; + } + + public UpdatePlaylistResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistErrors.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistErrors.java new file mode 100644 index 00000000..54b9d603 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistErrors.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class UploadPlaylistErrors { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + public Double code; + + public UploadPlaylistErrors withCode(Double code) { + this.code = code; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + public String message; + + public UploadPlaylistErrors withMessage(String message) { + this.message = message; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + public Double status; + + public UploadPlaylistErrors withStatus(Double status) { + this.status = status; + return this; + } + + public UploadPlaylistErrors(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistRequest.java new file mode 100644 index 00000000..c132775e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistRequest.java @@ -0,0 +1,48 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class UploadPlaylistRequest { + /** + * absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. + * If the `path` argument is a directory, that path will be scanned for playlist files to be processed. + * Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. + * The GUID of each playlist is based on the filename. + * If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. + * The GUID of each playlist is based on the filename. + * + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=path") + public String path; + + public UploadPlaylistRequest withPath(String path) { + this.path = path; + return this; + } + + /** + * Force overwriting of duplicate playlists. + * By default, a playlist file uploaded with the same path will overwrite the existing playlist. + * The `force` argument is used to disable overwriting. + * If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. + * + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=force") + public Force force; + + public UploadPlaylistRequest withForce(Force force) { + this.force = force; + return this; + } + + public UploadPlaylistRequest(@JsonProperty("path") String path, @JsonProperty("force") Force force) { + this.path = path; + this.force = force; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponse.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponse.java new file mode 100644 index 00000000..fd391df9 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponse.java @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.net.http.HttpResponse; + + +public class UploadPlaylistResponse { + /** + * HTTP response content type for this operation + */ + + public String contentType; + + public UploadPlaylistResponse withContentType(String contentType) { + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + + public Integer statusCode; + + public UploadPlaylistResponse withStatusCode(Integer statusCode) { + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + + public HttpResponse rawResponse; + + public UploadPlaylistResponse withRawResponse(HttpResponse rawResponse) { + this.rawResponse = rawResponse; + return this; + } + + /** + * Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + + public UploadPlaylistResponseBody object; + + public UploadPlaylistResponse withObject(UploadPlaylistResponseBody object) { + this.object = object; + return this; + } + + public UploadPlaylistResponse(@JsonProperty("ContentType") String contentType, @JsonProperty("StatusCode") Integer statusCode, @JsonProperty("RawResponse") HttpResponse rawResponse) { + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponseBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponseBody.java new file mode 100644 index 00000000..96068856 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponseBody.java @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * UploadPlaylistResponseBody - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ + +public class UploadPlaylistResponseBody { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + public UploadPlaylistErrors[] errors; + + public UploadPlaylistResponseBody withErrors(UploadPlaylistErrors[] errors) { + this.errors = errors; + return this; + } + + public UploadPlaylistResponseBody(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Upscale.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Upscale.java new file mode 100644 index 00000000..8c4a9345 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Upscale.java @@ -0,0 +1,22 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Upscale - allow images to be resized beyond native dimensions. + */ +public enum Upscale { + ZERO(0L), + ONE(1L); + + @JsonValue + public final Long value; + + private Upscale(Long value) { + this.value = value; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/User.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/User.java new file mode 100644 index 00000000..7da577ca --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/User.java @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class User { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("id") + public String id; + + public User withId(String id) { + this.id = id; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + public String thumb; + + public User withThumb(String thumb) { + this.thumb = thumb; + return this; + } + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("title") + public String title; + + public User withTitle(String title) { + this.title = title; + return this; + } + + public User(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Writer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Writer.java new file mode 100644 index 00000000..4f9c5f35 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/operations/Writer.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.operations; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + + +public class Writer { + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("tag") + public String tag; + + public Writer withTag(String tag) { + this.tag = tag; + return this; + } + + public Writer(){} +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/models/shared/Security.java b/lib/src/main/java/lukehagar/plexapi/plexapi/models/shared/Security.java new file mode 100644 index 00000000..c6152f0c --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/models/shared/Security.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.models.shared; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lukehagar.plexapi.plexapi.utils.SpeakeasyMetadata; + + +public class Security { + @SpeakeasyMetadata("security:scheme=true,type=apiKey,subtype=header,name=X-Plex-Token") + public String accessToken; + + public Security withAccessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + public Security(@JsonProperty("accessToken") String accessToken) { + this.accessToken = accessToken; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeDeserializer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeDeserializer.java new file mode 100644 index 00000000..d538f905 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeDeserializer.java @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.io.IOException; +import java.time.OffsetDateTime; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; + +public class DateTimeDeserializer extends StdDeserializer { + public DateTimeDeserializer() { + this(null); + } + + public DateTimeDeserializer(Class t) { + super(t); + } + + @Override + public OffsetDateTime deserialize(JsonParser parser, DeserializationContext context) + throws IOException, JsonProcessingException { + + String date = parser.getText(); + try { + return OffsetDateTime.parse(date); + } catch (Exception e) { + } + return null; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeSerializer.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeSerializer.java new file mode 100644 index 00000000..38318b0d --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/DateTimeSerializer.java @@ -0,0 +1,27 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.io.IOException; +import java.time.OffsetDateTime; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; + +public class DateTimeSerializer extends StdSerializer { + public DateTimeSerializer() { + this(null); + } + + public DateTimeSerializer(Class t) { + super(t); + } + + @Override + public void serialize(OffsetDateTime value, JsonGenerator gen, SerializerProvider provider) throws IOException { + gen.writeString(value.toString()); + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/FormMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/FormMetadata.java new file mode 100644 index 00000000..64ffe12f --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/FormMetadata.java @@ -0,0 +1,25 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; + +public class FormMetadata extends Metadata { + public String style = "form"; + public boolean explode = true; + public boolean json; + public String name; + + // form:name=propName,style=spaceDelimited,explode=true + public static FormMetadata parse(Field field) throws IllegalArgumentException, IllegalAccessException { + FormMetadata result = new FormMetadata(); + result = (FormMetadata) parse("form", result, field); + + return result; + } + + private FormMetadata() { + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPClient.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPClient.java new file mode 100644 index 00000000..fbb8adea --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPClient.java @@ -0,0 +1,14 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.http.HttpResponse; + +public interface HTTPClient { + public HttpResponse send(HTTPRequest request) + throws IOException, InterruptedException, URISyntaxException; +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPRequest.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPRequest.java new file mode 100644 index 00000000..07174b31 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HTTPRequest.java @@ -0,0 +1,87 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.net.URI; +import java.net.http.HttpRequest; +import java.net.http.HttpRequest.BodyPublisher; +import java.net.http.HttpRequest.BodyPublishers; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.http.NameValuePair; +import org.apache.http.client.utils.URLEncodedUtils; + +public class HTTPRequest { + private String baseURL; + private String method; + private SerializedBody body; + + private List queryParams = new ArrayList(); + private Map> headers = new HashMap>(); + + public HTTPRequest setMethod(String method) { + this.method = method; + return this; + } + + public HTTPRequest setURL(String url) { + this.baseURL = url; + return this; + } + + public HTTPRequest setBody(SerializedBody body) { + this.body = body; + return this; + } + + public HTTPRequest addHeader(String key, String value) { + List headerValues = this.headers.get(key); + if (headerValues == null) { + headerValues = new ArrayList(); + } + + headerValues.add(value); + this.headers.put(key, headerValues); + return this; + } + + public HTTPRequest addQueryParam(NameValuePair param) { + this.queryParams.add(param); + return this; + } + + public HttpRequest build() { + HttpRequest.Builder requestBuilder = HttpRequest.newBuilder(); + + BodyPublisher bodyPublisher = BodyPublishers.noBody(); + if (this.body != null) { + bodyPublisher = this.body.body; + requestBuilder.header("Content-Type", this.body.contentType); + } + + requestBuilder.method(this.method, bodyPublisher); + requestBuilder.uri(resolveURL()); + + for (Map.Entry> entry : this.headers.entrySet()) { + for (String value : entry.getValue()) { + requestBuilder.header(entry.getKey(), value); + } + } + + return requestBuilder.build(); + } + + private URI resolveURL() { + String url = this.baseURL; + if (this.queryParams != null && this.queryParams.size() > 0) { + url += "?" + URLEncodedUtils.format(this.queryParams, StandardCharsets.UTF_8); + } + return URI.create(url); + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HeaderMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HeaderMetadata.java new file mode 100644 index 00000000..c58efe1e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/HeaderMetadata.java @@ -0,0 +1,23 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; + +public class HeaderMetadata extends Metadata { + public String style = "simple"; + public boolean explode; + public String name; + + // headerParam:style=simple,explode=false,name=apiID + public static HeaderMetadata parse(Field field) throws IllegalArgumentException, IllegalAccessException { + HeaderMetadata result = new HeaderMetadata(); + result = (HeaderMetadata) parse("header", result, field); + return result; + } + + private HeaderMetadata() { + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/JSON.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/JSON.java new file mode 100644 index 00000000..6f7f1998 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/JSON.java @@ -0,0 +1,19 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class JSON { + public static ObjectMapper getMapper() { + ObjectMapper mapper = new ObjectMapper(); + mapper.findAndRegisterModules(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + return mapper; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Metadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Metadata.java new file mode 100644 index 00000000..2409a25e --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Metadata.java @@ -0,0 +1,78 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +public class Metadata { + protected static Object parse(String name, Object metadata, Field field) + throws IllegalArgumentException, IllegalAccessException { + SpeakeasyMetadata md = field.getAnnotation(SpeakeasyMetadata.class); + if (md == null) { + return null; + } + + String mdValue = md.value(); + + if (mdValue == null || mdValue.isBlank()) { + return null; + } + + String[] groups = mdValue.split(" "); + + boolean handled = false; + + for (String group : groups) { + String[] parts = group.split(":"); + if (parts.length != 2) { + return null; + } + + if (!parts[0].equals(name)) { + continue; + } + + Map values = new HashMap<>(); + + String[] pairs = parts[1].split(","); + for (String pair : pairs) { + String[] keyVal = pair.split("="); + String key = keyVal[0]; + + String val = ""; + if (keyVal.length > 1) { + val = keyVal[1]; + } + + values.put(key, val); + } + + Field[] fields = metadata.getClass().getFields(); + + for (Field f : fields) { + f.setAccessible(true); + if (values.containsKey(f.getName())) { + String val = values.get(f.getName()); + + if (f.getType().equals(boolean.class) || f.getType().equals(Boolean.class)) { + f.set(metadata, val.equals("true") || val.isBlank()); + } else { + f.set(metadata, val); + } + } + } + + handled = true; + } + + if (!handled) { + return null; + } + + return metadata; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/MultipartFormMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/MultipartFormMetadata.java new file mode 100644 index 00000000..d7b0e2b1 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/MultipartFormMetadata.java @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; + +public class MultipartFormMetadata extends Metadata { + public boolean file; + public boolean content; + public boolean json; + public String name; + + // multipartForm:name=file + public static MultipartFormMetadata parse(Field field) throws IllegalArgumentException, IllegalAccessException { + MultipartFormMetadata result = new MultipartFormMetadata(); + result = (MultipartFormMetadata) parse("multipartForm", result, field); + return result; + } + + private MultipartFormMetadata() { + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/PathParamsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/PathParamsMetadata.java new file mode 100644 index 00000000..b7964e86 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/PathParamsMetadata.java @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; + +public class PathParamsMetadata extends Metadata { + public String style = "simple"; + public boolean explode; + public String name; + public String serialization; + + // pathParam:style=simple,explode=false,name=apiID + public static PathParamsMetadata parse(Field field) throws IllegalArgumentException, IllegalAccessException { + PathParamsMetadata result = new PathParamsMetadata(); + result = (PathParamsMetadata) parse("pathParam", result, field); + return result; + } + + private PathParamsMetadata() { + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParameters.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParameters.java new file mode 100644 index 00000000..2172bc61 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParameters.java @@ -0,0 +1,220 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.apache.http.NameValuePair; +import org.apache.http.message.BasicNameValuePair; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class QueryParameters { + public static List parseQueryParams(Class type, T queryParams, + Map>> globals) throws Exception { + List allParams = new ArrayList<>(); + + Field[] fields = type.getFields(); + + for (Field field : fields) { + Object value = queryParams != null ? field.get(queryParams) : null; + value = Utils.populateGlobal(value, field.getName(), "queryParam", globals); + if (value == null) { + continue; + } + + QueryParamsMetadata queryParamsMetadata = QueryParamsMetadata.parse(field); + if (queryParamsMetadata == null) { + continue; + } + + if (queryParamsMetadata.serialization != null && !queryParamsMetadata.serialization.isBlank()) { + List params = parseSerializedParams(queryParamsMetadata, value); + allParams.addAll(params); + } else { + switch (queryParamsMetadata.style) { + case "form": + List formParams = parseDelimitedParams(queryParamsMetadata, value, ","); + allParams.addAll(formParams); + break; + case "deepObject": + List deepObjectParams = parseDeepObjectParams(queryParamsMetadata, value); + allParams.addAll(deepObjectParams); + break; + case "pipeDelimited": + List pipeDelimitedParams = parseDelimitedParams(queryParamsMetadata, value, "|"); + allParams.addAll(pipeDelimitedParams); + break; + } + } + } + + return allParams; + } + + private static List parseSerializedParams(QueryParamsMetadata queryParamsMetadata, Object value) + throws JsonProcessingException { + List params = new ArrayList<>(); + + switch (queryParamsMetadata.serialization) { + case "json": + ObjectMapper mapper = JSON.getMapper(); + String json = mapper.writeValueAsString(value); + + params.add(new BasicNameValuePair(queryParamsMetadata.name, json)); + break; + } + + return params; + } + + private static List parseDelimitedParams(QueryParamsMetadata queryParamsMetadata, Object value, String delimiter) + throws IllegalArgumentException, IllegalAccessException { + List params = new ArrayList<>(); + + switch (Types.getType(value.getClass())) { + case ARRAY: { + Object[] array = (Object[]) value; + + List values = new ArrayList<>(); + List items = new ArrayList<>(); + + for (Object v : array) { + if (queryParamsMetadata.explode) { + values.add(Utils.valToString(v)); + } else { + items.add(Utils.valToString(v)); + } + } + + if (items.size() > 0) { + values.add(String.join(delimiter, items)); + } + + params.addAll(values.stream().map(v -> new BasicNameValuePair(queryParamsMetadata.name, v)) + .collect(Collectors.toList())); + break; + } + case MAP: { + Map map = (Map) value; + + List items = new ArrayList<>(); + + for (Map.Entry entry : map.entrySet()) { + String key = Utils.valToString(entry.getKey()); + String val = Utils.valToString(entry.getValue()); + + if (queryParamsMetadata.explode) { + params.add(new BasicNameValuePair(key, val)); + } else { + items.add(String.format("%s%s%s", key, delimiter, val)); + } + } + + if (items.size() > 0) { + params.add(new BasicNameValuePair(queryParamsMetadata.name, String.join(delimiter, items))); + } + break; + } + case OBJECT: { + Field[] fields = value.getClass().getFields(); + + List items = new ArrayList<>(); + + for (Field field : fields) { + Object val = field.get(value); + if (val == null) { + continue; + } + + QueryParamsMetadata metadata = QueryParamsMetadata.parse(field); + if (metadata == null) { + continue; + } + + if (queryParamsMetadata.explode) { + params.add(new BasicNameValuePair(metadata.name, Utils.valToString(val))); + } else { + items.add(String.format("%s%s%s", metadata.name, delimiter, Utils.valToString(val))); + } + } + + if (items.size() > 0) { + params.add(new BasicNameValuePair(queryParamsMetadata.name, String.join(delimiter, items))); + } + break; + } + default: + params.add(new BasicNameValuePair(queryParamsMetadata.name, Utils.valToString(value))); + break; + } + + return params; + } + + private static List parseDeepObjectParams(QueryParamsMetadata queryParamsMetadata, Object value) + throws Exception { + List params = new ArrayList<>(); + + switch (Types.getType(value.getClass())) { + case MAP: { + Map map = (Map) value; + + for (Map.Entry entry : map.entrySet()) { + String key = Utils.valToString(entry.getKey()); + Object val = entry.getValue(); + + if (val.getClass().isArray()) { + for (Object v : (Object[]) val) { + params.add(new BasicNameValuePair(String.format("%s[%s]", queryParamsMetadata.name, key), + Utils.valToString(v))); + } + } else { + params.add(new BasicNameValuePair(String.format("%s[%s]", queryParamsMetadata.name, key), + Utils.valToString(val))); + } + } + + return params; + } + case OBJECT: { + Field[] fields = value.getClass().getFields(); + + for (Field field : fields) { + Object val = field.get(value); + if (val == null) { + continue; + } + + QueryParamsMetadata metadata = QueryParamsMetadata.parse(field); + if (metadata == null) { + continue; + } + + if (val.getClass().isArray()) { + for (Object v : (Object[]) val) { + params.add(new BasicNameValuePair( + String.format("%s[%s]", queryParamsMetadata.name, metadata.name), + Utils.valToString(v))); + } + } else { + params.add( + new BasicNameValuePair(String.format("%s[%s]", queryParamsMetadata.name, metadata.name), + Utils.valToString(val))); + } + } + + return params; + } + default: + throw new Exception("DeepObject style only supports Map and Object types"); + } + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParamsMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParamsMetadata.java new file mode 100644 index 00000000..47798797 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/QueryParamsMetadata.java @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; + +public class QueryParamsMetadata extends Metadata { + public String style = "form"; + public boolean explode = true; + public String name; + public String serialization; + + // queryParam:style=simple,explode=false,name=apiID + public static QueryParamsMetadata parse(Field field) throws IllegalArgumentException, IllegalAccessException { + QueryParamsMetadata result = new QueryParamsMetadata(); + result = (QueryParamsMetadata) parse("queryParam", result, field); + return result; + } + + private QueryParamsMetadata() { + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestBody.java new file mode 100644 index 00000000..fdd9b4bc --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestBody.java @@ -0,0 +1,335 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Field; +import java.net.http.HttpRequest.BodyPublishers; +import java.time.LocalDate; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.HttpMultipartMode; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.message.BasicNameValuePair; + +import com.fasterxml.jackson.databind.ObjectMapper; + +public class RequestBody { + private static final Map SERIALIZATION_METHOD_TO_CONTENT_TYPE = Map.of( + "json", "application/json", + "form", "application/x-www-form-urlencoded", + "multipart", "multipart/form-data", + "raw", "application/octet-stream", + "string", "text/plain"); + + public static SerializedBody serialize(Object request, String requestField, String serializationMethod) + throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException, + UnsupportedOperationException, IOException { + if (request == null) { + return null; + } + + if (Types.getType(request.getClass()) != Types.OBJECT) { + return serializeContentType(requestField, SERIALIZATION_METHOD_TO_CONTENT_TYPE.get(serializationMethod), + request); + } + + Field reqField = null; + + try { + reqField = request.getClass().getField(requestField); + } catch (NoSuchFieldException e) { + // ignore + } + if (reqField == null) { + return serializeContentType(requestField, SERIALIZATION_METHOD_TO_CONTENT_TYPE.get(serializationMethod), + request); + } + + Object requestValue = reqField.get(request); + + if (requestValue == null) { + return null; + } + + RequestMetadata requestMetadata = RequestMetadata.parse(reqField); + if (requestMetadata == null) { + throw new Error("Missing request metadata on request field"); + } + + return serializeContentType(requestField, requestMetadata.mediaType, requestValue); + } + + private static SerializedBody serializeContentType(String fieldName, String contentType, Object value) + throws IllegalArgumentException, IllegalAccessException, UnsupportedOperationException, IOException { + Pattern jsonPattern = Pattern.compile("(application|text)\\/.*?\\+*json.*"); + Pattern multipartPattern = Pattern.compile("multipart\\/.*"); + Pattern formPattern = Pattern.compile("application\\/x-www-form-urlencoded.*"); + Pattern textPattern = Pattern.compile("text\\/plain"); + + SerializedBody body = new SerializedBody(); + + if (textPattern.matcher(contentType).matches()) { + body.contentType = contentType; + body.body = BodyPublishers.ofString(value.toString()); + } else if (jsonPattern.matcher(contentType).matches()) { + ObjectMapper mapper = JSON.getMapper(); + body.contentType = contentType; + body.body = BodyPublishers.ofString(mapper.writeValueAsString(value)); + } else if (multipartPattern.matcher(contentType).matches()) { + body = serializeMultipart(value); + } else if (formPattern.matcher(contentType).matches()) { + body = serializeFormData(value); + } else { + if (value instanceof String) { + body.contentType = contentType; + body.body = BodyPublishers.ofString((String) value); + } else if (value instanceof byte[]) { + body.contentType = contentType; + body.body = BodyPublishers.ofByteArray((byte[]) value); + } else { + throw new Error("Unsupported content type " + contentType + " for field " + fieldName); + } + } + + return body; + } + + private static SerializedBody serializeMultipart(Object value) + throws IllegalArgumentException, IllegalAccessException, UnsupportedOperationException, IOException { + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + String boundary = "-------------" + System.currentTimeMillis(); + builder.setBoundary(boundary); + + Field[] fields = value.getClass().getFields(); + + for (Field field : fields) { + Object val = field.get(value); + + if (val == null) { + continue; + } + + MultipartFormMetadata metadata = MultipartFormMetadata.parse(field); + if (metadata == null) { + throw new Error("Missing multipart form metadata on field " + field.getName()); + } + + if (metadata.file) { + serializeMultipartFile(builder, val); + } else if (metadata.json) { + ObjectMapper mapper = JSON.getMapper(); + String json = mapper.writeValueAsString(val); + builder.addTextBody(metadata.name, json, ContentType.APPLICATION_JSON); + } else { + if (val.getClass().isArray()) { + Object[] arr = (Object[]) val; + for (Object item : arr) { + builder.addTextBody(metadata.name + "[]", Utils.valToString(item)); + } + } else { + builder.addTextBody(metadata.name, Utils.valToString(val)); + } + } + } + + HttpEntity entity = builder.build(); + + SerializedBody body = new SerializedBody(); + body.contentType = builder.build().getContentType().getValue(); + + InputStream stream = entity.getContent(); + + body.body = BodyPublishers.ofInputStream(() -> stream); + + return body; + } + + private static void serializeMultipartFile(MultipartEntityBuilder builder, Object file) + throws IllegalArgumentException, IllegalAccessException { + if (Types.getType(file.getClass()) != Types.OBJECT) { + throw new Error("Invalid type for multipart file"); + } + + String fieldName = ""; + String fileName = ""; + byte[] content = null; + + Field[] fields = file.getClass().getFields(); + + for (Field field : fields) { + Object val = field.get(file); + + if (val == null) { + continue; + } + + MultipartFormMetadata metadata = MultipartFormMetadata.parse(field); + if (metadata == null || (!metadata.content && (metadata.name == null || metadata.name.isBlank()))) { + continue; + } + + if (metadata.content) { + content = (byte[]) val; + } else { + fieldName = metadata.name; + fileName = Utils.valToString(val); + } + } + + if (fieldName.isBlank() || fileName.isBlank() || content == null) { + throw new Error("Invalid multipart file"); + } + + builder.addBinaryBody(fieldName, content, ContentType.APPLICATION_OCTET_STREAM, fileName); + } + + private static SerializedBody serializeFormData(Object value) + throws IOException, IllegalArgumentException, IllegalAccessException { + List params = new ArrayList(); + + switch (Types.getType(value.getClass())) { + case MAP: + Map map = (Map) value; + + for (Map.Entry entry : map.entrySet()) { + params.add( + new BasicNameValuePair(Utils.valToString(entry.getKey()), + Utils.valToString(entry.getValue()))); + } + break; + case OBJECT: + Field[] fields = value.getClass().getFields(); + + for (Field field : fields) { + Object val = field.get(value); + + if (val == null) { + continue; + } + + FormMetadata metadata = FormMetadata.parse(field); + if (metadata == null) { + continue; + } + + if (metadata.json) { + ObjectMapper mapper = JSON.getMapper(); + String json = mapper.writeValueAsString(val); + params.add(new BasicNameValuePair(metadata.name, json)); + } else { + switch (Types.getType(val.getClass())) { + case OBJECT: { + if (val.getClass() == LocalDate.class) { + params.add(new BasicNameValuePair(metadata.name, String.valueOf(val))); + } else if (val.getClass() == OffsetDateTime.class) { + params.add(new BasicNameValuePair(metadata.name, String.valueOf(val))); + } else { + + Field[] valFields = val.getClass().getFields(); + + List items = new ArrayList(); + + for (Field valField : valFields) { + Object v = valField.get(val); + if (v == null) { + continue; + } + + FormMetadata valMetadata = FormMetadata.parse(valField); + if (valMetadata == null) { + continue; + } + + if (metadata.explode) { + params.add(new BasicNameValuePair(valMetadata.name, + Utils.valToString(v))); + } else { + items.add(String.format("%s,%s", valMetadata.name, + Utils.valToString(v))); + } + } + + if (items.size() > 0) { + params.add(new BasicNameValuePair(metadata.name, String.join(",", items))); + } + } + break; + } + case MAP: { + Map valMap = (Map) val; + + List items = new ArrayList(); + + for (Map.Entry entry : valMap.entrySet()) { + if (metadata.explode) { + params.add(new BasicNameValuePair(Utils.valToString(entry.getKey()), + Utils.valToString(entry.getValue()))); + } else { + items.add(String.format("%s,%s", entry.getKey(), entry.getValue())); + } + } + + if (items.size() > 0) { + params.add(new BasicNameValuePair(metadata.name, String.join(",", items))); + } + + break; + } + case ARRAY: { + Object[] arr = (Object[]) val; + + List items = new ArrayList(); + + for (Object item : arr) { + if (metadata.explode) { + params.add(new BasicNameValuePair(metadata.name, Utils.valToString(item))); + } else { + items.add(Utils.valToString(item)); + } + } + + if (items.size() > 0) { + params.add(new BasicNameValuePair(metadata.name, String.join(",", items))); + } + + break; + } + default: + params.add(new BasicNameValuePair(metadata.name, Utils.valToString(val))); + break; + } + } + } + break; + default: + throw new Error("Invalid type for form data"); + } + + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params); + + SerializedBody body = new SerializedBody(); + body.contentType = entity.getContentType().getValue(); + + InputStream stream = entity.getContent(); + + body.body = BodyPublishers.ofInputStream(() -> stream); + + return body; + } + + private RequestBody() { + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestMetadata.java new file mode 100644 index 00000000..34184e0a --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/RequestMetadata.java @@ -0,0 +1,21 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; + +public class RequestMetadata extends Metadata { + public String mediaType = "application/octet-stream"; + + // request:mediaType=multipart/form-data + public static RequestMetadata parse(Field field) throws IllegalArgumentException, IllegalAccessException { + RequestMetadata result = new RequestMetadata(); + result = (RequestMetadata) parse("request", result, field); + return result; + } + + private RequestMetadata() { + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Security.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Security.java new file mode 100644 index 00000000..fba36923 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Security.java @@ -0,0 +1,179 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; +import java.util.Base64; + +import org.apache.http.message.BasicNameValuePair; + +public class Security { + public static SpeakeasyHTTPSecurityClient createClient(HTTPClient client, Object security) + throws Exception { + + SpeakeasyHTTPSecurityClient securityClient = new SpeakeasyHTTPSecurityClient(client); + + if (security != null) { + Field[] fields = security.getClass().getFields(); + + for (Field field : fields) { + Object value = field.get(security); + if (value == null) { + continue; + } + + SecurityMetadata securityMetadata = SecurityMetadata.parse(field); + if (securityMetadata == null) { + continue; + } + + if (securityMetadata.option) { + parseSecurityOption(securityClient, value); + return securityClient; + } else if (securityMetadata.scheme) { + if ((securityMetadata.subtype != null && securityMetadata.subtype.equals("basic")) + && Types.getType(value.getClass()) != Types.OBJECT) { + parseSecurityScheme(securityClient, securityMetadata, security); + return securityClient; + } else { + parseSecurityScheme(securityClient, securityMetadata, value); + } + } + } + } + + return securityClient; + } + + private static void parseSecurityOption(SpeakeasyHTTPSecurityClient client, Object option) + throws Exception { + Field[] fields = option.getClass().getFields(); + + for (Field field : fields) { + Object value = field.get(option); + + if (value == null) { + continue; + } + + SecurityMetadata securityMetadata = SecurityMetadata.parse(field); + if (securityMetadata == null || !securityMetadata.scheme) { + continue; + } + + parseSecurityScheme(client, securityMetadata, value); + } + } + + private static void parseSecurityScheme(SpeakeasyHTTPSecurityClient client, SecurityMetadata schemeMetadata, + Object scheme) throws Exception { + + if (Types.getType(scheme.getClass()) == Types.OBJECT) { + if (schemeMetadata.type.equals("http") && schemeMetadata.subtype.equals("basic")) { + parseBasicAuthScheme(client, scheme); + return; + } + + Field[] fields = scheme.getClass().getFields(); + + for (Field field : fields) { + Object value = field.get(scheme); + + if (value == null) { + continue; + } + + SecurityMetadata securityMetadata = SecurityMetadata.parse(field); + if (securityMetadata == null || securityMetadata.name.isEmpty()) { + continue; + } + + parseSecuritySchemeValue(client, schemeMetadata, securityMetadata, value); + } + } else { + parseSecuritySchemeValue(client, schemeMetadata, schemeMetadata, scheme); + } + } + + private static void parseSecuritySchemeValue(SpeakeasyHTTPSecurityClient client, SecurityMetadata schemeMetadata, + SecurityMetadata securityMetadata, + Object value) throws Exception { + switch (schemeMetadata.type) { + case "apiKey": + switch (schemeMetadata.subtype) { + case "header": + client.addHeader(securityMetadata.name, Utils.valToString(value)); + break; + case "query": + client.addQueryParam( + new BasicNameValuePair(securityMetadata.name, Utils.valToString(value))); + break; + case "cookie": + client.addHeader("Cookie", + String.format("%s=%s", securityMetadata.name, Utils.valToString(value))); + break; + default: + throw new Error( + "Unsupported security scheme subtype for apiKey: " + securityMetadata.subtype); + } + break; + case "openIdConnect": + client.addHeader(securityMetadata.name, Utils.valToString(value)); + break; + case "oauth2": + client.addHeader(securityMetadata.name, Utils.valToString(value)); + break; + case "http": + switch (schemeMetadata.subtype) { + case "bearer": + client.addHeader(securityMetadata.name, Utils.prefixBearer(Utils.valToString(value))); + break; + default: + throw new Error("Unsupported security scheme subtype for bearer"); + } + break; + default: + throw new Error("Unsupported security scheme type"); + } + } + + private static void parseBasicAuthScheme(SpeakeasyHTTPSecurityClient client, Object scheme) + throws IllegalAccessException { + Field[] fields = scheme.getClass().getFields(); + + String username = ""; + String password = ""; + + for (Field field : fields) { + Object value = field.get(scheme); + + if (value == null) { + continue; + } + + SecurityMetadata securityMetadata = SecurityMetadata.parse(field); + if (securityMetadata == null || securityMetadata.name.isEmpty()) { + continue; + } + + switch (securityMetadata.name) { + case "username": + username = Utils.valToString(value); + break; + case "password": + password = Utils.valToString(value); + break; + default: + throw new Error("Unsupported security scheme field for basic auth: " + securityMetadata.name); + } + } + + client.addHeader("Authorization", + "Basic " + Base64.getEncoder().encodeToString(String.format("%s:%s", username, password).getBytes())); + } + + private Security() { + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SecurityMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SecurityMetadata.java new file mode 100644 index 00000000..da25c9bd --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SecurityMetadata.java @@ -0,0 +1,25 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.reflect.Field; + +public class SecurityMetadata extends Metadata { + public String type; + public String subtype; + public boolean option; + public boolean scheme; + public String name; + + // security:scheme=true,type=apiKey,subtype=header + public static SecurityMetadata parse(Field field) throws IllegalArgumentException, IllegalAccessException { + SecurityMetadata result = new SecurityMetadata(); + result = (SecurityMetadata) parse("security", result, field); + return result; + } + + private SecurityMetadata() { + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SerializedBody.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SerializedBody.java new file mode 100644 index 00000000..ee06b249 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SerializedBody.java @@ -0,0 +1,12 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.net.http.HttpRequest.BodyPublisher; + +public class SerializedBody { + public String contentType; + public BodyPublisher body; +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPClient.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPClient.java new file mode 100644 index 00000000..c03d6334 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPClient.java @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; + +public class SpeakeasyHTTPClient implements HTTPClient { + @Override + public HttpResponse send(HTTPRequest request) + throws IOException, InterruptedException, URISyntaxException { + HttpClient client = HttpClient.newHttpClient(); + + HttpRequest req = request.build(); + + HttpResponse response = client.send(req, HttpResponse.BodyHandlers.ofByteArray()); + return response; + } +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPSecurityClient.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPSecurityClient.java new file mode 100644 index 00000000..ab215dd6 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPSecurityClient.java @@ -0,0 +1,60 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.http.HttpResponse; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.http.NameValuePair; + +public class SpeakeasyHTTPSecurityClient + implements HTTPClient { + + private HTTPClient client; + + private List queryParams = new ArrayList(); + private Map> headers = new HashMap>(); + + public SpeakeasyHTTPSecurityClient(HTTPClient client) { + this.client = client; + } + + @Override + public HttpResponse send(HTTPRequest request) + throws IOException, InterruptedException, URISyntaxException { + + for (Map.Entry> entry : this.headers.entrySet()) { + for (String value : entry.getValue()) { + request.addHeader(entry.getKey(), value); + } + } + + for (NameValuePair param : this.queryParams) { + request.addQueryParam(param); + } + + return this.client.send(request); + } + + public void addHeader(String key, String value) { + List headerValues = this.headers.get(key); + if (headerValues == null) { + headerValues = new ArrayList(); + } + + headerValues.add(value); + this.headers.put(key, headerValues); + } + + public void addQueryParam(NameValuePair param) { + this.queryParams.add(param); + } + +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyMetadata.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyMetadata.java new file mode 100644 index 00000000..b735818b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyMetadata.java @@ -0,0 +1,16 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface SpeakeasyMetadata { + public String value() default ""; +} diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Types.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Types.java new file mode 100644 index 00000000..e9f2df09 --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Types.java @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public enum Types { + PRIMITIVE, + ARRAY, + MAP, + OBJECT, + ENUM; + + private static final Set> PRIMITIVE_TYPES = getPrimitiveWrapperTypes(); + + public static Types getType(Class clazz) { + if (clazz.isArray()) { + return Types.ARRAY; + } else if (Map.class.isAssignableFrom(clazz)) { + return Types.MAP; + } else if (clazz.isEnum()) { + return Types.ENUM; + } else if (isPrimitiveWrapperTypes(clazz) || clazz.isPrimitive() || String.class.isAssignableFrom(clazz)) { + return Types.PRIMITIVE; + } else { + return Types.OBJECT; + } + } + + private static boolean isPrimitiveWrapperTypes(Class clazz) { + return PRIMITIVE_TYPES.contains(clazz); + } + + private static Set> getPrimitiveWrapperTypes() { + Set> ret = new HashSet>(); + ret.add(Boolean.class); + ret.add(Character.class); + ret.add(Byte.class); + ret.add(Short.class); + ret.add(Integer.class); + ret.add(Long.class); + ret.add(Float.class); + ret.add(Double.class); + ret.add(Void.class); + return ret; + } +} \ No newline at end of file diff --git a/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Utils.java b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Utils.java new file mode 100644 index 00000000..57c2ab8b --- /dev/null +++ b/lib/src/main/java/lukehagar/plexapi/plexapi/utils/Utils.java @@ -0,0 +1,368 @@ +/* + * Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. + */ + +package lukehagar.plexapi.plexapi.utils; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import org.apache.http.NameValuePair; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public final class Utils { + public static String generateURL(String baseURL, String path) + throws IllegalArgumentException, IllegalAccessException { + if (baseURL != null && baseURL.endsWith("/")) { + baseURL = baseURL.split("/")[0]; + } + + return baseURL + path; + } + + public static String generateURL(Class type, String baseURL, String path, T params, + Map>> globals) + throws IllegalArgumentException, IllegalAccessException, JsonProcessingException { + if (baseURL != null && baseURL.endsWith("/")) { + baseURL = baseURL.split("/")[0]; + } + + Map pathParams = new HashMap<>(); + + Field[] fields = type.getFields(); + + for (Field field : fields) { + PathParamsMetadata pathParamsMetadata = PathParamsMetadata.parse(field); + if (pathParamsMetadata == null) { + continue; + } + + Object value = params != null ? field.get(params) : null; + value = Utils.populateGlobal(value, field.getName(), "pathParam", globals); + if (value == null) { + continue; + } + + if (pathParamsMetadata.serialization != null && !pathParamsMetadata.serialization.isBlank()) { + Map serialized = parseSerializedParams(pathParamsMetadata, value); + pathParams.putAll(serialized); + } else { + switch (pathParamsMetadata.style) { + case "simple": + switch (Types.getType(value.getClass())) { + case ARRAY: + Object[] array = (Object[]) value; + if (array.length == 0) { + continue; + } + + pathParams.put(pathParamsMetadata.name, + String.join(",", + Arrays.asList(array).stream().map(v -> Utils.valToString(v)) + .collect(Collectors.toList()))); + break; + case MAP: + Map map = (Map) value; + if (map.size() == 0) { + continue; + } + + pathParams.put(pathParamsMetadata.name, + String.join(",", map.entrySet().stream().map(e -> { + if (pathParamsMetadata.explode) { + return String.format("%s=%s", Utils.valToString(e.getKey()), + Utils.valToString(e.getValue())); + } else { + return String.format("%s,%s", Utils.valToString(e.getKey()), + Utils.valToString(e.getValue())); + } + }).collect(Collectors.toList()))); + break; + case OBJECT: + List values = new ArrayList(); + + Field[] valueFields = value.getClass().getFields(); + for (Field valueField : valueFields) { + PathParamsMetadata valuePathParamsMetadata = PathParamsMetadata.parse(valueField); + if (valuePathParamsMetadata == null) { + continue; + } + + Object val = valueField.get(value); + + if (val == null) { + continue; + } + + if (pathParamsMetadata.explode) { + values.add(String.format("%s=%s", valuePathParamsMetadata.name, + Utils.valToString(val))); + } else { + values.add(String.format("%s,%s", valuePathParamsMetadata.name, + Utils.valToString(val))); + } + } + + pathParams.put(pathParamsMetadata.name, String.join(",", values)); + break; + default: + pathParams.put(pathParamsMetadata.name, Utils.valToString(value)); + break; + } + } + } + } + + return baseURL + templateUrl(path, pathParams); + } + + public static boolean matchContentType(String contentType, String pattern) { + if (contentType == null || contentType.isBlank()) { + return false; + } + + if (contentType.equals(pattern) || pattern.equals("*") || pattern.equals("*/*")) { + return true; + } + + String[] contentTypeParts = contentType.split(";"); + if (contentTypeParts.length == 0) { + return false; + } + String mediaType = contentTypeParts[0]; + + if (mediaType.equals(pattern)) { + return true; + } + + String[] mediaTypeParts = mediaType.split("/"); + if (mediaTypeParts.length == 2) { + if (String.format("%s/*", mediaTypeParts[0]).equals(pattern) + || String.format("*/%s", mediaTypeParts[1]).equals(pattern)) { + return true; + } + } + + return false; + } + + public static SerializedBody serializeRequestBody(Object request, String requestField, String serializationMethod) + throws NoSuchFieldException, + IllegalArgumentException, IllegalAccessException, UnsupportedOperationException, IOException { + return RequestBody.serialize(request, requestField, serializationMethod); + } + + public static List getQueryParams(Class type, T params, + Map>> globals) throws Exception { + return QueryParameters.parseQueryParams(type, params, globals); + } + + public static HTTPClient configureSecurityClient(HTTPClient client, Object security) throws Exception { + return Security.createClient(client, security); + } + + public static String templateUrl(String url, Map params) { + StringBuilder sb = new StringBuilder(); + + Pattern p = Pattern.compile("(\\{.*?\\})"); + Matcher m = p.matcher(url); + + while (m.find()) { + String match = m.group(1); + String key = match.substring(1, match.length() - 1); + String value = params.get(key); + if (value != null) { + m.appendReplacement(sb, value); + } + } + m.appendTail(sb); + + return sb.toString(); + } + + public static Map> getHeaders(Object headers) throws Exception { + if (headers == null) { + return null; + } + + Map> result = new HashMap<>(); + + Field[] fields = headers.getClass().getFields(); + + for (Field field : fields) { + HeaderMetadata headerMetadata = HeaderMetadata.parse(field); + if (headerMetadata == null) { + continue; + } + + Object value = field.get(headers); + if (value == null) { + continue; + } + + switch (Types.getType(value.getClass())) { + case OBJECT: { + List items = new ArrayList(); + + Field[] valueFields = value.getClass().getFields(); + for (Field valueField : valueFields) { + HeaderMetadata valueHeaderMetadata = HeaderMetadata.parse(valueField); + if (valueHeaderMetadata == null || valueHeaderMetadata.name == null + || valueHeaderMetadata.name.isBlank()) { + continue; + } + + Object valueFieldValue = valueField.get(value); + if (valueFieldValue == null) { + continue; + } + + if (headerMetadata.explode) { + items.add( + String.format("%s=%s", valueHeaderMetadata.name, + Utils.valToString(valueFieldValue))); + } else { + items.add(valueHeaderMetadata.name); + items.add(Utils.valToString(valueFieldValue)); + } + } + + if (!result.containsKey(headerMetadata.name)) { + result.put(headerMetadata.name, new ArrayList()); + } + + List values = result.get(headerMetadata.name); + values.add(String.join(",", items)); + + break; + } + case MAP: { + Map map = (Map) value; + if (map.size() == 0) { + continue; + } + + List items = new ArrayList(); + + for (Map.Entry entry : map.entrySet()) { + if (headerMetadata.explode) { + items.add(String.format("%s=%s", Utils.valToString(entry.getKey()), + Utils.valToString(entry.getValue()))); + } else { + items.add(Utils.valToString(entry.getKey())); + items.add(Utils.valToString(entry.getValue())); + } + } + + if (!result.containsKey(headerMetadata.name)) { + result.put(headerMetadata.name, new ArrayList()); + } + + List values = result.get(headerMetadata.name); + values.add(String.join(",", items)); + + break; + } + case ARRAY: { + Object[] array = (Object[]) value; + + if (array.length == 0) { + continue; + } + + List items = new ArrayList(); + + for (Object item : array) { + items.add(Utils.valToString(item)); + } + + if (!result.containsKey(headerMetadata.name)) { + result.put(headerMetadata.name, new ArrayList()); + } + + List values = result.get(headerMetadata.name); + values.add(String.join(",", items)); + + break; + } + default: { + if (!result.containsKey(headerMetadata.name)) { + result.put(headerMetadata.name, new ArrayList()); + } + + List values = result.get(headerMetadata.name); + values.add(Utils.valToString(value)); + break; + } + } + } + + return result; + } + + public static String valToString(Object value) { + switch (Types.getType(value.getClass())) { + case ENUM: + try { + return String.valueOf(value.getClass().getDeclaredField("value").get(value)); + } catch (Exception e) { + return "ERROR_UNKNOWN_VALUE"; + } + default: + return String.valueOf(value); + } + } + + public static String prefixBearer(String authHeaderValue) { + if (authHeaderValue.toLowerCase().startsWith("bearer ")) { + return authHeaderValue; + } + return "Bearer " + authHeaderValue; + } + + public static Object populateGlobal(Object value, String fieldName, String paramType, + Map>> globals) { + if (value == null && + globals != null && + globals.containsKey("parameters") && + globals.get("parameters").containsKey(paramType)) { + Object globalVal = globals.get("parameters").get(paramType).get(fieldName); + if (globalVal != null) { + value = globalVal; + } + } + + return value; + } + + private static Map parseSerializedParams(PathParamsMetadata pathParamsMetadata, Object value) + throws JsonProcessingException { + Map params = new HashMap<>(); + + switch (pathParamsMetadata.serialization) { + case "json": + ObjectMapper mapper = JSON.getMapper(); + String json = mapper.writeValueAsString(value); + + params.put(pathParamsMetadata.name, URLEncoder.encode(json, StandardCharsets.UTF_8)); + break; + } + + return params; + } + + private Utils() { + } +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..51404886 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,11 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * + * Detailed information about configuring a multi-project build in Gradle can be found + * in the user manual at https://docs.gradle.org/7.5.1/userguide/multi_project_builds.html + */ + +rootProject.name = 'plexapi' +include('lib')