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
new file mode 100644
index 00000000..df0a9853
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+# Ignore Gradle project-specific cache directory
+.gradle
+# Ignore Gradle build output directory
+build
+bin/
+# Ignore IDE-specific configs
+.project
+.settings/
+.DS_Store
diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
new file mode 100755
index 00000000..4c41b55f
--- /dev/null
+++ b/.speakeasy/gen.lock
@@ -0,0 +1,1072 @@
+lockVersion: 2.0.0
+id: 1732900d-e173-47c1-a90d-d45182eb35d9
+management:
+ docChecksum: e73920abd3a55e8d249592f2e3090574
+ docVersion: 0.0.3
+ speakeasyVersion: 1.323.0
+ generationVersion: 2.356.0
+ releaseVersion: 0.1.1
+ configChecksum: 32d07b03c4a1b8364852e49423957f33
+features:
+ java:
+ additionalDependencies: 0.1.0
+ constsAndDefaults: 0.1.1
+ core: 3.26.1
+ flattening: 2.81.1
+ globalSecurity: 2.82.5
+ globalSecurityCallbacks: 0.1.0
+ globalSecurityFlattening: 0.1.0
+ globalServerURLs: 2.82.1
+ globals: 2.82.1
+ methodServerURLs: 2.82.1
+ nameOverrides: 2.81.3
+ nullables: 0.1.0
+ sdkHooks: 0.1.0
+ typeOverrides: 2.81.1
+ unions: 0.0.4
+generatedFiles:
+ - src/main/java/lukehagar/plexapi/plexapi/SecuritySource.java
+ - src/main/java/lukehagar/plexapi/plexapi/SDKConfiguration.java
+ - src/main/java/lukehagar/plexapi/plexapi/Server.java
+ - src/main/java/lukehagar/plexapi/plexapi/Media.java
+ - src/main/java/lukehagar/plexapi/plexapi/Video.java
+ - src/main/java/lukehagar/plexapi/plexapi/Activities.java
+ - src/main/java/lukehagar/plexapi/plexapi/Butler.java
+ - src/main/java/lukehagar/plexapi/plexapi/Plex.java
+ - src/main/java/lukehagar/plexapi/plexapi/Hubs.java
+ - src/main/java/lukehagar/plexapi/plexapi/Search.java
+ - src/main/java/lukehagar/plexapi/plexapi/Library.java
+ - src/main/java/lukehagar/plexapi/plexapi/Log.java
+ - src/main/java/lukehagar/plexapi/plexapi/Playlists.java
+ - src/main/java/lukehagar/plexapi/plexapi/Authentication.java
+ - src/main/java/lukehagar/plexapi/plexapi/Statistics.java
+ - src/main/java/lukehagar/plexapi/plexapi/Sessions.java
+ - src/main/java/lukehagar/plexapi/plexapi/Updater.java
+ - src/main/java/lukehagar/plexapi/plexapi/Watchlist.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetHomeDataRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResourcesStatisticsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetBandwidthStatisticsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetWatchlistRequestBuilder.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/SDKMethodInterfaces.java
+ - src/main/java/lukehagar/plexapi/plexapi/PlexAPI.java
+ - .gitattributes
+ - build.gradle
+ - gradle/wrapper/gradle-wrapper.jar
+ - gradle/wrapper/gradle-wrapper.properties
+ - gradlew
+ - gradlew.bat
+ - settings.gradle
+ - src/main/java/lukehagar/plexapi/plexapi/utils/BackoffStrategy.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/BigDecimalString.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/BigIntegerString.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Deserializers.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/EventStream.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/EventStreamLineReader.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/EventStreamMessage.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/EventStreamReader.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/FormMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/HTTPClient.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/HTTPRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/HeaderMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Helpers.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Hook.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Hooks.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/JSON.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/LazySingletonValue.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Metadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/MultipartFormMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/OneOfDeserializer.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Options.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/PathParamsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/QueryParameters.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/QueryParamsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/RequestBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/RequestMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Response.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Retries.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/RetryConfig.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Security.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/SecurityMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/SerializedBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyHTTPClient.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/SpeakeasyMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/TypedObject.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Types.java
+ - src/main/java/lukehagar/plexapi/plexapi/utils/Utils.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/AuthException.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/SDKError.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Directory.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerCapabilitiesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Setting.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerPreferencesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Server.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetAvailableClientsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Device.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetDevicesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerIdentityResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MyPlex.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMyPlexAccountResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MinSize.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Upscale.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResizedPhotoResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListServer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerListResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkPlayedResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/MarkUnplayedResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlayProgressResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/State.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTimelineResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartUniversalTranscodeResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Context.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Activity.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetServerActivitiesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CancelServerActivitiesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTask.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ButlerTasks.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetButlerTasksResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartAllTasksResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopAllTasksResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/TaskName.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StartTaskResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PathParamTaskName.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTaskResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetHomeDataResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetHomeDataResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Location.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPinResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenLocation.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTokenResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/OnlyTransient.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Hub.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetGlobalHubsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamOnlyTransient.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsPart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsGenre.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsCountry.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsDirector.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsRole.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsWriter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsHub.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryHubsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformSearchResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PerformVoiceSearchResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsPart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsGenre.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsDirector.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsWriter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsCountry.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsRole.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Provider.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSearchResultsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetFileHashResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Part.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Media.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Genre.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Director.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Writer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Country.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Role.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetRecentlyAddedResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesLocation.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesDirectory.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibrariesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeDetails.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryDirectory.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryFilter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Sort.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Field.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryType.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Operator.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/FieldType.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/DeleteLibraryResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Tag.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/LibrarySectionID.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsPart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsGenre.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsCountry.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsDirector.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsWriter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsRole.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetLibraryItemsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/RefreshLibraryResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Type.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/SearchLibraryResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Stream.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataPart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataGenre.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataCountry.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Guids.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Ratings.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataDirector.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataWriter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataRole.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Producer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenDirectory.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetMetadataChildrenResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentGenre.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentCountry.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentGuids.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentRole.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/User.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTopWatchedContentResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckStream.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckPart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckGuids.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetOnDeckResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Level.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/LogLineResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/LogMultiLineResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/EnablePaperTrailResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamType.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Smart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CreatePlaylistResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PlaylistType.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/QueryParamSmart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/DeletePlaylistResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UpdatePlaylistResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsPart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsGenre.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsCountry.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsDirector.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsWriter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsRole.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetPlaylistContentsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ClearPlaylistContentsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/AddPlaylistContentsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Force.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/UploadPlaylistResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenQueryParamType.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Scope.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTransientTokenResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSourceConnectionInformationResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsDevice.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Account.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetStatisticsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResourcesStatisticsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsResources.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResourcesStatisticsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResourcesStatisticsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetResourcesStatisticsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetBandwidthStatisticsRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetBandwidthStatisticsDevice.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetBandwidthStatisticsAccount.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StatisticsBandwidth.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetBandwidthStatisticsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetBandwidthStatisticsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetBandwidthStatisticsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsStream.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsPart.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsUser.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Player.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Session.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Filter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMetadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetSessionHistoryResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/TranscodeSession.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetTranscodeSessionsResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/StopTranscodeSessionResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Release.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusMediaContainer.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetUpdateStatusResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Download.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/CheckForUpdatesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Tonight.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Skip.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/ApplyUpdatesResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/PathParamFilter.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Libtype.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeCollections.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/IncludeExternalMedia.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetWatchlistRequest.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Image.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/Metadata.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetWatchlistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/operations/GetWatchlistResponse.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/Errors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerCapabilitiesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerPreferencesErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerPreferencesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetAvailableClientsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetAvailableClientsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetDevicesErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetDevicesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerIdentityErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerIdentityResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetMyPlexAccountErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetMyPlexAccountResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetResizedPhotoErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetResizedPhotoResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerListErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerListResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/MarkPlayedErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/MarkPlayedResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/MarkUnplayedErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/MarkUnplayedResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/UpdatePlayProgressErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/UpdatePlayProgressResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTimelineErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTimelineResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StartUniversalTranscodeErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StartUniversalTranscodeResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerActivitiesErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetServerActivitiesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/CancelServerActivitiesErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/CancelServerActivitiesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetButlerTasksErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetButlerTasksResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StartAllTasksErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StartAllTasksResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StopAllTasksErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StopAllTasksResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StartTaskErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StartTaskResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StopTaskErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StopTaskResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetHomeDataErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetHomeDataResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPinErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPinResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTokenErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTokenResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetGlobalHubsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetGlobalHubsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibraryHubsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibraryHubsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/PerformSearchErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/PerformSearchResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/PerformVoiceSearchErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/PerformVoiceSearchResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSearchResultsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSearchResultsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetFileHashErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetFileHashResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetRecentlyAddedErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetRecentlyAddedResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibrariesErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibrariesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibraryErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibraryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/DeleteLibraryErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/DeleteLibraryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibraryItemsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetLibraryItemsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/RefreshLibraryErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/RefreshLibraryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/SearchLibraryErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/SearchLibraryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetMetadataErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetMetadataResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetMetadataChildrenErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetMetadataChildrenResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetOnDeckErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetOnDeckResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/LogLineErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/LogLineResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/LogMultiLineErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/LogMultiLineResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/EnablePaperTrailErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/EnablePaperTrailResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/CreatePlaylistErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/CreatePlaylistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPlaylistsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPlaylistsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPlaylistErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPlaylistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/DeletePlaylistErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/DeletePlaylistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/UpdatePlaylistErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/UpdatePlaylistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPlaylistContentsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetPlaylistContentsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/ClearPlaylistContentsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/ClearPlaylistContentsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/AddPlaylistContentsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/AddPlaylistContentsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/UploadPlaylistErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/UploadPlaylistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTransientTokenErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTransientTokenResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSourceConnectionInformationErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSourceConnectionInformationResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetStatisticsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetStatisticsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetResourcesStatisticsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetResourcesStatisticsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetBandwidthStatisticsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetBandwidthStatisticsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSessionsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSessionsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSessionHistoryErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetSessionHistoryResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTranscodeSessionsErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetTranscodeSessionsResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StopTranscodeSessionErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/StopTranscodeSessionResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetUpdateStatusErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetUpdateStatusResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/CheckForUpdatesErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/CheckForUpdatesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/ApplyUpdatesErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/ApplyUpdatesResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetWatchlistErrors.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/errors/GetWatchlistResponseBody.java
+ - src/main/java/lukehagar/plexapi/plexapi/models/shared/Security.java
+ - docs/models/operations/Directory.md
+ - docs/models/operations/MediaContainer.md
+ - docs/models/operations/GetServerCapabilitiesResponseBody.md
+ - docs/models/operations/GetServerCapabilitiesResponse.md
+ - docs/models/operations/Setting.md
+ - docs/models/operations/GetServerPreferencesMediaContainer.md
+ - docs/models/operations/GetServerPreferencesResponseBody.md
+ - docs/models/operations/GetServerPreferencesResponse.md
+ - docs/models/operations/Server.md
+ - docs/models/operations/GetAvailableClientsMediaContainer.md
+ - docs/models/operations/GetAvailableClientsResponseBody.md
+ - docs/models/operations/GetAvailableClientsResponse.md
+ - docs/models/operations/Device.md
+ - docs/models/operations/GetDevicesMediaContainer.md
+ - docs/models/operations/GetDevicesResponseBody.md
+ - docs/models/operations/GetDevicesResponse.md
+ - docs/models/operations/GetServerIdentityMediaContainer.md
+ - docs/models/operations/GetServerIdentityResponseBody.md
+ - docs/models/operations/GetServerIdentityResponse.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/GetResizedPhotoResponse.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/MarkPlayedResponse.md
+ - docs/models/operations/MarkUnplayedRequest.md
+ - docs/models/operations/MarkUnplayedResponse.md
+ - docs/models/operations/UpdatePlayProgressRequest.md
+ - docs/models/operations/UpdatePlayProgressResponse.md
+ - docs/models/operations/State.md
+ - docs/models/operations/GetTimelineRequest.md
+ - docs/models/operations/GetTimelineResponse.md
+ - docs/models/operations/StartUniversalTranscodeRequest.md
+ - docs/models/operations/StartUniversalTranscodeResponse.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/CancelServerActivitiesResponse.md
+ - docs/models/operations/ButlerTask.md
+ - docs/models/operations/ButlerTasks.md
+ - docs/models/operations/GetButlerTasksResponseBody.md
+ - docs/models/operations/GetButlerTasksResponse.md
+ - docs/models/operations/StartAllTasksResponse.md
+ - docs/models/operations/StopAllTasksResponse.md
+ - docs/models/operations/TaskName.md
+ - docs/models/operations/StartTaskRequest.md
+ - docs/models/operations/StartTaskResponse.md
+ - docs/models/operations/PathParamTaskName.md
+ - docs/models/operations/StopTaskRequest.md
+ - docs/models/operations/StopTaskResponse.md
+ - docs/models/operations/GetHomeDataResponseBody.md
+ - docs/models/operations/GetHomeDataResponse.md
+ - docs/models/operations/GetPinRequest.md
+ - docs/models/operations/Location.md
+ - docs/models/operations/GetPinResponseBody.md
+ - docs/models/operations/GetPinResponse.md
+ - docs/models/operations/GetTokenRequest.md
+ - docs/models/operations/GetTokenLocation.md
+ - docs/models/operations/GetTokenResponseBody.md
+ - docs/models/operations/GetTokenResponse.md
+ - docs/models/operations/OnlyTransient.md
+ - docs/models/operations/GetGlobalHubsRequest.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/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/PerformSearchResponse.md
+ - docs/models/operations/PerformVoiceSearchRequest.md
+ - docs/models/operations/PerformVoiceSearchResponse.md
+ - docs/models/operations/GetSearchResultsRequest.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/GetFileHashResponse.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/GetRecentlyAddedMetadata.md
+ - docs/models/operations/GetRecentlyAddedMediaContainer.md
+ - docs/models/operations/GetRecentlyAddedResponseBody.md
+ - docs/models/operations/GetRecentlyAddedResponse.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/GetLibraryDirectory.md
+ - docs/models/operations/GetLibraryFilter.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/DeleteLibraryResponse.md
+ - docs/models/operations/Tag.md
+ - docs/models/operations/GetLibraryItemsRequest.md
+ - docs/models/operations/LibrarySectionID.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/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/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/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/GetTopWatchedContentRequest.md
+ - docs/models/operations/GetTopWatchedContentGenre.md
+ - docs/models/operations/GetTopWatchedContentCountry.md
+ - docs/models/operations/GetTopWatchedContentGuids.md
+ - docs/models/operations/GetTopWatchedContentRole.md
+ - docs/models/operations/User.md
+ - docs/models/operations/GetTopWatchedContentMetadata.md
+ - docs/models/operations/GetTopWatchedContentMediaContainer.md
+ - docs/models/operations/GetTopWatchedContentResponseBody.md
+ - docs/models/operations/GetTopWatchedContentResponse.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/LogLineResponse.md
+ - docs/models/operations/LogMultiLineResponse.md
+ - docs/models/operations/EnablePaperTrailResponse.md
+ - docs/models/operations/QueryParamType.md
+ - docs/models/operations/Smart.md
+ - docs/models/operations/CreatePlaylistRequest.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/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/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/DeletePlaylistResponse.md
+ - docs/models/operations/UpdatePlaylistRequest.md
+ - docs/models/operations/UpdatePlaylistResponse.md
+ - docs/models/operations/GetPlaylistContentsRequest.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/ClearPlaylistContentsResponse.md
+ - docs/models/operations/AddPlaylistContentsRequest.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/UploadPlaylistResponse.md
+ - docs/models/operations/GetTransientTokenQueryParamType.md
+ - docs/models/operations/Scope.md
+ - docs/models/operations/GetTransientTokenRequest.md
+ - docs/models/operations/GetTransientTokenResponse.md
+ - docs/models/operations/GetSourceConnectionInformationRequest.md
+ - docs/models/operations/GetSourceConnectionInformationResponse.md
+ - docs/models/operations/GetStatisticsRequest.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/GetResourcesStatisticsRequest.md
+ - docs/models/operations/StatisticsResources.md
+ - docs/models/operations/GetResourcesStatisticsMediaContainer.md
+ - docs/models/operations/GetResourcesStatisticsResponseBody.md
+ - docs/models/operations/GetResourcesStatisticsResponse.md
+ - docs/models/operations/GetBandwidthStatisticsRequest.md
+ - docs/models/operations/GetBandwidthStatisticsDevice.md
+ - docs/models/operations/GetBandwidthStatisticsAccount.md
+ - docs/models/operations/StatisticsBandwidth.md
+ - docs/models/operations/GetBandwidthStatisticsMediaContainer.md
+ - docs/models/operations/GetBandwidthStatisticsResponseBody.md
+ - docs/models/operations/GetBandwidthStatisticsResponse.md
+ - docs/models/operations/GetSessionsStream.md
+ - docs/models/operations/GetSessionsPart.md
+ - docs/models/operations/GetSessionsMedia.md
+ - docs/models/operations/GetSessionsUser.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/Filter.md
+ - docs/models/operations/GetSessionHistoryRequest.md
+ - docs/models/operations/GetSessionHistoryMetadata.md
+ - docs/models/operations/GetSessionHistoryMediaContainer.md
+ - docs/models/operations/GetSessionHistoryResponseBody.md
+ - docs/models/operations/GetSessionHistoryResponse.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/StopTranscodeSessionResponse.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/CheckForUpdatesResponse.md
+ - docs/models/operations/Tonight.md
+ - docs/models/operations/Skip.md
+ - docs/models/operations/ApplyUpdatesRequest.md
+ - docs/models/operations/ApplyUpdatesResponse.md
+ - docs/models/operations/PathParamFilter.md
+ - docs/models/operations/Libtype.md
+ - docs/models/operations/IncludeCollections.md
+ - docs/models/operations/IncludeExternalMedia.md
+ - docs/models/operations/GetWatchlistRequest.md
+ - docs/models/operations/Image.md
+ - docs/models/operations/Metadata.md
+ - docs/models/operations/GetWatchlistResponseBody.md
+ - docs/models/operations/GetWatchlistResponse.md
+ - docs/models/errors/Errors.md
+ - docs/models/errors/GetServerCapabilitiesResponseBody.md
+ - docs/models/errors/GetServerPreferencesErrors.md
+ - docs/models/errors/GetServerPreferencesResponseBody.md
+ - docs/models/errors/GetAvailableClientsErrors.md
+ - docs/models/errors/GetAvailableClientsResponseBody.md
+ - docs/models/errors/GetDevicesErrors.md
+ - docs/models/errors/GetDevicesResponseBody.md
+ - docs/models/errors/GetServerIdentityErrors.md
+ - docs/models/errors/GetServerIdentityResponseBody.md
+ - docs/models/errors/GetMyPlexAccountErrors.md
+ - docs/models/errors/GetMyPlexAccountResponseBody.md
+ - docs/models/errors/GetResizedPhotoErrors.md
+ - docs/models/errors/GetResizedPhotoResponseBody.md
+ - docs/models/errors/GetServerListErrors.md
+ - docs/models/errors/GetServerListResponseBody.md
+ - docs/models/errors/MarkPlayedErrors.md
+ - docs/models/errors/MarkPlayedResponseBody.md
+ - docs/models/errors/MarkUnplayedErrors.md
+ - docs/models/errors/MarkUnplayedResponseBody.md
+ - docs/models/errors/UpdatePlayProgressErrors.md
+ - docs/models/errors/UpdatePlayProgressResponseBody.md
+ - docs/models/errors/GetTimelineErrors.md
+ - docs/models/errors/GetTimelineResponseBody.md
+ - docs/models/errors/StartUniversalTranscodeErrors.md
+ - docs/models/errors/StartUniversalTranscodeResponseBody.md
+ - docs/models/errors/GetServerActivitiesErrors.md
+ - docs/models/errors/GetServerActivitiesResponseBody.md
+ - docs/models/errors/CancelServerActivitiesErrors.md
+ - docs/models/errors/CancelServerActivitiesResponseBody.md
+ - docs/models/errors/GetButlerTasksErrors.md
+ - docs/models/errors/GetButlerTasksResponseBody.md
+ - docs/models/errors/StartAllTasksErrors.md
+ - docs/models/errors/StartAllTasksResponseBody.md
+ - docs/models/errors/StopAllTasksErrors.md
+ - docs/models/errors/StopAllTasksResponseBody.md
+ - docs/models/errors/StartTaskErrors.md
+ - docs/models/errors/StartTaskResponseBody.md
+ - docs/models/errors/StopTaskErrors.md
+ - docs/models/errors/StopTaskResponseBody.md
+ - docs/models/errors/GetHomeDataErrors.md
+ - docs/models/errors/GetHomeDataResponseBody.md
+ - docs/models/errors/GetPinErrors.md
+ - docs/models/errors/GetPinResponseBody.md
+ - docs/models/errors/GetTokenErrors.md
+ - docs/models/errors/GetTokenResponseBody.md
+ - docs/models/errors/GetGlobalHubsErrors.md
+ - docs/models/errors/GetGlobalHubsResponseBody.md
+ - docs/models/errors/GetLibraryHubsErrors.md
+ - docs/models/errors/GetLibraryHubsResponseBody.md
+ - docs/models/errors/PerformSearchErrors.md
+ - docs/models/errors/PerformSearchResponseBody.md
+ - docs/models/errors/PerformVoiceSearchErrors.md
+ - docs/models/errors/PerformVoiceSearchResponseBody.md
+ - docs/models/errors/GetSearchResultsErrors.md
+ - docs/models/errors/GetSearchResultsResponseBody.md
+ - docs/models/errors/GetFileHashErrors.md
+ - docs/models/errors/GetFileHashResponseBody.md
+ - docs/models/errors/GetRecentlyAddedErrors.md
+ - docs/models/errors/GetRecentlyAddedResponseBody.md
+ - docs/models/errors/GetLibrariesErrors.md
+ - docs/models/errors/GetLibrariesResponseBody.md
+ - docs/models/errors/GetLibraryErrors.md
+ - docs/models/errors/GetLibraryResponseBody.md
+ - docs/models/errors/DeleteLibraryErrors.md
+ - docs/models/errors/DeleteLibraryResponseBody.md
+ - docs/models/errors/GetLibraryItemsErrors.md
+ - docs/models/errors/GetLibraryItemsResponseBody.md
+ - docs/models/errors/RefreshLibraryErrors.md
+ - docs/models/errors/RefreshLibraryResponseBody.md
+ - docs/models/errors/SearchLibraryErrors.md
+ - docs/models/errors/SearchLibraryResponseBody.md
+ - docs/models/errors/GetMetadataErrors.md
+ - docs/models/errors/GetMetadataResponseBody.md
+ - docs/models/errors/GetMetadataChildrenErrors.md
+ - docs/models/errors/GetMetadataChildrenResponseBody.md
+ - docs/models/errors/GetOnDeckErrors.md
+ - docs/models/errors/GetOnDeckResponseBody.md
+ - docs/models/errors/LogLineErrors.md
+ - docs/models/errors/LogLineResponseBody.md
+ - docs/models/errors/LogMultiLineErrors.md
+ - docs/models/errors/LogMultiLineResponseBody.md
+ - docs/models/errors/EnablePaperTrailErrors.md
+ - docs/models/errors/EnablePaperTrailResponseBody.md
+ - docs/models/errors/CreatePlaylistErrors.md
+ - docs/models/errors/CreatePlaylistResponseBody.md
+ - docs/models/errors/GetPlaylistsErrors.md
+ - docs/models/errors/GetPlaylistsResponseBody.md
+ - docs/models/errors/GetPlaylistErrors.md
+ - docs/models/errors/GetPlaylistResponseBody.md
+ - docs/models/errors/DeletePlaylistErrors.md
+ - docs/models/errors/DeletePlaylistResponseBody.md
+ - docs/models/errors/UpdatePlaylistErrors.md
+ - docs/models/errors/UpdatePlaylistResponseBody.md
+ - docs/models/errors/GetPlaylistContentsErrors.md
+ - docs/models/errors/GetPlaylistContentsResponseBody.md
+ - docs/models/errors/ClearPlaylistContentsErrors.md
+ - docs/models/errors/ClearPlaylistContentsResponseBody.md
+ - docs/models/errors/AddPlaylistContentsErrors.md
+ - docs/models/errors/AddPlaylistContentsResponseBody.md
+ - docs/models/errors/UploadPlaylistErrors.md
+ - docs/models/errors/UploadPlaylistResponseBody.md
+ - docs/models/errors/GetTransientTokenErrors.md
+ - docs/models/errors/GetTransientTokenResponseBody.md
+ - docs/models/errors/GetSourceConnectionInformationErrors.md
+ - docs/models/errors/GetSourceConnectionInformationResponseBody.md
+ - docs/models/errors/GetStatisticsErrors.md
+ - docs/models/errors/GetStatisticsResponseBody.md
+ - docs/models/errors/GetResourcesStatisticsErrors.md
+ - docs/models/errors/GetResourcesStatisticsResponseBody.md
+ - docs/models/errors/GetBandwidthStatisticsErrors.md
+ - docs/models/errors/GetBandwidthStatisticsResponseBody.md
+ - docs/models/errors/GetSessionsErrors.md
+ - docs/models/errors/GetSessionsResponseBody.md
+ - docs/models/errors/GetSessionHistoryErrors.md
+ - docs/models/errors/GetSessionHistoryResponseBody.md
+ - docs/models/errors/GetTranscodeSessionsErrors.md
+ - docs/models/errors/GetTranscodeSessionsResponseBody.md
+ - docs/models/errors/StopTranscodeSessionErrors.md
+ - docs/models/errors/StopTranscodeSessionResponseBody.md
+ - docs/models/errors/GetUpdateStatusErrors.md
+ - docs/models/errors/GetUpdateStatusResponseBody.md
+ - docs/models/errors/CheckForUpdatesErrors.md
+ - docs/models/errors/CheckForUpdatesResponseBody.md
+ - docs/models/errors/ApplyUpdatesErrors.md
+ - docs/models/errors/ApplyUpdatesResponseBody.md
+ - docs/models/errors/GetWatchlistErrors.md
+ - docs/models/errors/GetWatchlistResponseBody.md
+ - docs/models/shared/Security.md
+ - docs/sdks/plexapi/README.md
+ - docs/sdks/server/README.md
+ - docs/sdks/media/README.md
+ - docs/sdks/video/README.md
+ - docs/sdks/activities/README.md
+ - docs/sdks/butler/README.md
+ - docs/sdks/plex/README.md
+ - docs/sdks/hubs/README.md
+ - docs/sdks/search/README.md
+ - docs/sdks/library/README.md
+ - docs/sdks/log/README.md
+ - docs/sdks/playlists/README.md
+ - docs/sdks/authentication/README.md
+ - docs/sdks/statistics/README.md
+ - docs/sdks/sessions/README.md
+ - docs/sdks/updater/README.md
+ - docs/sdks/watchlist/README.md
+ - USAGE.md
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
new file mode 100644
index 00000000..9c096831
--- /dev/null
+++ b/.speakeasy/workflow.lock
@@ -0,0 +1,34 @@
+speakeasyVersion: 1.323.0
+sources:
+ my-source:
+ sourceNamespace: my-source
+ sourceRevisionDigest: sha256:e126ecf895f7782d460cef7bfb0c3dacdcf586574063ac3ed1065a5d7ac07eef
+ sourceBlobDigest: sha256:dcd07a4fc95f11a14baa2d3a47d72ce6b7a405451b84d13daf439ede60668b9e
+ tags:
+ - latest
+targets:
+ plexjava:
+ source: my-source
+ sourceNamespace: my-source
+ sourceRevisionDigest: sha256:e126ecf895f7782d460cef7bfb0c3dacdcf586574063ac3ed1065a5d7ac07eef
+ sourceBlobDigest: sha256:dcd07a4fc95f11a14baa2d3a47d72ce6b7a405451b84d13daf439ede60668b9e
+ codeSamplesNamespace: code-samples-java-plexjava
+ codeSamplesRevisionDigest: sha256:0fb8877545d0754f73fb65a79ee7014d1a11f9fb044b0f2b9d14bd6eea02f4f9
+ outLocation: /home/luke/github/plexjava
+workflow:
+ workflowVersion: 1.0.0
+ speakeasyVersion: latest
+ sources:
+ my-source:
+ inputs:
+ - location: https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-media-server-spec-dereferenced.yaml
+ registry:
+ location: registry.speakeasyapi.dev/lukehagar/lukehagar/my-source
+ targets:
+ plexjava:
+ target: java
+ source: my-source
+ codeSamples:
+ output: codeSamples.yaml
+ registry:
+ location: registry.speakeasyapi.dev/lukehagar/lukehagar/code-samples-java-plexjava
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..e7d5512f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,605 @@
+# plexapi
+
+
+
+
+## 🏗 **Welcome to your new SDK!** 🏗
+
+It has been generated successfully based on your OpenAPI spec. However, it is not yet ready for production use. Here are some next steps:
+- [ ] 🛠 Make your SDK feel handcrafted by [customizing it](https://www.speakeasyapi.dev/docs/customize-sdks)
+- [ ] ♻️ Refine your SDK quickly by iterating locally with the [Speakeasy CLI](https://github.com/speakeasy-api/speakeasy)
+- [ ] 🎁 Publish your SDK to package managers by [configuring automatic publishing](https://www.speakeasyapi.dev/docs/advanced-setup/publish-sdks)
+- [ ] ✨ When ready to productionize, delete this section from the README
+
+
+## SDK Installation
+
+### Getting started
+
+JDK 11 or later is required.
+
+The samples below show how a published SDK artifact is used:
+
+Gradle:
+```groovy
+implementation 'lukehagar.plexapi:plexapi:0.1.1'
+```
+
+Maven:
+```xml
+
+ lukehagar.plexapi
+ plexapi
+ 0.1.1
+
+```
+
+### How to build
+After cloning the git repository to your file system you can build the SDK artifact from source to the `build` directory by running `./gradlew build` on *nix systems or `gradlew.bat` on Windows systems.
+
+If you wish to build from source and publish the SDK artifact to your local Maven repository (on your filesystem) then use the following command (after cloning the git repo locally):
+
+On *nix:
+```bash
+./gradlew publishToMavenLocal -Pskip.signing
+```
+On Windows:
+```bash
+gradlew.bat publishToMavenLocal -Pskip.signing
+```
+
+
+
+## SDK Example Usage
+
+### Example
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerCapabilitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+
+## Available Resources and Operations
+
+### [server()](docs/sdks/server/README.md)
+
+* [getServerCapabilities](docs/sdks/server/README.md#getservercapabilities) - Get Server Capabilities
+* [getServerPreferences](docs/sdks/server/README.md#getserverpreferences) - Get Server Preferences
+* [getAvailableClients](docs/sdks/server/README.md#getavailableclients) - Get Available Clients
+* [getDevices](docs/sdks/server/README.md#getdevices) - Get Devices
+* [getServerIdentity](docs/sdks/server/README.md#getserveridentity) - Get Server Identity
+* [getMyPlexAccount](docs/sdks/server/README.md#getmyplexaccount) - Get MyPlex Account
+* [getResizedPhoto](docs/sdks/server/README.md#getresizedphoto) - Get a Resized Photo
+* [getServerList](docs/sdks/server/README.md#getserverlist) - Get Server List
+
+### [media()](docs/sdks/media/README.md)
+
+* [markPlayed](docs/sdks/media/README.md#markplayed) - Mark Media Played
+* [markUnplayed](docs/sdks/media/README.md#markunplayed) - Mark Media Unplayed
+* [updatePlayProgress](docs/sdks/media/README.md#updateplayprogress) - Update Media Play Progress
+
+### [video()](docs/sdks/video/README.md)
+
+* [getTimeline](docs/sdks/video/README.md#gettimeline) - Get the timeline for a media item
+* [startUniversalTranscode](docs/sdks/video/README.md#startuniversaltranscode) - Start Universal Transcode
+
+### [activities()](docs/sdks/activities/README.md)
+
+* [getServerActivities](docs/sdks/activities/README.md#getserveractivities) - Get Server Activities
+* [cancelServerActivities](docs/sdks/activities/README.md#cancelserveractivities) - Cancel Server Activities
+
+### [butler()](docs/sdks/butler/README.md)
+
+* [getButlerTasks](docs/sdks/butler/README.md#getbutlertasks) - Get Butler tasks
+* [startAllTasks](docs/sdks/butler/README.md#startalltasks) - Start all Butler tasks
+* [stopAllTasks](docs/sdks/butler/README.md#stopalltasks) - Stop all Butler tasks
+* [startTask](docs/sdks/butler/README.md#starttask) - Start a single Butler task
+* [stopTask](docs/sdks/butler/README.md#stoptask) - Stop a single Butler task
+
+### [plex()](docs/sdks/plex/README.md)
+
+* [getHomeData](docs/sdks/plex/README.md#gethomedata) - Get Plex Home Data
+* [getPin](docs/sdks/plex/README.md#getpin) - Get a Pin
+* [getToken](docs/sdks/plex/README.md#gettoken) - Get Access Token
+
+### [hubs()](docs/sdks/hubs/README.md)
+
+* [getGlobalHubs](docs/sdks/hubs/README.md#getglobalhubs) - Get Global Hubs
+* [getLibraryHubs](docs/sdks/hubs/README.md#getlibraryhubs) - Get library specific hubs
+
+### [search()](docs/sdks/search/README.md)
+
+* [performSearch](docs/sdks/search/README.md#performsearch) - Perform a search
+* [performVoiceSearch](docs/sdks/search/README.md#performvoicesearch) - Perform a voice search
+* [getSearchResults](docs/sdks/search/README.md#getsearchresults) - Get Search Results
+
+### [library()](docs/sdks/library/README.md)
+
+* [getFileHash](docs/sdks/library/README.md#getfilehash) - Get Hash Value
+* [getRecentlyAdded](docs/sdks/library/README.md#getrecentlyadded) - Get Recently Added
+* [getLibraries](docs/sdks/library/README.md#getlibraries) - Get All Libraries
+* [getLibrary](docs/sdks/library/README.md#getlibrary) - Get Library Details
+* [deleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section
+* [getLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items
+* [refreshLibrary](docs/sdks/library/README.md#refreshlibrary) - Refresh Library
+* [searchLibrary](docs/sdks/library/README.md#searchlibrary) - Search Library
+* [getMetadata](docs/sdks/library/README.md#getmetadata) - Get Items Metadata
+* [getMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children
+* [getTopWatchedContent](docs/sdks/library/README.md#gettopwatchedcontent) - Get Top Watched Content
+* [getOnDeck](docs/sdks/library/README.md#getondeck) - Get On Deck
+
+### [log()](docs/sdks/log/README.md)
+
+* [logLine](docs/sdks/log/README.md#logline) - Logging a single line message.
+* [logMultiLine](docs/sdks/log/README.md#logmultiline) - Logging a multi-line message
+* [enablePaperTrail](docs/sdks/log/README.md#enablepapertrail) - Enabling Papertrail
+
+### [playlists()](docs/sdks/playlists/README.md)
+
+* [createPlaylist](docs/sdks/playlists/README.md#createplaylist) - Create a Playlist
+* [getPlaylists](docs/sdks/playlists/README.md#getplaylists) - Get All Playlists
+* [getPlaylist](docs/sdks/playlists/README.md#getplaylist) - Retrieve Playlist
+* [deletePlaylist](docs/sdks/playlists/README.md#deleteplaylist) - Deletes a Playlist
+* [updatePlaylist](docs/sdks/playlists/README.md#updateplaylist) - Update a Playlist
+* [getPlaylistContents](docs/sdks/playlists/README.md#getplaylistcontents) - Retrieve Playlist Contents
+* [clearPlaylistContents](docs/sdks/playlists/README.md#clearplaylistcontents) - Delete Playlist Contents
+* [addPlaylistContents](docs/sdks/playlists/README.md#addplaylistcontents) - Adding to a Playlist
+* [uploadPlaylist](docs/sdks/playlists/README.md#uploadplaylist) - Upload Playlist
+
+### [authentication()](docs/sdks/authentication/README.md)
+
+* [getTransientToken](docs/sdks/authentication/README.md#gettransienttoken) - Get a Transient Token.
+* [getSourceConnectionInformation](docs/sdks/authentication/README.md#getsourceconnectioninformation) - Get Source Connection Information
+
+### [statistics()](docs/sdks/statistics/README.md)
+
+* [getStatistics](docs/sdks/statistics/README.md#getstatistics) - Get Media Statistics
+* [getResourcesStatistics](docs/sdks/statistics/README.md#getresourcesstatistics) - Get Resources Statistics
+* [getBandwidthStatistics](docs/sdks/statistics/README.md#getbandwidthstatistics) - Get Bandwidth Statistics
+
+### [sessions()](docs/sdks/sessions/README.md)
+
+* [getSessions](docs/sdks/sessions/README.md#getsessions) - Get Active Sessions
+* [getSessionHistory](docs/sdks/sessions/README.md#getsessionhistory) - Get Session History
+* [getTranscodeSessions](docs/sdks/sessions/README.md#gettranscodesessions) - Get Transcode Sessions
+* [stopTranscodeSession](docs/sdks/sessions/README.md#stoptranscodesession) - Stop a Transcode Session
+
+### [updater()](docs/sdks/updater/README.md)
+
+* [getUpdateStatus](docs/sdks/updater/README.md#getupdatestatus) - Querying status of updates
+* [checkForUpdates](docs/sdks/updater/README.md#checkforupdates) - Checking for updates
+* [applyUpdates](docs/sdks/updater/README.md#applyupdates) - Apply Updates
+
+### [watchlist()](docs/sdks/watchlist/README.md)
+
+* [getWatchlist](docs/sdks/watchlist/README.md#getwatchlist) - Get User Watchlist
+
+
+
+## Global Parameters
+
+A parameter is configured globally. This parameter may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, This global value will be used as the default on the operations that use it. When such operations are called, there is a place in each to override the global value, if needed.
+
+For example, you can set `X-Plex-Client-Identifier` to `"Postman"` at SDK initialization and then you do not have to pass the same value on calls to operations like `getPin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
+
+
+### Available Globals
+
+The following global parameter is available.
+
+| Name | Type | Required | Description |
+| ---- | ---- |:--------:| ----------- |
+| xPlexClientIdentifier | String | | 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)
+ |
+
+
+### Example
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPinResponse res = sdk.plex().getPin()
+ .strong(false)
+ .xPlexClientIdentifier("Postman")
+ .xPlexProduct("Postman")
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPinResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+
+## Error Handling
+
+Handling errors in this SDK should largely match your expectations. All operations return a response object or raise an error. If Error objects are specified in your OpenAPI Spec, the SDK will throw the appropriate Exception type.
+
+| Error Object | Status Code | Content Type |
+| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- |
+| models/errors/GetServerCapabilitiesResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+### Example
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerCapabilitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+
+## Server Selection
+
+### Select Server by Index
+
+You can override the default server globally by passing a server index to the `serverIndex` builder method 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}` | `protocol` (default is `http`), `ip` (default is `10.10.10.47`), `port` (default is `32400`) |
+
+#### Example
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .serverIndex(0)
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerCapabilitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+#### Variables
+
+Some of the server options above contain variables. If you want to set the values of those variables, the following optional parameters are available when initializing the SDK client instance:
+ * `ServerProtocol protocol`
+ * `String ip`
+ * `String port`
+
+### Override Server URL Per-Client
+
+The default server can also be overridden globally by passing a URL to the `serverURL` builder method when initializing the SDK client instance. For example:
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .serverURL("{protocol}://{ip}:{port}")
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerCapabilitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### 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 java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPinResponse res = sdk.plex().getPin()
+ .serverURL("https://plex.tv/api/v2")
+ .strong(false)
+ .xPlexClientIdentifier("Postman")
+ .xPlexProduct("Postman")
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPinResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+
+## Authentication
+
+### Per-Client Security Schemes
+
+This SDK supports the following security scheme globally:
+
+| Name | Type | Scheme |
+| ------------- | ------------- | ------------- |
+| `accessToken` | apiKey | API key |
+
+To authenticate with the API the `accessToken` parameter must be set when initializing the SDK client instance. For example:
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerCapabilitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+
+
+# Development
+
+## Maturity
+
+This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
+to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
+looking for the latest version.
+
+## Contributions
+
+While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation.
+We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
+
+### SDK Created by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
diff --git a/USAGE.md b/USAGE.md
new file mode 100644
index 00000000..26f5ab11
--- /dev/null
+++ b/USAGE.md
@@ -0,0 +1,48 @@
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerCapabilitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
\ No newline at end of file
diff --git a/build-extras.gradle b/build-extras.gradle
new file mode 100644
index 00000000..e104d4f6
--- /dev/null
+++ b/build-extras.gradle
@@ -0,0 +1,4 @@
+// This file
+// * is referred to in an `apply from` command in `build.gradle`
+// * can be used to customise `build.gradle`
+// * is generated once and not overwritten in SDK generation updates
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 00000000..c1b13ce2
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,49 @@
+
+////////////////////////////////////////////////////////////////////////////////////////////
+// This file is generated by Speakeasy and any edits will be lost in generation updates.
+//
+// If you wish to customize this file then place those customizations in `build-extras.gradle` which
+// is not touched by generation updates.
+//
+// Additions to the plugins block can be made by setting the `additionalPlugins` property (an array
+// of string where each string value is an additional line in the block) in gen.yaml.
+////////////////////////////////////////////////////////////////////////////////////////////
+plugins {
+ // Apply the java-library plugin for API and implementation separation.
+ id 'java-library'
+}
+
+compileJava.options.encoding = "UTF-8"
+compileJava.options.compilerArgs += '-Xlint:unchecked'
+compileTestJava.options.encoding = "UTF-8"
+
+repositories {
+ // Use Maven Central for resolving dependencies.
+ mavenCentral()
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ withSourcesJar()
+ withJavadocJar()
+}
+
+tasks.withType(Javadoc) {
+ failOnError false
+ options.addStringOption('Xdoclint:none', '-quiet')
+}
+
+dependencies {
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.0'
+ implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.0'
+ implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.17.0'
+ implementation 'org.openapitools:jackson-databind-nullable:0.2.6'
+ implementation 'org.apache.httpcomponents:httpclient:4.5.14'
+ implementation 'org.apache.httpcomponents:httpmime:4.5.14'
+ implementation 'commons-io:commons-io:2.15.1'
+}
+
+
+
+apply from: 'build-extras.gradle'
diff --git a/codeSamples.yaml b/codeSamples.yaml
new file mode 100644
index 00000000..2377e58e
--- /dev/null
+++ b/codeSamples.yaml
@@ -0,0 +1,3330 @@
+overlay: 1.0.0
+info:
+ title: CodeSamples overlay for java target
+ version: 0.0.0
+actions:
+ - target: $["paths"]["/"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getServerCapabilities
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerCapabilitiesResponse res = sdk.server().getServerCapabilities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerCapabilitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/butler/{taskName}"]["delete"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: stopTask
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StopTaskResponse res = sdk.butler().stopTask()
+ .taskName(PathParamTaskName.BACKUP_DATABASE)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StopTaskResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists/{playlistID}/items"]["delete"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: clearPlaylistContents
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ ClearPlaylistContentsResponse res = sdk.playlists().clearPlaylistContents()
+ .playlistID(1893.18d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.ClearPlaylistContentsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/photo/:/transcode"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getResizedPhoto
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetResizedPhotoRequest req = GetResizedPhotoRequest.builder()
+ .width(110d)
+ .height(165d)
+ .opacity(643869L)
+ .blur(4000d)
+ .minSize(MinSize.ZERO)
+ .upscale(Upscale.ZERO)
+ .url("/library/metadata/49564/thumb/1654258204")
+ .build();
+
+ GetResizedPhotoResponse res = sdk.server().getResizedPhoto()
+ .request(req)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetResizedPhotoResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/hubs/search/voice"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: performVoiceSearch
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ PerformVoiceSearchResponse res = sdk.search().performVoiceSearch()
+ .query("dead+poop")
+ .sectionId(4094.8d)
+ .limit(5d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.PerformVoiceSearchResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/log"]["post"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: logMultiLine
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ String req = "level=4&message=Test%20message%201&source=postman
+ level=3&message=Test%20message%202&source=postman
+ level=1&message=Test%20message%203&source=postman";
+
+ LogMultiLineResponse res = sdk.log().logMultiLine()
+ .request(req)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.LogMultiLineResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists/{playlistID}/items"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getPlaylistContents
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPlaylistContentsResponse res = sdk.playlists().getPlaylistContents()
+ .playlistID(5004.46d)
+ .type(9403.59d)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPlaylistContentsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/status/sessions/history/all"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getSessionHistory
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetSessionHistoryResponse res = sdk.sessions().getSessionHistory()
+ .sort("")
+ .accountId(1L)
+ .filter(Filter.builder()
+ .build())
+ .librarySectionID(12L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetSessionHistoryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/sections"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getLibraries
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibrariesResponse res = sdk.library().getLibraries()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibrariesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/sections/{sectionId}"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getLibrary
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibraryResponse res = sdk.library().getLibrary()
+ .sectionId(1000d)
+ .includeDetails(IncludeDetails.ZERO)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists/{playlistID}"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getPlaylist
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPlaylistResponse res = sdk.playlists().getPlaylist()
+ .playlistID(4109.48d)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/security/resources"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getSourceConnectionInformation
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetSourceConnectionInformationResponse res = sdk.authentication().getSourceConnectionInformation()
+ .source("server://client-identifier")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetSourceConnectionInformationResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists/{playlistID}/items"]["put"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: addPlaylistContents
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ AddPlaylistContentsResponse res = sdk.playlists().addPlaylistContents()
+ .playlistID(8502.01d)
+ .uri("server://12345/com.plexapp.plugins.library/library/metadata/1")
+ .playQueueID(123d)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.AddPlaylistContentsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/security/token"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getTransientToken
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetTransientTokenResponse res = sdk.authentication().getTransientToken()
+ .type(GetTransientTokenQueryParamType.DELEGATION)
+ .scope(Scope.ALL)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetTransientTokenResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/transcode/sessions/{sessionKey}"]["delete"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: stopTranscodeSession
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StopTranscodeSessionResponse res = sdk.sessions().stopTranscodeSession()
+ .sessionKey("zz7llzqlx8w9vnrsbnwhbmep")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StopTranscodeSessionResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/updater/apply"]["put"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: applyUpdates
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ ApplyUpdatesResponse res = sdk.updater().applyUpdates()
+ .tonight(Tonight.ONE)
+ .skip(Skip.ONE)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.ApplyUpdatesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists/{playlistID}"]["put"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: updatePlaylist
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ UpdatePlaylistResponse res = sdk.playlists().updatePlaylist()
+ .playlistID(3915d)
+ .title("")
+ .summary("")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.UpdatePlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/statistics/bandwidth"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getBandwidthStatistics
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetBandwidthStatisticsResponse res = sdk.statistics().getBandwidthStatistics()
+ .timespan(4L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetBandwidthStatisticsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/transcode/sessions"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getTranscodeSessions
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetTranscodeSessionsResponse res = sdk.sessions().getTranscodeSessions()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetTranscodeSessionsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/:/scrobble"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: markPlayed
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ MarkPlayedResponse res = sdk.media().markPlayed()
+ .key(59398d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.MarkPlayedResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/search"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getSearchResults
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetSearchResultsResponse res = sdk.search().getSearchResults()
+ .query("110")
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetSearchResultsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/recentlyAdded"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getRecentlyAdded
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetRecentlyAddedResponse res = sdk.library().getRecentlyAdded()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetRecentlyAddedResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/metadata/{ratingKey}/children"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getMetadataChildren
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetMetadataChildrenResponse res = sdk.library().getMetadataChildren()
+ .ratingKey(1539.14d)
+ .includeElements("")
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetMetadataChildrenResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/log"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: logLine
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ LogLineResponse res = sdk.log().logLine()
+ .level(Level.THREE)
+ .message("Test log message")
+ .source("Postman")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.LogLineResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/updater/check"]["put"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: checkForUpdates
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ CheckForUpdatesResponse res = sdk.updater().checkForUpdates()
+ .download(Download.ONE)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.CheckForUpdatesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/sections/watchlist/{filter}"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getWatchlist
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetWatchlistRequest req = GetWatchlistRequest.builder()
+ .filter(PathParamFilter.RELEASED)
+ .xPlexToken("")
+ .build();
+
+ GetWatchlistResponse res = sdk.watchlist().getWatchlist()
+ .request(req)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetWatchlistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/myplex/account"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getMyPlexAccount
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetMyPlexAccountResponse res = sdk.server().getMyPlexAccount()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetMyPlexAccountResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/butler"]["delete"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: stopAllTasks
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StopAllTasksResponse res = sdk.butler().stopAllTasks()
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StopAllTasksResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/video/:/transcode/universal/start.mpd"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: startUniversalTranscode
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StartUniversalTranscodeRequest req = StartUniversalTranscodeRequest.builder()
+ .hasMDE(1d)
+ .path("/library/metadata/23409")
+ .mediaIndex(0d)
+ .partIndex(0d)
+ .protocol("hls")
+ .fastSeek(0d)
+ .directPlay(0d)
+ .directStream(0d)
+ .subtitleSize(100d)
+ .subtites("burn")
+ .audioBoost(100d)
+ .location("lan")
+ .mediaBufferSize(102400d)
+ .session("zvcage8b7rkioqcm8f4uns4c")
+ .addDebugOverlay(0d)
+ .autoAdjustQuality(0d)
+ .build();
+
+ StartUniversalTranscodeResponse res = sdk.video().startUniversalTranscode()
+ .request(req)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StartUniversalTranscodeResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/log/networked"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: enablePaperTrail
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ EnablePaperTrailResponse res = sdk.log().enablePaperTrail()
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.EnablePaperTrailResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists"]["post"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: createPlaylist
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ CreatePlaylistRequest req = CreatePlaylistRequest.builder()
+ .title("")
+ .type(QueryParamType.PHOTO)
+ .smart(Smart.ONE)
+ .uri("")
+ .build();
+
+ CreatePlaylistResponse res = sdk.playlists().createPlaylist()
+ .request(req)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.CreatePlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/pins"]["post"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getPin
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPinResponse res = sdk.plex().getPin()
+ .strong(false)
+ .xPlexClientIdentifier("Postman")
+ .xPlexProduct("Postman")
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPinResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/hashes"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getFileHash
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetFileHashResponse res = sdk.library().getFileHash()
+ .url("file://C:\Image.png&type=13")
+ .type(4462.17d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetFileHashResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/sections/{sectionId}/{tag}"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getLibraryItems
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibraryItemsResponse res = sdk.library().getLibraryItems()
+ .sectionId("")
+ .tag(Tag.GENRE)
+ .includeGuids(1L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibraryItemsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists/upload"]["post"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: uploadPlaylist
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ UploadPlaylistResponse res = sdk.playlists().uploadPlaylist()
+ .path("/home/barkley/playlist.m3u")
+ .force(Force.ZERO)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.UploadPlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/updater/status"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getUpdateStatus
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetUpdateStatusResponse res = sdk.updater().getUpdateStatus()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetUpdateStatusResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/clients"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getAvailableClients
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetAvailableClientsResponse res = sdk.server().getAvailableClients()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetAvailableClientsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/onDeck"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getOnDeck
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetOnDeckResponse res = sdk.library().getOnDeck()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetOnDeckResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/identity"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getServerIdentity
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerIdentityResponse res = sdk.server().getServerIdentity()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerIdentityResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/activities/{activityUUID}"]["delete"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: cancelServerActivities
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ CancelServerActivitiesResponse res = sdk.activities().cancelServerActivities()
+ .activityUUID("25b71ed5-0f9d-461c-baa7-d404e9e10d3e")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.CancelServerActivitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/butler/{taskName}"]["post"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: startTask
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StartTaskResponse res = sdk.butler().startTask()
+ .taskName(TaskName.CLEAN_OLD_BUNDLES)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StartTaskResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/sections/{sectionId}/refresh"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: refreshLibrary
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ RefreshLibraryResponse res = sdk.library().refreshLibrary()
+ .sectionId(934.16d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.RefreshLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/sections/{sectionId}/search"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: searchLibrary
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ SearchLibraryResponse res = sdk.library().searchLibrary()
+ .sectionId(933505L)
+ .type(Type.FOUR)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.SearchLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/metadata/{ratingKey}"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getMetadata
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetMetadataResponse res = sdk.library().getMetadata()
+ .ratingKey(8382.31d)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetMetadataResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/:/prefs"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getServerPreferences
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerPreferencesResponse res = sdk.server().getServerPreferences()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerPreferencesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/devices"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getDevices
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetDevicesResponse res = sdk.server().getDevices()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetDevicesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/home"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getHomeData
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetHomeDataResponse res = sdk.plex().getHomeData()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetHomeDataResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/pins/{pinID}"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getToken
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetTokenResponse res = sdk.plex().getToken()
+ .pinID("")
+ .xPlexClientIdentifier("Postman")
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetTokenResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/hubs/search"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: performSearch
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ PerformSearchResponse res = sdk.search().performSearch()
+ .query("dylan")
+ .sectionId(1516.53d)
+ .limit(5d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.PerformSearchResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/butler"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getButlerTasks
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetButlerTasksResponse res = sdk.butler().getButlerTasks()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetButlerTasksResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/sections/{sectionId}"]["delete"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: deleteLibrary
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ DeleteLibraryResponse res = sdk.library().deleteLibrary()
+ .sectionId(1000d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.DeleteLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/library/all/top"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getTopWatchedContent
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetTopWatchedContentResponse res = sdk.library().getTopWatchedContent()
+ .type(505531L)
+ .includeGuids(1L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getPlaylists
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPlaylistsResponse res = sdk.playlists().getPlaylists()
+ .playlistType(PlaylistType.AUDIO)
+ .smart(QueryParamSmart.ZERO)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPlaylistsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/status/sessions"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getSessions
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetSessionsResponse res = sdk.sessions().getSessions()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetSessionsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/:/progress"]["post"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: updatePlayProgress
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ UpdatePlayProgressResponse res = sdk.media().updatePlayProgress()
+ .key("")
+ .time(90000d)
+ .state("played")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.UpdatePlayProgressResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/:/timeline"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getTimeline
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetTimelineRequest req = GetTimelineRequest.builder()
+ .ratingKey(23409d)
+ .key("/library/metadata/23409")
+ .state(State.PLAYING)
+ .hasMDE(1d)
+ .time(2000d)
+ .duration(10000d)
+ .context("home:hub.continueWatching")
+ .playQueueItemID(1d)
+ .playBackTime(2000d)
+ .row(1d)
+ .build();
+
+ GetTimelineResponse res = sdk.video().getTimeline()
+ .request(req)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetTimelineResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/hubs/sections/{sectionId}"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getLibraryHubs
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibraryHubsResponse res = sdk.hubs().getLibraryHubs()
+ .sectionId(6728.76d)
+ .count(9010.22d)
+ .onlyTransient(QueryParamOnlyTransient.ZERO)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibraryHubsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/playlists/{playlistID}"]["delete"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: deletePlaylist
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ DeletePlaylistResponse res = sdk.playlists().deletePlaylist()
+ .playlistID(216.22d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.DeletePlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/servers"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getServerList
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerListResponse res = sdk.server().getServerList()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerListResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/:/unscrobble"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: markUnplayed
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ MarkUnplayedResponse res = sdk.media().markUnplayed()
+ .key(59398d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.MarkUnplayedResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/activities"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getServerActivities
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerActivitiesResponse res = sdk.activities().getServerActivities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerActivitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/statistics/media"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getStatistics
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetStatisticsResponse res = sdk.statistics().getStatistics()
+ .timespan(4L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetStatisticsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/butler"]["post"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: startAllTasks
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StartAllTasksResponse res = sdk.butler().startAllTasks()
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StartAllTasksResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/hubs"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getGlobalHubs
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetGlobalHubsResponse res = sdk.hubs().getGlobalHubs()
+ .count(1262.49d)
+ .onlyTransient(OnlyTransient.ONE)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetGlobalHubsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
+ - target: $["paths"]["/statistics/resources"]["get"]
+ update:
+ x-codeSamples:
+ - lang: java
+ label: getResourcesStatistics
+ source: |-
+ package hello.world;
+
+ import java.math.BigDecimal;
+ import java.math.BigDecimal;
+ import java.math.BigInteger;
+ import java.time.LocalDate;
+ import java.time.OffsetDateTime;
+ import java.util.Optional;
+ import lukehagar.plexapi.plexapi.PlexAPI;
+ import lukehagar.plexapi.plexapi.models.operations.*;
+ import lukehagar.plexapi.plexapi.models.shared.*;
+ import lukehagar.plexapi.plexapi.models.shared.Security;
+ import lukehagar.plexapi.plexapi.utils.EventStream;
+ import org.openapitools.jackson.nullable.JsonNullable;
+ import static java.util.Map.entry;
+
+ public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetResourcesStatisticsResponse res = sdk.statistics().getResourcesStatistics()
+ .timespan(4L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetResourcesStatisticsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+ }
diff --git a/docs/models/errors/AddPlaylistContentsErrors.md b/docs/models/errors/AddPlaylistContentsErrors.md
new file mode 100644
index 00000000..5ed8e032
--- /dev/null
+++ b/docs/models/errors/AddPlaylistContentsErrors.md
@@ -0,0 +1,10 @@
+# AddPlaylistContentsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/AddPlaylistContentsResponseBody.md b/docs/models/errors/AddPlaylistContentsResponseBody.md
new file mode 100644
index 00000000..80189d41
--- /dev/null
+++ b/docs/models/errors/AddPlaylistContentsResponseBody.md
@@ -0,0 +1,11 @@
+# AddPlaylistContentsResponseBody
+
+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.errors.AddPlaylistContentsErrors](../../models/errors/AddPlaylistContentsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/ApplyUpdatesErrors.md b/docs/models/errors/ApplyUpdatesErrors.md
new file mode 100644
index 00000000..19cd4331
--- /dev/null
+++ b/docs/models/errors/ApplyUpdatesErrors.md
@@ -0,0 +1,10 @@
+# ApplyUpdatesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/ApplyUpdatesResponseBody.md b/docs/models/errors/ApplyUpdatesResponseBody.md
new file mode 100644
index 00000000..d54fb4ae
--- /dev/null
+++ b/docs/models/errors/ApplyUpdatesResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.ApplyUpdatesErrors](../../models/errors/ApplyUpdatesErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/CancelServerActivitiesErrors.md b/docs/models/errors/CancelServerActivitiesErrors.md
new file mode 100644
index 00000000..0fcd9628
--- /dev/null
+++ b/docs/models/errors/CancelServerActivitiesErrors.md
@@ -0,0 +1,10 @@
+# CancelServerActivitiesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/CancelServerActivitiesResponseBody.md b/docs/models/errors/CancelServerActivitiesResponseBody.md
new file mode 100644
index 00000000..943bcd26
--- /dev/null
+++ b/docs/models/errors/CancelServerActivitiesResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.CancelServerActivitiesErrors](../../models/errors/CancelServerActivitiesErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/CheckForUpdatesErrors.md b/docs/models/errors/CheckForUpdatesErrors.md
new file mode 100644
index 00000000..297a8c05
--- /dev/null
+++ b/docs/models/errors/CheckForUpdatesErrors.md
@@ -0,0 +1,10 @@
+# CheckForUpdatesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/CheckForUpdatesResponseBody.md b/docs/models/errors/CheckForUpdatesResponseBody.md
new file mode 100644
index 00000000..c8c37bdf
--- /dev/null
+++ b/docs/models/errors/CheckForUpdatesResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.CheckForUpdatesErrors](../../models/errors/CheckForUpdatesErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/ClearPlaylistContentsErrors.md b/docs/models/errors/ClearPlaylistContentsErrors.md
new file mode 100644
index 00000000..d9c2ac1d
--- /dev/null
+++ b/docs/models/errors/ClearPlaylistContentsErrors.md
@@ -0,0 +1,10 @@
+# ClearPlaylistContentsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/ClearPlaylistContentsResponseBody.md b/docs/models/errors/ClearPlaylistContentsResponseBody.md
new file mode 100644
index 00000000..ead31202
--- /dev/null
+++ b/docs/models/errors/ClearPlaylistContentsResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.ClearPlaylistContentsErrors](../../models/errors/ClearPlaylistContentsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/CreatePlaylistErrors.md b/docs/models/errors/CreatePlaylistErrors.md
new file mode 100644
index 00000000..61b09ce4
--- /dev/null
+++ b/docs/models/errors/CreatePlaylistErrors.md
@@ -0,0 +1,10 @@
+# CreatePlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/CreatePlaylistResponseBody.md b/docs/models/errors/CreatePlaylistResponseBody.md
new file mode 100644
index 00000000..444279d9
--- /dev/null
+++ b/docs/models/errors/CreatePlaylistResponseBody.md
@@ -0,0 +1,11 @@
+# CreatePlaylistResponseBody
+
+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.errors.CreatePlaylistErrors](../../models/errors/CreatePlaylistErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/DeleteLibraryErrors.md b/docs/models/errors/DeleteLibraryErrors.md
new file mode 100644
index 00000000..5e742f91
--- /dev/null
+++ b/docs/models/errors/DeleteLibraryErrors.md
@@ -0,0 +1,10 @@
+# DeleteLibraryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/DeleteLibraryResponseBody.md b/docs/models/errors/DeleteLibraryResponseBody.md
new file mode 100644
index 00000000..ea3431ce
--- /dev/null
+++ b/docs/models/errors/DeleteLibraryResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.DeleteLibraryErrors](../../models/errors/DeleteLibraryErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/DeletePlaylistErrors.md b/docs/models/errors/DeletePlaylistErrors.md
new file mode 100644
index 00000000..0727ad0a
--- /dev/null
+++ b/docs/models/errors/DeletePlaylistErrors.md
@@ -0,0 +1,10 @@
+# DeletePlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/DeletePlaylistResponseBody.md b/docs/models/errors/DeletePlaylistResponseBody.md
new file mode 100644
index 00000000..7770d0f6
--- /dev/null
+++ b/docs/models/errors/DeletePlaylistResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.DeletePlaylistErrors](../../models/errors/DeletePlaylistErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/EnablePaperTrailErrors.md b/docs/models/errors/EnablePaperTrailErrors.md
new file mode 100644
index 00000000..77cfaab9
--- /dev/null
+++ b/docs/models/errors/EnablePaperTrailErrors.md
@@ -0,0 +1,10 @@
+# EnablePaperTrailErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/EnablePaperTrailResponseBody.md b/docs/models/errors/EnablePaperTrailResponseBody.md
new file mode 100644
index 00000000..4aa29ce0
--- /dev/null
+++ b/docs/models/errors/EnablePaperTrailResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.EnablePaperTrailErrors](../../models/errors/EnablePaperTrailErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/Errors.md b/docs/models/errors/Errors.md
new file mode 100644
index 00000000..0ecfc540
--- /dev/null
+++ b/docs/models/errors/Errors.md
@@ -0,0 +1,10 @@
+# Errors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetAvailableClientsErrors.md b/docs/models/errors/GetAvailableClientsErrors.md
new file mode 100644
index 00000000..cf9be793
--- /dev/null
+++ b/docs/models/errors/GetAvailableClientsErrors.md
@@ -0,0 +1,10 @@
+# GetAvailableClientsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetAvailableClientsResponseBody.md b/docs/models/errors/GetAvailableClientsResponseBody.md
new file mode 100644
index 00000000..b6bed79c
--- /dev/null
+++ b/docs/models/errors/GetAvailableClientsResponseBody.md
@@ -0,0 +1,11 @@
+# GetAvailableClientsResponseBody
+
+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.errors.GetAvailableClientsErrors](../../models/errors/GetAvailableClientsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetBandwidthStatisticsErrors.md b/docs/models/errors/GetBandwidthStatisticsErrors.md
new file mode 100644
index 00000000..141e81d7
--- /dev/null
+++ b/docs/models/errors/GetBandwidthStatisticsErrors.md
@@ -0,0 +1,10 @@
+# GetBandwidthStatisticsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetBandwidthStatisticsResponseBody.md b/docs/models/errors/GetBandwidthStatisticsResponseBody.md
new file mode 100644
index 00000000..61ce8fce
--- /dev/null
+++ b/docs/models/errors/GetBandwidthStatisticsResponseBody.md
@@ -0,0 +1,11 @@
+# GetBandwidthStatisticsResponseBody
+
+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.errors.GetBandwidthStatisticsErrors](../../models/errors/GetBandwidthStatisticsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetButlerTasksErrors.md b/docs/models/errors/GetButlerTasksErrors.md
new file mode 100644
index 00000000..2653e76d
--- /dev/null
+++ b/docs/models/errors/GetButlerTasksErrors.md
@@ -0,0 +1,10 @@
+# GetButlerTasksErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetButlerTasksResponseBody.md b/docs/models/errors/GetButlerTasksResponseBody.md
new file mode 100644
index 00000000..409d7e99
--- /dev/null
+++ b/docs/models/errors/GetButlerTasksResponseBody.md
@@ -0,0 +1,11 @@
+# GetButlerTasksResponseBody
+
+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.errors.GetButlerTasksErrors](../../models/errors/GetButlerTasksErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetDevicesErrors.md b/docs/models/errors/GetDevicesErrors.md
new file mode 100644
index 00000000..5f3725c1
--- /dev/null
+++ b/docs/models/errors/GetDevicesErrors.md
@@ -0,0 +1,10 @@
+# GetDevicesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetDevicesResponseBody.md b/docs/models/errors/GetDevicesResponseBody.md
new file mode 100644
index 00000000..2d3a2c92
--- /dev/null
+++ b/docs/models/errors/GetDevicesResponseBody.md
@@ -0,0 +1,11 @@
+# GetDevicesResponseBody
+
+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.errors.GetDevicesErrors](../../models/errors/GetDevicesErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetFileHashErrors.md b/docs/models/errors/GetFileHashErrors.md
new file mode 100644
index 00000000..099a8ff1
--- /dev/null
+++ b/docs/models/errors/GetFileHashErrors.md
@@ -0,0 +1,10 @@
+# GetFileHashErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetFileHashResponseBody.md b/docs/models/errors/GetFileHashResponseBody.md
new file mode 100644
index 00000000..6c1d33cd
--- /dev/null
+++ b/docs/models/errors/GetFileHashResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.GetFileHashErrors](../../models/errors/GetFileHashErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetGlobalHubsErrors.md b/docs/models/errors/GetGlobalHubsErrors.md
new file mode 100644
index 00000000..ef0e5901
--- /dev/null
+++ b/docs/models/errors/GetGlobalHubsErrors.md
@@ -0,0 +1,10 @@
+# GetGlobalHubsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetGlobalHubsResponseBody.md b/docs/models/errors/GetGlobalHubsResponseBody.md
new file mode 100644
index 00000000..1aee6f94
--- /dev/null
+++ b/docs/models/errors/GetGlobalHubsResponseBody.md
@@ -0,0 +1,11 @@
+# GetGlobalHubsResponseBody
+
+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.errors.GetGlobalHubsErrors](../../models/errors/GetGlobalHubsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetHomeDataErrors.md b/docs/models/errors/GetHomeDataErrors.md
new file mode 100644
index 00000000..cb4b7f7a
--- /dev/null
+++ b/docs/models/errors/GetHomeDataErrors.md
@@ -0,0 +1,10 @@
+# GetHomeDataErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetHomeDataResponseBody.md b/docs/models/errors/GetHomeDataResponseBody.md
new file mode 100644
index 00000000..1115e7af
--- /dev/null
+++ b/docs/models/errors/GetHomeDataResponseBody.md
@@ -0,0 +1,11 @@
+# GetHomeDataResponseBody
+
+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.errors.GetHomeDataErrors](../../models/errors/GetHomeDataErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibrariesErrors.md b/docs/models/errors/GetLibrariesErrors.md
new file mode 100644
index 00000000..d8e4922c
--- /dev/null
+++ b/docs/models/errors/GetLibrariesErrors.md
@@ -0,0 +1,10 @@
+# GetLibrariesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibrariesResponseBody.md b/docs/models/errors/GetLibrariesResponseBody.md
new file mode 100644
index 00000000..87168f57
--- /dev/null
+++ b/docs/models/errors/GetLibrariesResponseBody.md
@@ -0,0 +1,11 @@
+# GetLibrariesResponseBody
+
+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.errors.GetLibrariesErrors](../../models/errors/GetLibrariesErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibraryErrors.md b/docs/models/errors/GetLibraryErrors.md
new file mode 100644
index 00000000..8f59e3e0
--- /dev/null
+++ b/docs/models/errors/GetLibraryErrors.md
@@ -0,0 +1,10 @@
+# GetLibraryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibraryHubsErrors.md b/docs/models/errors/GetLibraryHubsErrors.md
new file mode 100644
index 00000000..52347ca8
--- /dev/null
+++ b/docs/models/errors/GetLibraryHubsErrors.md
@@ -0,0 +1,10 @@
+# GetLibraryHubsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibraryHubsResponseBody.md b/docs/models/errors/GetLibraryHubsResponseBody.md
new file mode 100644
index 00000000..d72d4476
--- /dev/null
+++ b/docs/models/errors/GetLibraryHubsResponseBody.md
@@ -0,0 +1,11 @@
+# GetLibraryHubsResponseBody
+
+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.errors.GetLibraryHubsErrors](../../models/errors/GetLibraryHubsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibraryItemsErrors.md b/docs/models/errors/GetLibraryItemsErrors.md
new file mode 100644
index 00000000..5c814a7e
--- /dev/null
+++ b/docs/models/errors/GetLibraryItemsErrors.md
@@ -0,0 +1,10 @@
+# GetLibraryItemsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibraryItemsResponseBody.md b/docs/models/errors/GetLibraryItemsResponseBody.md
new file mode 100644
index 00000000..5a2b744f
--- /dev/null
+++ b/docs/models/errors/GetLibraryItemsResponseBody.md
@@ -0,0 +1,11 @@
+# GetLibraryItemsResponseBody
+
+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.errors.GetLibraryItemsErrors](../../models/errors/GetLibraryItemsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetLibraryResponseBody.md b/docs/models/errors/GetLibraryResponseBody.md
new file mode 100644
index 00000000..355a29a1
--- /dev/null
+++ b/docs/models/errors/GetLibraryResponseBody.md
@@ -0,0 +1,11 @@
+# GetLibraryResponseBody
+
+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.errors.GetLibraryErrors](../../models/errors/GetLibraryErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetMetadataChildrenErrors.md b/docs/models/errors/GetMetadataChildrenErrors.md
new file mode 100644
index 00000000..da08eb98
--- /dev/null
+++ b/docs/models/errors/GetMetadataChildrenErrors.md
@@ -0,0 +1,10 @@
+# GetMetadataChildrenErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetMetadataChildrenResponseBody.md b/docs/models/errors/GetMetadataChildrenResponseBody.md
new file mode 100644
index 00000000..1f25880f
--- /dev/null
+++ b/docs/models/errors/GetMetadataChildrenResponseBody.md
@@ -0,0 +1,11 @@
+# GetMetadataChildrenResponseBody
+
+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.errors.GetMetadataChildrenErrors](../../models/errors/GetMetadataChildrenErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetMetadataErrors.md b/docs/models/errors/GetMetadataErrors.md
new file mode 100644
index 00000000..2fb701a8
--- /dev/null
+++ b/docs/models/errors/GetMetadataErrors.md
@@ -0,0 +1,10 @@
+# GetMetadataErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetMetadataResponseBody.md b/docs/models/errors/GetMetadataResponseBody.md
new file mode 100644
index 00000000..06c4cd96
--- /dev/null
+++ b/docs/models/errors/GetMetadataResponseBody.md
@@ -0,0 +1,11 @@
+# GetMetadataResponseBody
+
+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.errors.GetMetadataErrors](../../models/errors/GetMetadataErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetMyPlexAccountErrors.md b/docs/models/errors/GetMyPlexAccountErrors.md
new file mode 100644
index 00000000..fc56a31a
--- /dev/null
+++ b/docs/models/errors/GetMyPlexAccountErrors.md
@@ -0,0 +1,10 @@
+# GetMyPlexAccountErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetMyPlexAccountResponseBody.md b/docs/models/errors/GetMyPlexAccountResponseBody.md
new file mode 100644
index 00000000..49115804
--- /dev/null
+++ b/docs/models/errors/GetMyPlexAccountResponseBody.md
@@ -0,0 +1,11 @@
+# GetMyPlexAccountResponseBody
+
+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.errors.GetMyPlexAccountErrors](../../models/errors/GetMyPlexAccountErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetOnDeckErrors.md b/docs/models/errors/GetOnDeckErrors.md
new file mode 100644
index 00000000..bca5321d
--- /dev/null
+++ b/docs/models/errors/GetOnDeckErrors.md
@@ -0,0 +1,10 @@
+# GetOnDeckErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetOnDeckResponseBody.md b/docs/models/errors/GetOnDeckResponseBody.md
new file mode 100644
index 00000000..e5c1ad89
--- /dev/null
+++ b/docs/models/errors/GetOnDeckResponseBody.md
@@ -0,0 +1,11 @@
+# GetOnDeckResponseBody
+
+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.errors.GetOnDeckErrors](../../models/errors/GetOnDeckErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetPinErrors.md b/docs/models/errors/GetPinErrors.md
new file mode 100644
index 00000000..fe709c81
--- /dev/null
+++ b/docs/models/errors/GetPinErrors.md
@@ -0,0 +1,10 @@
+# GetPinErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1000 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 400 |
\ No newline at end of file
diff --git a/docs/models/errors/GetPinResponseBody.md b/docs/models/errors/GetPinResponseBody.md
new file mode 100644
index 00000000..3489784b
--- /dev/null
+++ b/docs/models/errors/GetPinResponseBody.md
@@ -0,0 +1,11 @@
+# GetPinResponseBody
+
+X-Plex-Client-Identifier is missing
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `errors` | List<[lukehagar.plexapi.plexapi.models.errors.GetPinErrors](../../models/errors/GetPinErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetPlaylistContentsErrors.md b/docs/models/errors/GetPlaylistContentsErrors.md
new file mode 100644
index 00000000..7f62a042
--- /dev/null
+++ b/docs/models/errors/GetPlaylistContentsErrors.md
@@ -0,0 +1,10 @@
+# GetPlaylistContentsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetPlaylistContentsResponseBody.md b/docs/models/errors/GetPlaylistContentsResponseBody.md
new file mode 100644
index 00000000..6af4e429
--- /dev/null
+++ b/docs/models/errors/GetPlaylistContentsResponseBody.md
@@ -0,0 +1,11 @@
+# GetPlaylistContentsResponseBody
+
+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.errors.GetPlaylistContentsErrors](../../models/errors/GetPlaylistContentsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetPlaylistErrors.md b/docs/models/errors/GetPlaylistErrors.md
new file mode 100644
index 00000000..1b861143
--- /dev/null
+++ b/docs/models/errors/GetPlaylistErrors.md
@@ -0,0 +1,10 @@
+# GetPlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetPlaylistResponseBody.md b/docs/models/errors/GetPlaylistResponseBody.md
new file mode 100644
index 00000000..ef8fbc6d
--- /dev/null
+++ b/docs/models/errors/GetPlaylistResponseBody.md
@@ -0,0 +1,11 @@
+# GetPlaylistResponseBody
+
+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.errors.GetPlaylistErrors](../../models/errors/GetPlaylistErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetPlaylistsErrors.md b/docs/models/errors/GetPlaylistsErrors.md
new file mode 100644
index 00000000..cf446974
--- /dev/null
+++ b/docs/models/errors/GetPlaylistsErrors.md
@@ -0,0 +1,10 @@
+# GetPlaylistsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetPlaylistsResponseBody.md b/docs/models/errors/GetPlaylistsResponseBody.md
new file mode 100644
index 00000000..03a59fc5
--- /dev/null
+++ b/docs/models/errors/GetPlaylistsResponseBody.md
@@ -0,0 +1,11 @@
+# GetPlaylistsResponseBody
+
+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.errors.GetPlaylistsErrors](../../models/errors/GetPlaylistsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetRecentlyAddedErrors.md b/docs/models/errors/GetRecentlyAddedErrors.md
new file mode 100644
index 00000000..56620fd1
--- /dev/null
+++ b/docs/models/errors/GetRecentlyAddedErrors.md
@@ -0,0 +1,10 @@
+# GetRecentlyAddedErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetRecentlyAddedResponseBody.md b/docs/models/errors/GetRecentlyAddedResponseBody.md
new file mode 100644
index 00000000..086a3c2b
--- /dev/null
+++ b/docs/models/errors/GetRecentlyAddedResponseBody.md
@@ -0,0 +1,11 @@
+# GetRecentlyAddedResponseBody
+
+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.errors.GetRecentlyAddedErrors](../../models/errors/GetRecentlyAddedErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetResizedPhotoErrors.md b/docs/models/errors/GetResizedPhotoErrors.md
new file mode 100644
index 00000000..eed2b582
--- /dev/null
+++ b/docs/models/errors/GetResizedPhotoErrors.md
@@ -0,0 +1,10 @@
+# GetResizedPhotoErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetResizedPhotoResponseBody.md b/docs/models/errors/GetResizedPhotoResponseBody.md
new file mode 100644
index 00000000..6098c70c
--- /dev/null
+++ b/docs/models/errors/GetResizedPhotoResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.GetResizedPhotoErrors](../../models/errors/GetResizedPhotoErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetResourcesStatisticsErrors.md b/docs/models/errors/GetResourcesStatisticsErrors.md
new file mode 100644
index 00000000..0bbb259f
--- /dev/null
+++ b/docs/models/errors/GetResourcesStatisticsErrors.md
@@ -0,0 +1,10 @@
+# GetResourcesStatisticsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetResourcesStatisticsResponseBody.md b/docs/models/errors/GetResourcesStatisticsResponseBody.md
new file mode 100644
index 00000000..3334d2f9
--- /dev/null
+++ b/docs/models/errors/GetResourcesStatisticsResponseBody.md
@@ -0,0 +1,11 @@
+# GetResourcesStatisticsResponseBody
+
+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.errors.GetResourcesStatisticsErrors](../../models/errors/GetResourcesStatisticsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetSearchResultsErrors.md b/docs/models/errors/GetSearchResultsErrors.md
new file mode 100644
index 00000000..1cd3b3f6
--- /dev/null
+++ b/docs/models/errors/GetSearchResultsErrors.md
@@ -0,0 +1,10 @@
+# GetSearchResultsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetSearchResultsResponseBody.md b/docs/models/errors/GetSearchResultsResponseBody.md
new file mode 100644
index 00000000..9465dd10
--- /dev/null
+++ b/docs/models/errors/GetSearchResultsResponseBody.md
@@ -0,0 +1,11 @@
+# GetSearchResultsResponseBody
+
+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.errors.GetSearchResultsErrors](../../models/errors/GetSearchResultsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerActivitiesErrors.md b/docs/models/errors/GetServerActivitiesErrors.md
new file mode 100644
index 00000000..43cc8db5
--- /dev/null
+++ b/docs/models/errors/GetServerActivitiesErrors.md
@@ -0,0 +1,10 @@
+# GetServerActivitiesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerActivitiesResponseBody.md b/docs/models/errors/GetServerActivitiesResponseBody.md
new file mode 100644
index 00000000..8903b02c
--- /dev/null
+++ b/docs/models/errors/GetServerActivitiesResponseBody.md
@@ -0,0 +1,11 @@
+# GetServerActivitiesResponseBody
+
+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.errors.GetServerActivitiesErrors](../../models/errors/GetServerActivitiesErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerCapabilitiesResponseBody.md b/docs/models/errors/GetServerCapabilitiesResponseBody.md
new file mode 100644
index 00000000..f37f6af1
--- /dev/null
+++ b/docs/models/errors/GetServerCapabilitiesResponseBody.md
@@ -0,0 +1,11 @@
+# GetServerCapabilitiesResponseBody
+
+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.errors.Errors](../../models/errors/Errors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerIdentityErrors.md b/docs/models/errors/GetServerIdentityErrors.md
new file mode 100644
index 00000000..7d210f5a
--- /dev/null
+++ b/docs/models/errors/GetServerIdentityErrors.md
@@ -0,0 +1,10 @@
+# GetServerIdentityErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerIdentityResponseBody.md b/docs/models/errors/GetServerIdentityResponseBody.md
new file mode 100644
index 00000000..606a74ad
--- /dev/null
+++ b/docs/models/errors/GetServerIdentityResponseBody.md
@@ -0,0 +1,11 @@
+# GetServerIdentityResponseBody
+
+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.errors.GetServerIdentityErrors](../../models/errors/GetServerIdentityErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerListErrors.md b/docs/models/errors/GetServerListErrors.md
new file mode 100644
index 00000000..d690b4b7
--- /dev/null
+++ b/docs/models/errors/GetServerListErrors.md
@@ -0,0 +1,10 @@
+# GetServerListErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerListResponseBody.md b/docs/models/errors/GetServerListResponseBody.md
new file mode 100644
index 00000000..2ef710e8
--- /dev/null
+++ b/docs/models/errors/GetServerListResponseBody.md
@@ -0,0 +1,11 @@
+# GetServerListResponseBody
+
+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.errors.GetServerListErrors](../../models/errors/GetServerListErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerPreferencesErrors.md b/docs/models/errors/GetServerPreferencesErrors.md
new file mode 100644
index 00000000..f3ab07cc
--- /dev/null
+++ b/docs/models/errors/GetServerPreferencesErrors.md
@@ -0,0 +1,10 @@
+# GetServerPreferencesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetServerPreferencesResponseBody.md b/docs/models/errors/GetServerPreferencesResponseBody.md
new file mode 100644
index 00000000..da327cf0
--- /dev/null
+++ b/docs/models/errors/GetServerPreferencesResponseBody.md
@@ -0,0 +1,11 @@
+# GetServerPreferencesResponseBody
+
+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.errors.GetServerPreferencesErrors](../../models/errors/GetServerPreferencesErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetSessionHistoryErrors.md b/docs/models/errors/GetSessionHistoryErrors.md
new file mode 100644
index 00000000..ac4449b5
--- /dev/null
+++ b/docs/models/errors/GetSessionHistoryErrors.md
@@ -0,0 +1,10 @@
+# GetSessionHistoryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetSessionHistoryResponseBody.md b/docs/models/errors/GetSessionHistoryResponseBody.md
new file mode 100644
index 00000000..98b962d0
--- /dev/null
+++ b/docs/models/errors/GetSessionHistoryResponseBody.md
@@ -0,0 +1,11 @@
+# GetSessionHistoryResponseBody
+
+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.errors.GetSessionHistoryErrors](../../models/errors/GetSessionHistoryErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetSessionsErrors.md b/docs/models/errors/GetSessionsErrors.md
new file mode 100644
index 00000000..97a6388e
--- /dev/null
+++ b/docs/models/errors/GetSessionsErrors.md
@@ -0,0 +1,10 @@
+# GetSessionsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetSessionsResponseBody.md b/docs/models/errors/GetSessionsResponseBody.md
new file mode 100644
index 00000000..f18d6a50
--- /dev/null
+++ b/docs/models/errors/GetSessionsResponseBody.md
@@ -0,0 +1,11 @@
+# GetSessionsResponseBody
+
+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.errors.GetSessionsErrors](../../models/errors/GetSessionsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetSourceConnectionInformationErrors.md b/docs/models/errors/GetSourceConnectionInformationErrors.md
new file mode 100644
index 00000000..3067c3c7
--- /dev/null
+++ b/docs/models/errors/GetSourceConnectionInformationErrors.md
@@ -0,0 +1,10 @@
+# GetSourceConnectionInformationErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetSourceConnectionInformationResponseBody.md b/docs/models/errors/GetSourceConnectionInformationResponseBody.md
new file mode 100644
index 00000000..43d60357
--- /dev/null
+++ b/docs/models/errors/GetSourceConnectionInformationResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.GetSourceConnectionInformationErrors](../../models/errors/GetSourceConnectionInformationErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetStatisticsErrors.md b/docs/models/errors/GetStatisticsErrors.md
new file mode 100644
index 00000000..74db22a2
--- /dev/null
+++ b/docs/models/errors/GetStatisticsErrors.md
@@ -0,0 +1,10 @@
+# GetStatisticsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetStatisticsResponseBody.md b/docs/models/errors/GetStatisticsResponseBody.md
new file mode 100644
index 00000000..1ae97853
--- /dev/null
+++ b/docs/models/errors/GetStatisticsResponseBody.md
@@ -0,0 +1,11 @@
+# GetStatisticsResponseBody
+
+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.errors.GetStatisticsErrors](../../models/errors/GetStatisticsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetTimelineErrors.md b/docs/models/errors/GetTimelineErrors.md
new file mode 100644
index 00000000..2d061105
--- /dev/null
+++ b/docs/models/errors/GetTimelineErrors.md
@@ -0,0 +1,10 @@
+# GetTimelineErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetTimelineResponseBody.md b/docs/models/errors/GetTimelineResponseBody.md
new file mode 100644
index 00000000..99193424
--- /dev/null
+++ b/docs/models/errors/GetTimelineResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.GetTimelineErrors](../../models/errors/GetTimelineErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetTokenErrors.md b/docs/models/errors/GetTokenErrors.md
new file mode 100644
index 00000000..a6b5fe44
--- /dev/null
+++ b/docs/models/errors/GetTokenErrors.md
@@ -0,0 +1,10 @@
+# GetTokenErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1000 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 400 |
\ No newline at end of file
diff --git a/docs/models/errors/GetTokenResponseBody.md b/docs/models/errors/GetTokenResponseBody.md
new file mode 100644
index 00000000..f474014f
--- /dev/null
+++ b/docs/models/errors/GetTokenResponseBody.md
@@ -0,0 +1,11 @@
+# GetTokenResponseBody
+
+X-Plex-Client-Identifier is missing
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `errors` | List<[lukehagar.plexapi.plexapi.models.errors.GetTokenErrors](../../models/errors/GetTokenErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetTranscodeSessionsErrors.md b/docs/models/errors/GetTranscodeSessionsErrors.md
new file mode 100644
index 00000000..fb840f0d
--- /dev/null
+++ b/docs/models/errors/GetTranscodeSessionsErrors.md
@@ -0,0 +1,10 @@
+# GetTranscodeSessionsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetTranscodeSessionsResponseBody.md b/docs/models/errors/GetTranscodeSessionsResponseBody.md
new file mode 100644
index 00000000..910d2e12
--- /dev/null
+++ b/docs/models/errors/GetTranscodeSessionsResponseBody.md
@@ -0,0 +1,11 @@
+# GetTranscodeSessionsResponseBody
+
+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.errors.GetTranscodeSessionsErrors](../../models/errors/GetTranscodeSessionsErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetTransientTokenErrors.md b/docs/models/errors/GetTransientTokenErrors.md
new file mode 100644
index 00000000..176d28cb
--- /dev/null
+++ b/docs/models/errors/GetTransientTokenErrors.md
@@ -0,0 +1,10 @@
+# GetTransientTokenErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetTransientTokenResponseBody.md b/docs/models/errors/GetTransientTokenResponseBody.md
new file mode 100644
index 00000000..493f659d
--- /dev/null
+++ b/docs/models/errors/GetTransientTokenResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.GetTransientTokenErrors](../../models/errors/GetTransientTokenErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetUpdateStatusErrors.md b/docs/models/errors/GetUpdateStatusErrors.md
new file mode 100644
index 00000000..37bbefd4
--- /dev/null
+++ b/docs/models/errors/GetUpdateStatusErrors.md
@@ -0,0 +1,10 @@
+# GetUpdateStatusErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetUpdateStatusResponseBody.md b/docs/models/errors/GetUpdateStatusResponseBody.md
new file mode 100644
index 00000000..3be63c7d
--- /dev/null
+++ b/docs/models/errors/GetUpdateStatusResponseBody.md
@@ -0,0 +1,11 @@
+# GetUpdateStatusResponseBody
+
+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.errors.GetUpdateStatusErrors](../../models/errors/GetUpdateStatusErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/GetWatchlistErrors.md b/docs/models/errors/GetWatchlistErrors.md
new file mode 100644
index 00000000..ed5478ce
--- /dev/null
+++ b/docs/models/errors/GetWatchlistErrors.md
@@ -0,0 +1,10 @@
+# GetWatchlistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/GetWatchlistResponseBody.md b/docs/models/errors/GetWatchlistResponseBody.md
new file mode 100644
index 00000000..796cdeea
--- /dev/null
+++ b/docs/models/errors/GetWatchlistResponseBody.md
@@ -0,0 +1,11 @@
+# GetWatchlistResponseBody
+
+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.errors.GetWatchlistErrors](../../models/errors/GetWatchlistErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/LogLineErrors.md b/docs/models/errors/LogLineErrors.md
new file mode 100644
index 00000000..ccef7a58
--- /dev/null
+++ b/docs/models/errors/LogLineErrors.md
@@ -0,0 +1,10 @@
+# LogLineErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/LogLineResponseBody.md b/docs/models/errors/LogLineResponseBody.md
new file mode 100644
index 00000000..a257956d
--- /dev/null
+++ b/docs/models/errors/LogLineResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.LogLineErrors](../../models/errors/LogLineErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/LogMultiLineErrors.md b/docs/models/errors/LogMultiLineErrors.md
new file mode 100644
index 00000000..d2e531cf
--- /dev/null
+++ b/docs/models/errors/LogMultiLineErrors.md
@@ -0,0 +1,10 @@
+# LogMultiLineErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/LogMultiLineResponseBody.md b/docs/models/errors/LogMultiLineResponseBody.md
new file mode 100644
index 00000000..f24c81cf
--- /dev/null
+++ b/docs/models/errors/LogMultiLineResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.LogMultiLineErrors](../../models/errors/LogMultiLineErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/MarkPlayedErrors.md b/docs/models/errors/MarkPlayedErrors.md
new file mode 100644
index 00000000..02878d85
--- /dev/null
+++ b/docs/models/errors/MarkPlayedErrors.md
@@ -0,0 +1,10 @@
+# MarkPlayedErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/MarkPlayedResponseBody.md b/docs/models/errors/MarkPlayedResponseBody.md
new file mode 100644
index 00000000..0759d9f4
--- /dev/null
+++ b/docs/models/errors/MarkPlayedResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.MarkPlayedErrors](../../models/errors/MarkPlayedErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/MarkUnplayedErrors.md b/docs/models/errors/MarkUnplayedErrors.md
new file mode 100644
index 00000000..8e71310c
--- /dev/null
+++ b/docs/models/errors/MarkUnplayedErrors.md
@@ -0,0 +1,10 @@
+# MarkUnplayedErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/MarkUnplayedResponseBody.md b/docs/models/errors/MarkUnplayedResponseBody.md
new file mode 100644
index 00000000..1e63d290
--- /dev/null
+++ b/docs/models/errors/MarkUnplayedResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.MarkUnplayedErrors](../../models/errors/MarkUnplayedErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/PerformSearchErrors.md b/docs/models/errors/PerformSearchErrors.md
new file mode 100644
index 00000000..862f8216
--- /dev/null
+++ b/docs/models/errors/PerformSearchErrors.md
@@ -0,0 +1,10 @@
+# PerformSearchErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/PerformSearchResponseBody.md b/docs/models/errors/PerformSearchResponseBody.md
new file mode 100644
index 00000000..34843b00
--- /dev/null
+++ b/docs/models/errors/PerformSearchResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.PerformSearchErrors](../../models/errors/PerformSearchErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/PerformVoiceSearchErrors.md b/docs/models/errors/PerformVoiceSearchErrors.md
new file mode 100644
index 00000000..343873c5
--- /dev/null
+++ b/docs/models/errors/PerformVoiceSearchErrors.md
@@ -0,0 +1,10 @@
+# PerformVoiceSearchErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/PerformVoiceSearchResponseBody.md b/docs/models/errors/PerformVoiceSearchResponseBody.md
new file mode 100644
index 00000000..376e05f2
--- /dev/null
+++ b/docs/models/errors/PerformVoiceSearchResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.PerformVoiceSearchErrors](../../models/errors/PerformVoiceSearchErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/RefreshLibraryErrors.md b/docs/models/errors/RefreshLibraryErrors.md
new file mode 100644
index 00000000..53ef46f9
--- /dev/null
+++ b/docs/models/errors/RefreshLibraryErrors.md
@@ -0,0 +1,10 @@
+# RefreshLibraryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/RefreshLibraryResponseBody.md b/docs/models/errors/RefreshLibraryResponseBody.md
new file mode 100644
index 00000000..922c5c00
--- /dev/null
+++ b/docs/models/errors/RefreshLibraryResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.RefreshLibraryErrors](../../models/errors/RefreshLibraryErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/SearchLibraryErrors.md b/docs/models/errors/SearchLibraryErrors.md
new file mode 100644
index 00000000..2cfa10cb
--- /dev/null
+++ b/docs/models/errors/SearchLibraryErrors.md
@@ -0,0 +1,10 @@
+# SearchLibraryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/SearchLibraryResponseBody.md b/docs/models/errors/SearchLibraryResponseBody.md
new file mode 100644
index 00000000..e53fbb23
--- /dev/null
+++ b/docs/models/errors/SearchLibraryResponseBody.md
@@ -0,0 +1,11 @@
+# SearchLibraryResponseBody
+
+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.errors.SearchLibraryErrors](../../models/errors/SearchLibraryErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/StartAllTasksErrors.md b/docs/models/errors/StartAllTasksErrors.md
new file mode 100644
index 00000000..c18c98c8
--- /dev/null
+++ b/docs/models/errors/StartAllTasksErrors.md
@@ -0,0 +1,10 @@
+# StartAllTasksErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/StartAllTasksResponseBody.md b/docs/models/errors/StartAllTasksResponseBody.md
new file mode 100644
index 00000000..efbbeb56
--- /dev/null
+++ b/docs/models/errors/StartAllTasksResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.StartAllTasksErrors](../../models/errors/StartAllTasksErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/StartTaskErrors.md b/docs/models/errors/StartTaskErrors.md
new file mode 100644
index 00000000..84dc2465
--- /dev/null
+++ b/docs/models/errors/StartTaskErrors.md
@@ -0,0 +1,10 @@
+# StartTaskErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/StartTaskResponseBody.md b/docs/models/errors/StartTaskResponseBody.md
new file mode 100644
index 00000000..ea1621fb
--- /dev/null
+++ b/docs/models/errors/StartTaskResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.StartTaskErrors](../../models/errors/StartTaskErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/StartUniversalTranscodeErrors.md b/docs/models/errors/StartUniversalTranscodeErrors.md
new file mode 100644
index 00000000..8ee3e29a
--- /dev/null
+++ b/docs/models/errors/StartUniversalTranscodeErrors.md
@@ -0,0 +1,10 @@
+# StartUniversalTranscodeErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/StartUniversalTranscodeResponseBody.md b/docs/models/errors/StartUniversalTranscodeResponseBody.md
new file mode 100644
index 00000000..16a4d1b5
--- /dev/null
+++ b/docs/models/errors/StartUniversalTranscodeResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.StartUniversalTranscodeErrors](../../models/errors/StartUniversalTranscodeErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/StopAllTasksErrors.md b/docs/models/errors/StopAllTasksErrors.md
new file mode 100644
index 00000000..c140f8de
--- /dev/null
+++ b/docs/models/errors/StopAllTasksErrors.md
@@ -0,0 +1,10 @@
+# StopAllTasksErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/StopAllTasksResponseBody.md b/docs/models/errors/StopAllTasksResponseBody.md
new file mode 100644
index 00000000..9b70570a
--- /dev/null
+++ b/docs/models/errors/StopAllTasksResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.StopAllTasksErrors](../../models/errors/StopAllTasksErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/StopTaskErrors.md b/docs/models/errors/StopTaskErrors.md
new file mode 100644
index 00000000..525de390
--- /dev/null
+++ b/docs/models/errors/StopTaskErrors.md
@@ -0,0 +1,10 @@
+# StopTaskErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/StopTaskResponseBody.md b/docs/models/errors/StopTaskResponseBody.md
new file mode 100644
index 00000000..4084cc4a
--- /dev/null
+++ b/docs/models/errors/StopTaskResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.StopTaskErrors](../../models/errors/StopTaskErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/StopTranscodeSessionErrors.md b/docs/models/errors/StopTranscodeSessionErrors.md
new file mode 100644
index 00000000..c237071b
--- /dev/null
+++ b/docs/models/errors/StopTranscodeSessionErrors.md
@@ -0,0 +1,10 @@
+# StopTranscodeSessionErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/StopTranscodeSessionResponseBody.md b/docs/models/errors/StopTranscodeSessionResponseBody.md
new file mode 100644
index 00000000..584e48fd
--- /dev/null
+++ b/docs/models/errors/StopTranscodeSessionResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.StopTranscodeSessionErrors](../../models/errors/StopTranscodeSessionErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/UpdatePlayProgressErrors.md b/docs/models/errors/UpdatePlayProgressErrors.md
new file mode 100644
index 00000000..5dfceded
--- /dev/null
+++ b/docs/models/errors/UpdatePlayProgressErrors.md
@@ -0,0 +1,10 @@
+# UpdatePlayProgressErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/UpdatePlayProgressResponseBody.md b/docs/models/errors/UpdatePlayProgressResponseBody.md
new file mode 100644
index 00000000..448194bc
--- /dev/null
+++ b/docs/models/errors/UpdatePlayProgressResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.UpdatePlayProgressErrors](../../models/errors/UpdatePlayProgressErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/UpdatePlaylistErrors.md b/docs/models/errors/UpdatePlaylistErrors.md
new file mode 100644
index 00000000..af6ff2aa
--- /dev/null
+++ b/docs/models/errors/UpdatePlaylistErrors.md
@@ -0,0 +1,10 @@
+# UpdatePlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/UpdatePlaylistResponseBody.md b/docs/models/errors/UpdatePlaylistResponseBody.md
new file mode 100644
index 00000000..2a1cdccc
--- /dev/null
+++ b/docs/models/errors/UpdatePlaylistResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.UpdatePlaylistErrors](../../models/errors/UpdatePlaylistErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ No newline at end of file
diff --git a/docs/models/errors/UploadPlaylistErrors.md b/docs/models/errors/UploadPlaylistErrors.md
new file mode 100644
index 00000000..bf15816f
--- /dev/null
+++ b/docs/models/errors/UploadPlaylistErrors.md
@@ -0,0 +1,10 @@
+# UploadPlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *Optional extends String>* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/errors/UploadPlaylistResponseBody.md b/docs/models/errors/UploadPlaylistResponseBody.md
new file mode 100644
index 00000000..4470df95
--- /dev/null
+++ b/docs/models/errors/UploadPlaylistResponseBody.md
@@ -0,0 +1,11 @@
+# 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.errors.UploadPlaylistErrors](../../models/errors/UploadPlaylistErrors.md)> | :heavy_minus_sign: | N/A |
+| `rawResponse` | [HttpResponse](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing |
\ 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..4bdef685
--- /dev/null
+++ b/docs/models/operations/Account.md
@@ -0,0 +1,15 @@
+# Account
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 238960586 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /accounts/238960586 |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | Diane |
+| `defaultAudioLanguage` | *Optional extends String>* | :heavy_minus_sign: | N/A | en |
+| `autoSelectAudio` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `defaultSubtitleLanguage` | *Optional extends String>* | :heavy_minus_sign: | N/A | en |
+| `subtitleMode` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `thumb` | *Optional extends 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..35203574
--- /dev/null
+++ b/docs/models/operations/Activity.md
@@ -0,0 +1,15 @@
+# Activity
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `uuid` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `cancellable` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `userID` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `subtitle` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `progress` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `context` | [Optional extends 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/AddPlaylistContentsMediaContainer.md b/docs/models/operations/AddPlaylistContentsMediaContainer.md
new file mode 100644
index 00000000..77af8d3d
--- /dev/null
+++ b/docs/models/operations/AddPlaylistContentsMediaContainer.md
@@ -0,0 +1,11 @@
+# AddPlaylistContentsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `leafCountAdded` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `leafCountRequested` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsMetadata](../../models/operations/AddPlaylistContentsMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..e10c741b
--- /dev/null
+++ b/docs/models/operations/AddPlaylistContentsMetadata.md
@@ -0,0 +1,20 @@
+# AddPlaylistContentsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 94 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/94/items |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | A great playlist |
+| `summary` | *Optional extends String>* | :heavy_minus_sign: | N/A | One of my great playlists |
+| `smart` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `playlistType` | *Optional extends String>* | :heavy_minus_sign: | N/A | video |
+| `composite` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/94/composite/1705800070 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 423000 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 3 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705716458 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705800070 |
\ 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..aeb17ceb
--- /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` | *Optional extends 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..886c5cce
--- /dev/null
+++ b/docs/models/operations/AddPlaylistContentsResponse.md
@@ -0,0 +1,11 @@
+# AddPlaylistContentsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.AddPlaylistContentsResponseBody>](../../models/operations/AddPlaylistContentsResponseBody.md) | :heavy_minus_sign: | Playlist Updated |
\ 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..055d3a5a
--- /dev/null
+++ b/docs/models/operations/AddPlaylistContentsResponseBody.md
@@ -0,0 +1,10 @@
+# AddPlaylistContentsResponseBody
+
+Playlist Updated
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/ApplyUpdatesRequest.md b/docs/models/operations/ApplyUpdatesRequest.md
new file mode 100644
index 00000000..7e0aa3b9
--- /dev/null
+++ b/docs/models/operations/ApplyUpdatesRequest.md
@@ -0,0 +1,9 @@
+# ApplyUpdatesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `tonight` | [Optional extends 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 | 1 |
+| `skip` | [Optional extends 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`. | 1 |
\ 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..c2a35e61
--- /dev/null
+++ b/docs/models/operations/ApplyUpdatesResponse.md
@@ -0,0 +1,10 @@
+# ApplyUpdatesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..f7ffc58e
--- /dev/null
+++ b/docs/models/operations/ButlerTask.md
@@ -0,0 +1,13 @@
+# ButlerTask
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | BackupDatabase |
+| `interval` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 3 |
+| `scheduleRandomized` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `enabled` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Backup Database |
+| `description` | *Optional extends 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/CancelServerActivitiesRequest.md b/docs/models/operations/CancelServerActivitiesRequest.md
new file mode 100644
index 00000000..a8eef37a
--- /dev/null
+++ b/docs/models/operations/CancelServerActivitiesRequest.md
@@ -0,0 +1,8 @@
+# CancelServerActivitiesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
+| `activityUUID` | *String* | :heavy_check_mark: | The UUID of the activity to cancel. | 25b71ed5-0f9d-461c-baa7-d404e9e10d3e |
\ 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..6926bda9
--- /dev/null
+++ b/docs/models/operations/CancelServerActivitiesResponse.md
@@ -0,0 +1,10 @@
+# CancelServerActivitiesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..da7a1057
--- /dev/null
+++ b/docs/models/operations/CheckForUpdatesRequest.md
@@ -0,0 +1,8 @@
+# CheckForUpdatesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| `download` | [Optional extends lukehagar.plexapi.plexapi.models.operations.Download>](../../models/operations/Download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. | 1 |
\ 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..5169ba11
--- /dev/null
+++ b/docs/models/operations/CheckForUpdatesResponse.md
@@ -0,0 +1,10 @@
+# CheckForUpdatesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..1b9d8198
--- /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..aa4f9ea1
--- /dev/null
+++ b/docs/models/operations/ClearPlaylistContentsResponse.md
@@ -0,0 +1,10 @@
+# ClearPlaylistContentsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..9587bf66
--- /dev/null
+++ b/docs/models/operations/Context.md
@@ -0,0 +1,8 @@
+# Context
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `librarySectionID` | *Optional extends 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..52a65cbc
--- /dev/null
+++ b/docs/models/operations/Country.md
@@ -0,0 +1,8 @@
+# Country
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | United States of America |
\ 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..d74c0645
--- /dev/null
+++ b/docs/models/operations/CreatePlaylistMediaContainer.md
@@ -0,0 +1,9 @@
+# CreatePlaylistMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 7 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.CreatePlaylistMetadata](../../models/operations/CreatePlaylistMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..170fd9d8
--- /dev/null
+++ b/docs/models/operations/CreatePlaylistMetadata.md
@@ -0,0 +1,23 @@
+# CreatePlaylistMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 96 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/96/items |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | A Great Playlist |
+| `summary` | *Optional extends String>* | :heavy_minus_sign: | N/A | What a great playlist |
+| `smart` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `playlistType` | *Optional extends String>* | :heavy_minus_sign: | N/A | video |
+| `icon` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `viewCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `lastViewedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705719589 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705719589 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705724593 |
+| `composite` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/96/composite/1705724593 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 141000 |
\ 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..9c206ac2
--- /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` | *Optional extends 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..d0023d6a
--- /dev/null
+++ b/docs/models/operations/CreatePlaylistResponse.md
@@ -0,0 +1,11 @@
+# CreatePlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponseBody>](../../models/operations/CreatePlaylistResponseBody.md) | :heavy_minus_sign: | returns all playlists |
\ 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..010f0e6c
--- /dev/null
+++ b/docs/models/operations/CreatePlaylistResponseBody.md
@@ -0,0 +1,10 @@
+# CreatePlaylistResponseBody
+
+returns all playlists
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/DeleteLibraryRequest.md b/docs/models/operations/DeleteLibraryRequest.md
new file mode 100644
index 00000000..daece339
--- /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..96c3bd52
--- /dev/null
+++ b/docs/models/operations/DeleteLibraryResponse.md
@@ -0,0 +1,10 @@
+# DeleteLibraryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..dfebd858
--- /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..b8f7efaa
--- /dev/null
+++ b/docs/models/operations/DeletePlaylistResponse.md
@@ -0,0 +1,10 @@
+# DeletePlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..458946bd
--- /dev/null
+++ b/docs/models/operations/Device.md
@@ -0,0 +1,12 @@
+# Device
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1 |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | iPhone |
+| `platform` | *Optional extends String>* | :heavy_minus_sign: | N/A | iOS |
+| `clientIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `createdAt` | *Optional extends 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..89925f7d
--- /dev/null
+++ b/docs/models/operations/Director.md
@@ -0,0 +1,8 @@
+# Director
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..fbd051d1
--- /dev/null
+++ b/docs/models/operations/Directory.md
@@ -0,0 +1,10 @@
+# Directory
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `count` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `title` | *Optional extends 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/EnablePaperTrailResponse.md b/docs/models/operations/EnablePaperTrailResponse.md
new file mode 100644
index 00000000..7c7d9bf5
--- /dev/null
+++ b/docs/models/operations/EnablePaperTrailResponse.md
@@ -0,0 +1,10 @@
+# EnablePaperTrailResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..6a82c614
--- /dev/null
+++ b/docs/models/operations/Field.md
@@ -0,0 +1,11 @@
+# Field
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | label |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Label |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | tag |
+| `subType` | *Optional extends 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..d1e12c70
--- /dev/null
+++ b/docs/models/operations/FieldType.md
@@ -0,0 +1,9 @@
+# FieldType
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | resolution |
+| `operator` | List<[lukehagar.plexapi.plexapi.models.operations.Operator](../../models/operations/Operator.md)> | :heavy_minus_sign: | N/A | |
\ 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..6b3af5a1
--- /dev/null
+++ b/docs/models/operations/Filter.md
@@ -0,0 +1,11 @@
+# Filter
+
+Filters content by field and direction/equality
+(Unknown if viewedAt is the only supported column)
+
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------- | ----------- | ----------- | ----------- |
\ 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..383063b0
--- /dev/null
+++ b/docs/models/operations/Genre.md
@@ -0,0 +1,8 @@
+# Genre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Comedy |
\ 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..61b1b292
--- /dev/null
+++ b/docs/models/operations/GetAvailableClientsMediaContainer.md
@@ -0,0 +1,9 @@
+# GetAvailableClientsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends 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..e594afa8
--- /dev/null
+++ b/docs/models/operations/GetAvailableClientsResponse.md
@@ -0,0 +1,11 @@
+# GetAvailableClientsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetAvailableClientsResponseBody>](../../models/operations/GetAvailableClientsResponseBody.md) | :heavy_minus_sign: | Available Clients |
\ 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..60241bfd
--- /dev/null
+++ b/docs/models/operations/GetAvailableClientsResponseBody.md
@@ -0,0 +1,10 @@
+# GetAvailableClientsResponseBody
+
+Available Clients
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetBandwidthStatisticsAccount.md b/docs/models/operations/GetBandwidthStatisticsAccount.md
new file mode 100644
index 00000000..eed6f39c
--- /dev/null
+++ b/docs/models/operations/GetBandwidthStatisticsAccount.md
@@ -0,0 +1,15 @@
+# GetBandwidthStatisticsAccount
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 238960586 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /accounts/238960586 |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | Diane |
+| `defaultAudioLanguage` | *Optional extends String>* | :heavy_minus_sign: | N/A | en |
+| `autoSelectAudio` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `defaultSubtitleLanguage` | *Optional extends String>* | :heavy_minus_sign: | N/A | en |
+| `subtitleMode` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `thumb` | *Optional extends 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/GetBandwidthStatisticsDevice.md b/docs/models/operations/GetBandwidthStatisticsDevice.md
new file mode 100644
index 00000000..a98ee64d
--- /dev/null
+++ b/docs/models/operations/GetBandwidthStatisticsDevice.md
@@ -0,0 +1,12 @@
+# GetBandwidthStatisticsDevice
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 208 |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | Roku Express |
+| `platform` | *Optional extends String>* | :heavy_minus_sign: | N/A | Roku |
+| `clientIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | 793095d235660625108ef785cc7646e9 |
+| `createdAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1706470556 |
\ No newline at end of file
diff --git a/docs/models/operations/GetBandwidthStatisticsMediaContainer.md b/docs/models/operations/GetBandwidthStatisticsMediaContainer.md
new file mode 100644
index 00000000..0431732b
--- /dev/null
+++ b/docs/models/operations/GetBandwidthStatisticsMediaContainer.md
@@ -0,0 +1,11 @@
+# GetBandwidthStatisticsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 5497 |
+| `device` | List<[lukehagar.plexapi.plexapi.models.operations.GetBandwidthStatisticsDevice](../../models/operations/GetBandwidthStatisticsDevice.md)> | :heavy_minus_sign: | N/A | |
+| `account` | List<[lukehagar.plexapi.plexapi.models.operations.GetBandwidthStatisticsAccount](../../models/operations/GetBandwidthStatisticsAccount.md)> | :heavy_minus_sign: | N/A | |
+| `statisticsBandwidth` | List<[lukehagar.plexapi.plexapi.models.operations.StatisticsBandwidth](../../models/operations/StatisticsBandwidth.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/GetBandwidthStatisticsRequest.md b/docs/models/operations/GetBandwidthStatisticsRequest.md
new file mode 100644
index 00000000..2d4edb8f
--- /dev/null
+++ b/docs/models/operations/GetBandwidthStatisticsRequest.md
@@ -0,0 +1,8 @@
+# GetBandwidthStatisticsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `timespan` | *Optional extends Long>* | :heavy_minus_sign: | The timespan to retrieve statistics for
the exact meaning of this parameter is not known
| 4 |
\ No newline at end of file
diff --git a/docs/models/operations/GetBandwidthStatisticsResponse.md b/docs/models/operations/GetBandwidthStatisticsResponse.md
new file mode 100644
index 00000000..bda025cb
--- /dev/null
+++ b/docs/models/operations/GetBandwidthStatisticsResponse.md
@@ -0,0 +1,11 @@
+# GetBandwidthStatisticsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetBandwidthStatisticsResponseBody>](../../models/operations/GetBandwidthStatisticsResponseBody.md) | :heavy_minus_sign: | Bandwidth Statistics |
\ No newline at end of file
diff --git a/docs/models/operations/GetBandwidthStatisticsResponseBody.md b/docs/models/operations/GetBandwidthStatisticsResponseBody.md
new file mode 100644
index 00000000..2d13d16f
--- /dev/null
+++ b/docs/models/operations/GetBandwidthStatisticsResponseBody.md
@@ -0,0 +1,10 @@
+# GetBandwidthStatisticsResponseBody
+
+Bandwidth Statistics
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetBandwidthStatisticsMediaContainer>](../../models/operations/GetBandwidthStatisticsMediaContainer.md) | :heavy_minus_sign: | N/A |
\ 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..42cb8b0d
--- /dev/null
+++ b/docs/models/operations/GetButlerTasksResponse.md
@@ -0,0 +1,11 @@
+# GetButlerTasksResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponseBody>](../../models/operations/GetButlerTasksResponseBody.md) | :heavy_minus_sign: | All butler tasks |
\ 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..730b14ac
--- /dev/null
+++ b/docs/models/operations/GetButlerTasksResponseBody.md
@@ -0,0 +1,10 @@
+# GetButlerTasksResponseBody
+
+All butler tasks
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
+| `butlerTasks` | [Optional extends 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/GetDevicesMediaContainer.md b/docs/models/operations/GetDevicesMediaContainer.md
new file mode 100644
index 00000000..6d3b6075
--- /dev/null
+++ b/docs/models/operations/GetDevicesMediaContainer.md
@@ -0,0 +1,10 @@
+# GetDevicesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 151 |
+| `identifier` | *Optional extends 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..3a860955
--- /dev/null
+++ b/docs/models/operations/GetDevicesResponse.md
@@ -0,0 +1,11 @@
+# GetDevicesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetDevicesResponseBody>](../../models/operations/GetDevicesResponseBody.md) | :heavy_minus_sign: | Devices |
\ 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..4c468ffc
--- /dev/null
+++ b/docs/models/operations/GetDevicesResponseBody.md
@@ -0,0 +1,10 @@
+# GetDevicesResponseBody
+
+Devices
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetFileHashRequest.md b/docs/models/operations/GetFileHashRequest.md
new file mode 100644
index 00000000..103e0585
--- /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` | *Optional extends 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..92bc1ba0
--- /dev/null
+++ b/docs/models/operations/GetFileHashResponse.md
@@ -0,0 +1,10 @@
+# GetFileHashResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..0341d83b
--- /dev/null
+++ b/docs/models/operations/GetGlobalHubsMediaContainer.md
@@ -0,0 +1,11 @@
+# GetGlobalHubsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 8 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `identifier` | *Optional extends 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 | |
\ 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..e4600981
--- /dev/null
+++ b/docs/models/operations/GetGlobalHubsMetadata.md
@@ -0,0 +1,24 @@
+# GetGlobalHubsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 57070 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/57070/items |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | November Movie Day |
+| `titleSort` | *Optional extends String>* | :heavy_minus_sign: | N/A | Tracks |
+| `summary` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `smart` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `playlistType` | *Optional extends String>* | :heavy_minus_sign: | N/A | video |
+| `composite` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/57070/composite/1668787730 |
+| `icon` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `viewCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `lastViewedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1668787732 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 16873000 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 3 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1668779618 |
+| `updatedAt` | *Optional extends 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..c9f6978a
--- /dev/null
+++ b/docs/models/operations/GetGlobalHubsRequest.md
@@ -0,0 +1,9 @@
+# GetGlobalHubsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `count` | *Optional extends Double>* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `onlyTransient` | [Optional extends 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..7a720048
--- /dev/null
+++ b/docs/models/operations/GetGlobalHubsResponse.md
@@ -0,0 +1,11 @@
+# GetGlobalHubsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponseBody>](../../models/operations/GetGlobalHubsResponseBody.md) | :heavy_minus_sign: | returns global hubs |
\ 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..98afb0f9
--- /dev/null
+++ b/docs/models/operations/GetGlobalHubsResponseBody.md
@@ -0,0 +1,10 @@
+# GetGlobalHubsResponseBody
+
+returns global hubs
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetHomeDataResponse.md b/docs/models/operations/GetHomeDataResponse.md
new file mode 100644
index 00000000..6275a5f6
--- /dev/null
+++ b/docs/models/operations/GetHomeDataResponse.md
@@ -0,0 +1,11 @@
+# GetHomeDataResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetHomeDataResponseBody>](../../models/operations/GetHomeDataResponseBody.md) | :heavy_minus_sign: | Home Data |
\ No newline at end of file
diff --git a/docs/models/operations/GetHomeDataResponseBody.md b/docs/models/operations/GetHomeDataResponseBody.md
new file mode 100644
index 00000000..8043fc45
--- /dev/null
+++ b/docs/models/operations/GetHomeDataResponseBody.md
@@ -0,0 +1,15 @@
+# GetHomeDataResponseBody
+
+Home Data
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1841489 |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | Blindkitty38's home |
+| `guestUserID` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 58815432 |
+| `guestUserUUID` | *Optional extends String>* | :heavy_minus_sign: | N/A | f3df4e01bfca0787 |
+| `guestEnabled` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `subscription` | *Optional extends Boolean>* | :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..e79e8427
--- /dev/null
+++ b/docs/models/operations/GetLibrariesDirectory.md
@@ -0,0 +1,28 @@
+# GetLibrariesDirectory
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
+| `composite` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1/composite/1705615584 |
+| `filters` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `refreshing` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `agent` | *Optional extends String>* | :heavy_minus_sign: | N/A | tv.plex.agents.movie |
+| `scanner` | *Optional extends String>* | :heavy_minus_sign: | N/A | Plex Movie |
+| `language` | *Optional extends String>* | :heavy_minus_sign: | N/A | en-US |
+| `uuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705615634 |
+| `createdAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1654131312 |
+| `scannedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705615584 |
+| `content` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `directory` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `contentChangedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 3192854 |
+| `hidden` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 0 |
+| `location` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibrariesLocation](../../models/operations/GetLibrariesLocation.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..c5e3cb59
--- /dev/null
+++ b/docs/models/operations/GetLibrariesLocation.md
@@ -0,0 +1,9 @@
+# GetLibrariesLocation
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `path` | *Optional extends 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..67444f39
--- /dev/null
+++ b/docs/models/operations/GetLibrariesMediaContainer.md
@@ -0,0 +1,11 @@
+# GetLibrariesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 5 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `title1` | *Optional extends 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 | |
\ 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..c7c028b6
--- /dev/null
+++ b/docs/models/operations/GetLibrariesResponse.md
@@ -0,0 +1,11 @@
+# GetLibrariesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponseBody>](../../models/operations/GetLibrariesResponseBody.md) | :heavy_minus_sign: | The libraries available on the Server |
\ 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..1d0a2074
--- /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` | [Optional extends 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..1c58c32f
--- /dev/null
+++ b/docs/models/operations/GetLibraryDirectory.md
@@ -0,0 +1,12 @@
+# GetLibraryDirectory
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | search?type=1 |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Search... |
+| `secondary` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `prompt` | *Optional extends String>* | :heavy_minus_sign: | N/A | Search Movies |
+| `search` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
\ No newline at end of file
diff --git a/docs/models/operations/GetLibraryFilter.md b/docs/models/operations/GetLibraryFilter.md
new file mode 100644
index 00000000..e01df2de
--- /dev/null
+++ b/docs/models/operations/GetLibraryFilter.md
@@ -0,0 +1,12 @@
+# GetLibraryFilter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | label |
+| `filterType` | *Optional extends String>* | :heavy_minus_sign: | N/A | string |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1/label |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Labels |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | filter |
\ 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..b933a055
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsCountry.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..d6ea192e
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsDirector.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Nathan Greno |
\ 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..bceadde8
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsGenre.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..f673b3a6
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsHub.md
@@ -0,0 +1,19 @@
+# GetLibraryHubsHub
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0 |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Recently Played Movies |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `hubIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie.recentlyviewed.1 |
+| `context` | *Optional extends String>* | :heavy_minus_sign: | N/A | hub.movie.recentlyviewed |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 6 |
+| `more` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `style` | *Optional extends String>* | :heavy_minus_sign: | N/A | shelf |
+| `hubKey` | *Optional extends 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 | |
+| `promoted` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `random` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
\ 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..0fe96c7c
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsMedia.md
@@ -0,0 +1,24 @@
+# GetLibraryHubsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 38247 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 6017237 |
+| `bitrate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2051 |
+| `width` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1080 |
+| `aspectRatio` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1.78 |
+| `audioChannels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | aac |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | h264 |
+| `videoResolution` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `videoFrameRate` | *Optional extends String>* | :heavy_minus_sign: | N/A | 24p |
+| `optimizedForStreaming` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `videoProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | high |
+| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsPart](../../models/operations/GetLibraryHubsPart.md)> | :heavy_minus_sign: | N/A | |
\ 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..96a92797
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsMediaContainer.md
@@ -0,0 +1,14 @@
+# GetLibraryHubsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 7 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionUUID` | *Optional extends 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 | |
\ 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..fd3a73f7
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsMetadata.md
@@ -0,0 +1,41 @@
+# GetLibraryHubsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 14944 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/14944 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://movie/5d77686eeb5d26001f1eb339 |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Walt Disney Animation Studios |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Tangled |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1 |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | PG |
+| `summary` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 8.9 |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 8.7 |
+| `viewCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `lastViewedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1704936047 |
+| `year` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2010 |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A | They're taking adventure to new lengths. |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/14944/thumb/1705739847 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/14944/art/1705739847 |
+| `duration` | *Optional extends 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` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1589412494 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705739847 |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `primaryExtraKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/14952 |
+| `ratingImage` | *Optional extends 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 | |
+| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsGenre](../../models/operations/GetLibraryHubsGenre.md)> | :heavy_minus_sign: | N/A | |
+| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsCountry](../../models/operations/GetLibraryHubsCountry.md)> | :heavy_minus_sign: | N/A | |
+| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsDirector](../../models/operations/GetLibraryHubsDirector.md)> | :heavy_minus_sign: | N/A | |
+| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsRole](../../models/operations/GetLibraryHubsRole.md)> | :heavy_minus_sign: | N/A | |
+| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsWriter](../../models/operations/GetLibraryHubsWriter.md)> | :heavy_minus_sign: | N/A | |
+| `skipCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `chapterSource` | *Optional extends 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..29504717
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsPart.md
@@ -0,0 +1,17 @@
+# GetLibraryHubsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 38247 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/38247/1589412494/file.mp4 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 6017237 |
+| `file` | *Optional extends String>* | :heavy_minus_sign: | N/A | /movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4 |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1545647447 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `optimizedForStreaming` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `videoProfile` | *Optional extends 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..6bbb8101
--- /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` | *Optional extends Double>* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `onlyTransient` | [Optional extends 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..052608b9
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsResponse.md
@@ -0,0 +1,11 @@
+# GetLibraryHubsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponseBody>](../../models/operations/GetLibraryHubsResponseBody.md) | :heavy_minus_sign: | The hubs specific to the library |
\ 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..491eb395
--- /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` | [Optional extends 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..fa3cb330
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsRole.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..a66a46bb
--- /dev/null
+++ b/docs/models/operations/GetLibraryHubsWriter.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..69cdad79
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsCountry.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..315fba69
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsDirector.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..1bbf7901
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsGenre.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..5185ce17
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsMedia.md
@@ -0,0 +1,21 @@
+# GetLibraryItemsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 119534 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 11558112 |
+| `bitrate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 25025 |
+| `width` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 3840 |
+| `height` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2072 |
+| `aspectRatio` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1.85 |
+| `audioChannels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 6 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | eac3 |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | hevc |
+| `videoResolution` | *Optional extends String>* | :heavy_minus_sign: | N/A | 4k |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mkv |
+| `videoFrameRate` | *Optional extends String>* | :heavy_minus_sign: | N/A | 24p |
+| `videoProfile` | *Optional extends 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 | |
\ 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..6d69e487
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsMediaContainer.md
@@ -0,0 +1,23 @@
+# GetLibraryItemsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 70 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `librarySectionID` | [Optional extends lukehagar.plexapi.plexapi.models.operations.LibrarySectionID>](../../models/operations/LibrarySectionID.md) | :heavy_minus_sign: | N/A | |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionUUID` | *Optional extends String>* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1701731894 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
+| `title1` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `title2` | *Optional extends String>* | :heavy_minus_sign: | N/A | Recently Released |
+| `viewGroup` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `viewMode` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 65592 |
+| `mixedParents` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsMetadata](../../models/operations/GetLibraryItemsMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..77ae46ce
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsMetadata.md
@@ -0,0 +1,64 @@
+# GetLibraryItemsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 58683 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/58683 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://movie/5d7768ba96b655001fdc0408 |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A | 20th Century Studios |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Avatar: The Way of Water |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 7.6 |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 9.2 |
+| `year` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2022 |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A | Return to Pandora. |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
+| `duration` | *Optional extends 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` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1680457607 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1703239236 |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `chapterSource` | *Optional extends String>* | :heavy_minus_sign: | N/A | media |
+| `primaryExtraKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/58684 |
+| `ratingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
+| `grandparentRatingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 66 |
+| `grandparentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 |
+| `grandparentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/66 |
+| `grandparentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Caprica |
+| `grandparentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 |
+| `grandparentArt` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 |
+| `grandparentTheme` | *Optional extends 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 | |
+| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsGenre](../../models/operations/GetLibraryItemsGenre.md)> | :heavy_minus_sign: | N/A | |
+| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsCountry](../../models/operations/GetLibraryItemsCountry.md)> | :heavy_minus_sign: | N/A | |
+| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsDirector](../../models/operations/GetLibraryItemsDirector.md)> | :heavy_minus_sign: | N/A | |
+| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsWriter](../../models/operations/GetLibraryItemsWriter.md)> | :heavy_minus_sign: | N/A | |
+| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsRole](../../models/operations/GetLibraryItemsRole.md)> | :heavy_minus_sign: | N/A | |
+| `titleSort` | *Optional extends String>* | :heavy_minus_sign: | N/A | Whale |
+| `viewCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `lastViewedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1682752242 |
+| `originalTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 |
+| `viewOffset` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 5222500 |
+| `skipCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `index` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `theme` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 14 |
+| `viewedLeafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 0 |
+| `childCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `hasPremiumExtras` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `hasPremiumPrimaryExtra` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `parentRatingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 66 |
+| `parentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 |
+| `parentStudio` | *Optional extends String>* | :heavy_minus_sign: | N/A | UCP |
+| `parentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/66 |
+| `parentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Caprica |
+| `parentIndex` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `parentYear` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2010 |
+| `parentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 |
+| `parentTheme` | *Optional extends 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..56f6eb56
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsPart.md
@@ -0,0 +1,14 @@
+# GetLibraryItemsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 119542 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/119542/1680457526/file.mkv |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 11558112 |
+| `file` | *Optional extends 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` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 36158371307 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mkv |
+| `videoProfile` | *Optional extends 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..36636ee4
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsRequest.md
@@ -0,0 +1,10 @@
+# GetLibraryItemsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| `sectionId` | *java.lang.Object* | :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. | |
+| `includeGuids` | *Optional extends Long>* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 |
\ 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..020831c0
--- /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` | *int* | :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` | [Optional extends 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..70ea1a88
--- /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` | [Optional extends 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..64d3996c
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsRole.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..0c0e0dcb
--- /dev/null
+++ b/docs/models/operations/GetLibraryItemsWriter.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | James Cameron |
\ 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..bf2ca438
--- /dev/null
+++ b/docs/models/operations/GetLibraryMediaContainer.md
@@ -0,0 +1,22 @@
+# GetLibraryMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 29 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
+| `content` | *Optional extends String>* | :heavy_minus_sign: | N/A | secondary |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1701731894 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
+| `title1` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `viewGroup` | *Optional extends String>* | :heavy_minus_sign: | N/A | secondary |
+| `viewMode` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 65592 |
+| `directory` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryDirectory](../../models/operations/GetLibraryDirectory.md)> | :heavy_minus_sign: | N/A | |
+| `type` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryType](../../models/operations/GetLibraryType.md)> | :heavy_minus_sign: | N/A | |
+| `fieldType` | List<[lukehagar.plexapi.plexapi.models.operations.FieldType](../../models/operations/FieldType.md)> | :heavy_minus_sign: | N/A | |
\ 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..7ce65301
--- /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` | [Optional extends 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..e433df3b
--- /dev/null
+++ b/docs/models/operations/GetLibraryResponse.md
@@ -0,0 +1,11 @@
+# GetLibraryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetLibraryResponseBody>](../../models/operations/GetLibraryResponseBody.md) | :heavy_minus_sign: | The details of the library |
\ 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..9b07cc6e
--- /dev/null
+++ b/docs/models/operations/GetLibraryResponseBody.md
@@ -0,0 +1,10 @@
+# GetLibraryResponseBody
+
+The details of the library
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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..495b89ad
--- /dev/null
+++ b/docs/models/operations/GetLibraryType.md
@@ -0,0 +1,14 @@
+# GetLibraryType
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `active` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `filter` | List<[lukehagar.plexapi.plexapi.models.operations.GetLibraryFilter](../../models/operations/GetLibraryFilter.md)> | :heavy_minus_sign: | N/A | |
+| `sort` | List<[lukehagar.plexapi.plexapi.models.operations.Sort](../../models/operations/Sort.md)> | :heavy_minus_sign: | N/A | |
+| `field` | List<[lukehagar.plexapi.plexapi.models.operations.Field](../../models/operations/Field.md)> | :heavy_minus_sign: | N/A | |
\ 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..b3a6018e
--- /dev/null
+++ b/docs/models/operations/GetMetadataChildrenDirectory.md
@@ -0,0 +1,12 @@
+# GetMetadataChildrenDirectory
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 16 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 |
+| `viewedLeafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 16 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/allLeaves |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | All episodes |
\ 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..f3d457ad
--- /dev/null
+++ b/docs/models/operations/GetMetadataChildrenMediaContainer.md
@@ -0,0 +1,30 @@
+# GetMetadataChildrenMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 3 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/art/1705739923 |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | 30072 |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | TV Shows |
+| `librarySectionUUID` | *Optional extends String>* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1701731894 |
+| `nocache` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `parentIndex` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `parentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Reacher |
+| `parentYear` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2022 |
+| `summary` | *Optional extends 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` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/theme/1705739923 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 |
+| `title1` | *Optional extends String>* | :heavy_minus_sign: | N/A | TV Shows |
+| `title2` | *Optional extends String>* | :heavy_minus_sign: | N/A | Reacher |
+| `viewGroup` | *Optional extends String>* | :heavy_minus_sign: | N/A | season |
+| `viewMode` | *Optional extends 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 | |
\ 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..70f0c8b3
--- /dev/null
+++ b/docs/models/operations/GetMetadataChildrenMetadata.md
@@ -0,0 +1,34 @@
+# GetMetadataChildrenMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 66488 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/66488/children |
+| `parentRatingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 30072 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://season/652aea6549508477c34c6000 |
+| `parentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://show/5d9c09190aaccd001f8f42f0 |
+| `parentStudio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Amazon Studios |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | season |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Season 2 |
+| `parentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072 |
+| `parentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Reacher |
+| `summary` | *Optional extends 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` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `parentIndex` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `viewCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 11 |
+| `lastViewedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705646565 |
+| `parentYear` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2022 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/66488/thumb/1703065033 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/art/1705739923 |
+| `parentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 |
+| `parentTheme` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/30072/theme/1705739923 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 8 |
+| `viewedLeafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 8 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1702602021 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1703065033 |
+| `userRating` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 9 |
+| `skipCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `lastRatedAt` | *Optional extends 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..5de99e80
--- /dev/null
+++ b/docs/models/operations/GetMetadataChildrenRequest.md
@@ -0,0 +1,9 @@
+# GetMetadataChildrenRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
+| `ratingKey` | *double* | :heavy_check_mark: | the id of the library item to return the children of. |
+| `includeElements` | *Optional extends String>* | :heavy_minus_sign: | Adds additional elements to the response. Supported types are (Stream)
|
\ 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..ca4297f5
--- /dev/null
+++ b/docs/models/operations/GetMetadataChildrenResponse.md
@@ -0,0 +1,11 @@
+# GetMetadataChildrenResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponseBody>](../../models/operations/GetMetadataChildrenResponseBody.md) | :heavy_minus_sign: | The children of the library item. |
\ 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..ea395dec
--- /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` | [Optional extends 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..6a84f0d1
--- /dev/null
+++ b/docs/models/operations/GetMetadataCountry.md
@@ -0,0 +1,10 @@
+# GetMetadataCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 116 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | country=116 |
+| `tag` | *Optional extends 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..17b1b73f
--- /dev/null
+++ b/docs/models/operations/GetMetadataDirector.md
@@ -0,0 +1,12 @@
+# GetMetadataDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 130 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | director=130 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Joss Whedon |
+| `tagKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f |
+| `thumb` | *Optional extends 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/GetMetadataGenre.md b/docs/models/operations/GetMetadataGenre.md
new file mode 100644
index 00000000..268198d1
--- /dev/null
+++ b/docs/models/operations/GetMetadataGenre.md
@@ -0,0 +1,10 @@
+# GetMetadataGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 184 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | genre=184 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Thriller |
\ 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..c6e96b04
--- /dev/null
+++ b/docs/models/operations/GetMetadataMedia.md
@@ -0,0 +1,24 @@
+# GetMetadataMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 15 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 141417 |
+| `bitrate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2278 |
+| `width` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 814 |
+| `aspectRatio` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2.35 |
+| `audioChannels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | aac |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | h264 |
+| `videoResolution` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `videoFrameRate` | *Optional extends String>* | :heavy_minus_sign: | N/A | 24p |
+| `optimizedForStreaming` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 0 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `videoProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | high |
+| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataPart](../../models/operations/GetMetadataPart.md)> | :heavy_minus_sign: | N/A | |
\ 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..dd2dcdc3
--- /dev/null
+++ b/docs/models/operations/GetMetadataMediaContainer.md
@@ -0,0 +1,16 @@
+# GetMetadataMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionUUID` | *Optional extends String>* | :heavy_minus_sign: | N/A | cfc899d7-3000-46f6-8489-b9592714ada5 |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1698860922 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataMetadata](../../models/operations/GetMetadataMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..148f8ba7
--- /dev/null
+++ b/docs/models/operations/GetMetadataMetadata.md
@@ -0,0 +1,40 @@
+# GetMetadataMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 17 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Universal Pictures |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Serenity |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1 |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 8.2 |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 9.1 |
+| `year` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2005 |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A | They aim to misbehave. |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 |
+| `duration` | *Optional extends 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` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705637164 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705637165 |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `hasPremiumPrimaryExtra` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `ratingImage` | *Optional extends 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 | |
+| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataGenre](../../models/operations/GetMetadataGenre.md)> | :heavy_minus_sign: | N/A | |
+| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataCountry](../../models/operations/GetMetadataCountry.md)> | :heavy_minus_sign: | N/A | |
+| `guids` | List<[lukehagar.plexapi.plexapi.models.operations.Guids](../../models/operations/Guids.md)> | :heavy_minus_sign: | N/A | |
+| `ratings` | List<[lukehagar.plexapi.plexapi.models.operations.Ratings](../../models/operations/Ratings.md)> | :heavy_minus_sign: | N/A | |
+| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataDirector](../../models/operations/GetMetadataDirector.md)> | :heavy_minus_sign: | N/A | |
+| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataWriter](../../models/operations/GetMetadataWriter.md)> | :heavy_minus_sign: | N/A | |
+| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetMetadataRole](../../models/operations/GetMetadataRole.md)> | :heavy_minus_sign: | N/A | |
+| `producer` | List<[lukehagar.plexapi.plexapi.models.operations.Producer](../../models/operations/Producer.md)> | :heavy_minus_sign: | N/A | |
\ 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..53f9ed88
--- /dev/null
+++ b/docs/models/operations/GetMetadataPart.md
@@ -0,0 +1,18 @@
+# GetMetadataPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 15 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 141417 |
+| `file` | *Optional extends String>* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 40271948 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `optimizedForStreaming` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `videoProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | high |
+| `stream` | List<[lukehagar.plexapi.plexapi.models.operations.Stream](../../models/operations/Stream.md)> | :heavy_minus_sign: | N/A | |
\ 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..483bb2db
--- /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..6c26794f
--- /dev/null
+++ b/docs/models/operations/GetMetadataResponse.md
@@ -0,0 +1,11 @@
+# GetMetadataResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetMetadataResponseBody>](../../models/operations/GetMetadataResponseBody.md) | :heavy_minus_sign: | The metadata of the library item. |
\ 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..e8f04321
--- /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` | [Optional extends 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..b8ae14bb
--- /dev/null
+++ b/docs/models/operations/GetMetadataRole.md
@@ -0,0 +1,13 @@
+# GetMetadataRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 220 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | actor=220 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Dennis Keiffer |
+| `tagKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 5d77683554f42c001f8c4708 |
+| `role` | *Optional extends String>* | :heavy_minus_sign: | N/A | Bar Guy (uncredited) |
+| `thumb` | *Optional extends 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..3a2002e1
--- /dev/null
+++ b/docs/models/operations/GetMetadataWriter.md
@@ -0,0 +1,12 @@
+# GetMetadataWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 132 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | writer=132 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Joss Whedon |
+| `tagKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f |
+| `thumb` | *Optional extends 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/GetMyPlexAccountResponse.md b/docs/models/operations/GetMyPlexAccountResponse.md
new file mode 100644
index 00000000..352f9927
--- /dev/null
+++ b/docs/models/operations/GetMyPlexAccountResponse.md
@@ -0,0 +1,11 @@
+# GetMyPlexAccountResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetMyPlexAccountResponseBody>](../../models/operations/GetMyPlexAccountResponseBody.md) | :heavy_minus_sign: | MyPlex Account |
\ 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..023f33f2
--- /dev/null
+++ b/docs/models/operations/GetMyPlexAccountResponseBody.md
@@ -0,0 +1,10 @@
+# GetMyPlexAccountResponseBody
+
+MyPlex Account
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
+| `myPlex` | [Optional extends 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/GetOnDeckGuids.md b/docs/models/operations/GetOnDeckGuids.md
new file mode 100644
index 00000000..71aca887
--- /dev/null
+++ b/docs/models/operations/GetOnDeckGuids.md
@@ -0,0 +1,8 @@
+# GetOnDeckGuids
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | imdb://tt13303712 |
\ 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..6dba1998
--- /dev/null
+++ b/docs/models/operations/GetOnDeckMedia.md
@@ -0,0 +1,22 @@
+# GetOnDeckMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 80994 |
+| `duration` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 420080 |
+| `bitrate` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1046 |
+| `width` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1080 |
+| `aspectRatio` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1.78 |
+| `audioChannels` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | aac |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | hevc |
+| `videoResolution` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mkv |
+| `videoFrameRate` | *Optional extends String>* | :heavy_minus_sign: | N/A | PAL |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `videoProfile` | *Optional extends 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..f5f0a610
--- /dev/null
+++ b/docs/models/operations/GetOnDeckMediaContainer.md
@@ -0,0 +1,14 @@
+# GetOnDeckMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 16 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1680021154 |
+| `mixedParents` | *Optional extends 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..83bcccbc
--- /dev/null
+++ b/docs/models/operations/GetOnDeckMetadata.md
@@ -0,0 +1,43 @@
+# GetOnDeckMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `librarySectionID` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | TV Shows |
+| `librarySectionUUID` | *Optional extends String>* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd |
+| `ratingKey` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 49564 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49564 |
+| `parentRatingKey` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 49557 |
+| `grandparentRatingKey` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 49556 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://episode/5ea7d7402e7ab10042e74d4f |
+| `parentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://season/602e754d67f4c8002ce54b3d |
+| `grandparentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://show/5d9c090e705e7a001e6e94d8 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | episode |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Circus |
+| `grandparentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49556 |
+| `parentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49557 |
+| `librarySectionKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/2 |
+| `grandparentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Bluey (2018) |
+| `parentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Season 2 |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | TV-Y |
+| `summary` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 33 |
+| `parentIndex` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2 |
+| `lastViewedAt` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1681908352 |
+| `year` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2018 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49564/thumb/1654258204 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 |
+| `parentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49557/thumb/1654258204 |
+| `grandparentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49556/thumb/1680939546 |
+| `grandparentArt` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 |
+| `grandparentTheme` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/49556/theme/1680939546 |
+| `duration` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1654258196 |
+| `updatedAt` | *Optional extends 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..0b06a86c
--- /dev/null
+++ b/docs/models/operations/GetOnDeckPart.md
@@ -0,0 +1,16 @@
+# GetOnDeckPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 80994 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/80994/1655007810/file.mkv |
+| `duration` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 420080 |
+| `file` | *Optional extends String>* | :heavy_minus_sign: | N/A | /tvshows/Bluey (2018)/Bluey (2018) - S02E33 - Circus.mkv |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 55148931 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mkv |
+| `videoProfile` | *Optional extends 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..f0adb313
--- /dev/null
+++ b/docs/models/operations/GetOnDeckResponse.md
@@ -0,0 +1,11 @@
+# GetOnDeckResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponseBody>](../../models/operations/GetOnDeckResponseBody.md) | :heavy_minus_sign: | The on Deck content |
\ 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..1aabbc03
--- /dev/null
+++ b/docs/models/operations/GetOnDeckResponseBody.md
@@ -0,0 +1,10 @@
+# GetOnDeckResponseBody
+
+The on Deck content
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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..38d4cdeb
--- /dev/null
+++ b/docs/models/operations/GetOnDeckStream.md
@@ -0,0 +1,30 @@
+# GetOnDeckStream
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 211234 |
+| `streamType` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1 |
+| `default_` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `codec` | *Optional extends String>* | :heavy_minus_sign: | N/A | hevc |
+| `index` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 0 |
+| `bitrate` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 918 |
+| `language` | *Optional extends String>* | :heavy_minus_sign: | N/A | English |
+| `languageTag` | *Optional extends String>* | :heavy_minus_sign: | N/A | en |
+| `languageCode` | *Optional extends String>* | :heavy_minus_sign: | N/A | eng |
+| `bitDepth` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 8 |
+| `chromaLocation` | *Optional extends String>* | :heavy_minus_sign: | N/A | left |
+| `chromaSubsampling` | *Optional extends String>* | :heavy_minus_sign: | N/A | 4:2:0 |
+| `codedHeight` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1080 |
+| `codedWidth` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1920 |
+| `colorRange` | *Optional extends String>* | :heavy_minus_sign: | N/A | tv |
+| `frameRate` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 25 |
+| `height` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1080 |
+| `level` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 120 |
+| `profile` | *Optional extends String>* | :heavy_minus_sign: | N/A | main |
+| `refFrames` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1 |
+| `width` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1920 |
+| `displayTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) |
+| `extendedDisplayTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) |
\ 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..9cff2227
--- /dev/null
+++ b/docs/models/operations/GetPinRequest.md
@@ -0,0 +1,10 @@
+# GetPinRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `strong` | *Optional extends 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`
| |
+| `xPlexClientIdentifier` | *Optional extends String>* | :heavy_minus_sign: | 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)
| Postman |
+| `xPlexProduct` | *String* | :heavy_check_mark: | Product name of the application shown in the list of devices
| Postman |
\ 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..21f2b763
--- /dev/null
+++ b/docs/models/operations/GetPinResponse.md
@@ -0,0 +1,11 @@
+# GetPinResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetPinResponseBody>](../../models/operations/GetPinResponseBody.md) | :heavy_minus_sign: | The Pin |
\ 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..b1eea52c
--- /dev/null
+++ b/docs/models/operations/GetPinResponseBody.md
@@ -0,0 +1,21 @@
+# GetPinResponseBody
+
+The Pin
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | PinID for use with authentication | 1272322473 |
+| `code` | *Optional extends String>* | :heavy_minus_sign: | N/A | 3patfx1a78ukcbr7x0n9bl26t |
+| `product` | *Optional extends String>* | :heavy_minus_sign: | N/A | Plex Web |
+| `trusted` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `qr` | *Optional extends 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` | *Optional extends String>* | :heavy_minus_sign: | N/A | Postman |
+| `location` | [Optional extends lukehagar.plexapi.plexapi.models.operations.Location>](../../models/operations/Location.md) | :heavy_minus_sign: | N/A | |
+| `expiresIn` | *Optional extends 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` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `newRegistration` | *JsonNullable extends Boolean>* | :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..52e56464
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsCountry.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..f80a395c
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsDirector.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Joss Whedon |
\ 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..63bf437c
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsGenre.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..9762f6b4
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsMedia.md
@@ -0,0 +1,24 @@
+# GetPlaylistContentsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 15 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 141416 |
+| `bitrate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2273 |
+| `width` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 814 |
+| `aspectRatio` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2.35 |
+| `audioChannels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | aac |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | h264 |
+| `videoResolution` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `videoFrameRate` | *Optional extends String>* | :heavy_minus_sign: | N/A | 24p |
+| `optimizedForStreaming` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 0 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `videoProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | high |
+| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsPart](../../models/operations/GetPlaylistContentsPart.md)> | :heavy_minus_sign: | N/A | |
\ 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..4b476c10
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsMediaContainer.md
@@ -0,0 +1,16 @@
+# GetPlaylistContentsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `composite` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/95/composite/1705717521 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 282 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `playlistType` | *Optional extends String>* | :heavy_minus_sign: | N/A | video |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 95 |
+| `smart` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `title` | *Optional extends 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 | |
\ 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..debdf9c0
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsMetadata.md
@@ -0,0 +1,39 @@
+# GetPlaylistContentsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 17 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Universal Pictures |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Serenity |
+| `titleSort` | *Optional extends String>* | :heavy_minus_sign: | N/A | Amazing Spider-Man 2 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1 |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 8.2 |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 9.1 |
+| `year` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2005 |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A | They aim to misbehave. |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 |
+| `duration` | *Optional extends 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` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705637164 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705637165 |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `hasPremiumExtras` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `hasPremiumPrimaryExtra` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `ratingImage` | *Optional extends 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 | |
+| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsGenre](../../models/operations/GetPlaylistContentsGenre.md)> | :heavy_minus_sign: | N/A | |
+| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsCountry](../../models/operations/GetPlaylistContentsCountry.md)> | :heavy_minus_sign: | N/A | |
+| `director` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsDirector](../../models/operations/GetPlaylistContentsDirector.md)> | :heavy_minus_sign: | N/A | |
+| `writer` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsWriter](../../models/operations/GetPlaylistContentsWriter.md)> | :heavy_minus_sign: | N/A | |
+| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsRole](../../models/operations/GetPlaylistContentsRole.md)> | :heavy_minus_sign: | N/A | |
\ 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..343c4586
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsPart.md
@@ -0,0 +1,17 @@
+# GetPlaylistContentsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 15 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 141416 |
+| `file` | *Optional extends String>* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 40271948 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `optimizedForStreaming` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `videoProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | high |
\ 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..67cd6c60
--- /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..0a38d5ef
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsResponse.md
@@ -0,0 +1,11 @@
+# GetPlaylistContentsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponseBody>](../../models/operations/GetPlaylistContentsResponseBody.md) | :heavy_minus_sign: | The playlist contents |
\ 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..adde711d
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsResponseBody.md
@@ -0,0 +1,10 @@
+# GetPlaylistContentsResponseBody
+
+The playlist contents
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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..d0b68239
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsRole.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..4a7413fe
--- /dev/null
+++ b/docs/models/operations/GetPlaylistContentsWriter.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Joss Whedon |
\ 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..22519402
--- /dev/null
+++ b/docs/models/operations/GetPlaylistMediaContainer.md
@@ -0,0 +1,9 @@
+# GetPlaylistMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistMetadata](../../models/operations/GetPlaylistMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..9b0db275
--- /dev/null
+++ b/docs/models/operations/GetPlaylistMetadata.md
@@ -0,0 +1,22 @@
+# GetPlaylistMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `content` | *Optional extends 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` | *Optional extends String>* | :heavy_minus_sign: | N/A | 95 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/95/items |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Smart Movie Playlist |
+| `summary` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `smart` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `playlistType` | *Optional extends String>* | :heavy_minus_sign: | N/A | video |
+| `composite` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/95/composite/1705717387 |
+| `icon` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 282000 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705716493 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705717387 |
\ 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..93aa49c2
--- /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..b11348c3
--- /dev/null
+++ b/docs/models/operations/GetPlaylistResponse.md
@@ -0,0 +1,11 @@
+# GetPlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponseBody>](../../models/operations/GetPlaylistResponseBody.md) | :heavy_minus_sign: | The playlist |
\ 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..282a63b4
--- /dev/null
+++ b/docs/models/operations/GetPlaylistResponseBody.md
@@ -0,0 +1,10 @@
+# GetPlaylistResponseBody
+
+The playlist
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetPlaylistsMediaContainer.md b/docs/models/operations/GetPlaylistsMediaContainer.md
new file mode 100644
index 00000000..f56fb32b
--- /dev/null
+++ b/docs/models/operations/GetPlaylistsMediaContainer.md
@@ -0,0 +1,9 @@
+# GetPlaylistsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 4 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetPlaylistsMetadata](../../models/operations/GetPlaylistsMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..9e65e494
--- /dev/null
+++ b/docs/models/operations/GetPlaylistsMetadata.md
@@ -0,0 +1,23 @@
+# GetPlaylistsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 92 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/92/items |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Static Playlist |
+| `summary` | *Optional extends String>* | :heavy_minus_sign: | N/A | A Great Playlist |
+| `smart` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `playlistType` | *Optional extends String>* | :heavy_minus_sign: | N/A | video |
+| `composite` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/92/composite/1705716440 |
+| `icon` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `viewCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `lastViewedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705716298 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 7328000 |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 32 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705716298 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705716440 |
\ 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..cbc7bab8
--- /dev/null
+++ b/docs/models/operations/GetPlaylistsRequest.md
@@ -0,0 +1,9 @@
+# GetPlaylistsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `playlistType` | [Optional extends lukehagar.plexapi.plexapi.models.operations.PlaylistType>](../../models/operations/PlaylistType.md) | :heavy_minus_sign: | limit to a type of playlist. |
+| `smart` | [Optional extends 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..6bc16b5a
--- /dev/null
+++ b/docs/models/operations/GetPlaylistsResponse.md
@@ -0,0 +1,11 @@
+# GetPlaylistsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponseBody>](../../models/operations/GetPlaylistsResponseBody.md) | :heavy_minus_sign: | returns all playlists |
\ 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..14c69828
--- /dev/null
+++ b/docs/models/operations/GetPlaylistsResponseBody.md
@@ -0,0 +1,10 @@
+# GetPlaylistsResponseBody
+
+returns all playlists
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetRecentlyAddedMediaContainer.md b/docs/models/operations/GetRecentlyAddedMediaContainer.md
new file mode 100644
index 00000000..306f9e1b
--- /dev/null
+++ b/docs/models/operations/GetRecentlyAddedMediaContainer.md
@@ -0,0 +1,14 @@
+# GetRecentlyAddedMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 50 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1680021154 |
+| `mixedParents` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedMetadata](../../models/operations/GetRecentlyAddedMetadata.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/GetRecentlyAddedMetadata.md b/docs/models/operations/GetRecentlyAddedMetadata.md
new file mode 100644
index 00000000..9e0d6ab1
--- /dev/null
+++ b/docs/models/operations/GetRecentlyAddedMetadata.md
@@ -0,0 +1,39 @@
+# GetRecentlyAddedMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `librarySectionID` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionUUID` | *Optional extends String>* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `ratingKey` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 59398 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/59398 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://movie/5e161a83bea6ac004126e148 |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Marvel Studios |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Ant-Man and the Wasp: Quantumania |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 4.7 |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 8.3 |
+| `year` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2023 |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A | Witness the beginning of a new dynasty. |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/59398/thumb/1681888010 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/59398/art/1681888010 |
+| `duration` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1681803215 |
+| `updatedAt` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1681888010 |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `chapterSource` | *Optional extends String>* | :heavy_minus_sign: | N/A | media |
+| `primaryExtraKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/59399 |
+| `ratingImage` | *Optional extends 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/GetRecentlyAddedResponse.md b/docs/models/operations/GetRecentlyAddedResponse.md
new file mode 100644
index 00000000..3e7d6a0a
--- /dev/null
+++ b/docs/models/operations/GetRecentlyAddedResponse.md
@@ -0,0 +1,11 @@
+# GetRecentlyAddedResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponseBody>](../../models/operations/GetRecentlyAddedResponseBody.md) | :heavy_minus_sign: | The recently added content |
\ 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..0b292737
--- /dev/null
+++ b/docs/models/operations/GetRecentlyAddedResponseBody.md
@@ -0,0 +1,10 @@
+# GetRecentlyAddedResponseBody
+
+The recently added content
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetResizedPhotoRequest.md b/docs/models/operations/GetResizedPhotoRequest.md
new file mode 100644
index 00000000..3cbea586
--- /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..96b79fde
--- /dev/null
+++ b/docs/models/operations/GetResizedPhotoResponse.md
@@ -0,0 +1,10 @@
+# GetResizedPhotoResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ No newline at end of file
diff --git a/docs/models/operations/GetResourcesStatisticsMediaContainer.md b/docs/models/operations/GetResourcesStatisticsMediaContainer.md
new file mode 100644
index 00000000..09ac5306
--- /dev/null
+++ b/docs/models/operations/GetResourcesStatisticsMediaContainer.md
@@ -0,0 +1,9 @@
+# GetResourcesStatisticsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 5497 |
+| `statisticsResources` | List<[lukehagar.plexapi.plexapi.models.operations.StatisticsResources](../../models/operations/StatisticsResources.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/GetResourcesStatisticsRequest.md b/docs/models/operations/GetResourcesStatisticsRequest.md
new file mode 100644
index 00000000..34d1c461
--- /dev/null
+++ b/docs/models/operations/GetResourcesStatisticsRequest.md
@@ -0,0 +1,8 @@
+# GetResourcesStatisticsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `timespan` | *Optional extends Long>* | :heavy_minus_sign: | The timespan to retrieve statistics for
the exact meaning of this parameter is not known
| 4 |
\ No newline at end of file
diff --git a/docs/models/operations/GetResourcesStatisticsResponse.md b/docs/models/operations/GetResourcesStatisticsResponse.md
new file mode 100644
index 00000000..00717d9e
--- /dev/null
+++ b/docs/models/operations/GetResourcesStatisticsResponse.md
@@ -0,0 +1,11 @@
+# GetResourcesStatisticsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetResourcesStatisticsResponseBody>](../../models/operations/GetResourcesStatisticsResponseBody.md) | :heavy_minus_sign: | Resource Statistics |
\ No newline at end of file
diff --git a/docs/models/operations/GetResourcesStatisticsResponseBody.md b/docs/models/operations/GetResourcesStatisticsResponseBody.md
new file mode 100644
index 00000000..a09ff43a
--- /dev/null
+++ b/docs/models/operations/GetResourcesStatisticsResponseBody.md
@@ -0,0 +1,10 @@
+# GetResourcesStatisticsResponseBody
+
+Resource Statistics
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetResourcesStatisticsMediaContainer>](../../models/operations/GetResourcesStatisticsMediaContainer.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..3ac6ede3
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsCountry.md
@@ -0,0 +1,8 @@
+# GetSearchResultsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..9c6587ad
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsDirector.md
@@ -0,0 +1,8 @@
+# GetSearchResultsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Brian De Palma |
\ 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..f22c941b
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsGenre.md
@@ -0,0 +1,8 @@
+# GetSearchResultsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..6782856b
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsMedia.md
@@ -0,0 +1,22 @@
+# GetSearchResultsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 26610 |
+| `duration` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 6612628 |
+| `bitrate` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 4751 |
+| `width` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1916 |
+| `height` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 796 |
+| `aspectRatio` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2.35 |
+| `audioChannels` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 6 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | aac |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | hevc |
+| `videoResolution` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mkv |
+| `videoFrameRate` | *Optional extends String>* | :heavy_minus_sign: | N/A | 24p |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `videoProfile` | *Optional extends 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..ee898afa
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsMediaContainer.md
@@ -0,0 +1,13 @@
+# GetSearchResultsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 26 |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends 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..7dbbcd40
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsMetadata.md
@@ -0,0 +1,41 @@
+# GetSearchResultsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `librarySectionID` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionUUID` | *Optional extends String>* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `personal` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `sourceTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Hera |
+| `ratingKey` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 10398 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/10398 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://movie/5d7768284de0ee001fcc8f52 |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Paramount |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Mission: Impossible |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 6.6 |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 7.1 |
+| `year` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1996 |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A | Expect the impossible. |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/10398/thumb/1679505055 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/10398/art/1679505055 |
+| `duration` | *Optional extends 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` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1589234571 |
+| `updatedAt` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1679505055 |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `chapterSource` | *Optional extends String>* | :heavy_minus_sign: | N/A | media |
+| `primaryExtraKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/10501 |
+| `ratingImage` | *Optional extends 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..65dbbfd8
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsPart.md
@@ -0,0 +1,15 @@
+# GetSearchResultsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 26610 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/26610/1589234571/file.mkv |
+| `duration` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 6612628 |
+| `file` | *Optional extends String>* | :heavy_minus_sign: | N/A | /movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 3926903851 |
+| `audioProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mkv |
+| `videoProfile` | *Optional extends 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..db4b5ccf
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsResponse.md
@@ -0,0 +1,11 @@
+# GetSearchResultsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetSearchResultsResponseBody>](../../models/operations/GetSearchResultsResponseBody.md) | :heavy_minus_sign: | Search Results |
\ 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..3b5aa9c8
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsResponseBody.md
@@ -0,0 +1,10 @@
+# GetSearchResultsResponseBody
+
+Search Results
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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..de3296c7
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsRole.md
@@ -0,0 +1,8 @@
+# GetSearchResultsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Tom Cruise |
\ 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..5114c456
--- /dev/null
+++ b/docs/models/operations/GetSearchResultsWriter.md
@@ -0,0 +1,8 @@
+# GetSearchResultsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | David Koepp |
\ 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..ade8b66d
--- /dev/null
+++ b/docs/models/operations/GetServerActivitiesMediaContainer.md
@@ -0,0 +1,9 @@
+# GetServerActivitiesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends 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..bbcf6a2d
--- /dev/null
+++ b/docs/models/operations/GetServerActivitiesResponse.md
@@ -0,0 +1,11 @@
+# GetServerActivitiesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponseBody>](../../models/operations/GetServerActivitiesResponseBody.md) | :heavy_minus_sign: | The Server Activities |
\ 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..54b03a12
--- /dev/null
+++ b/docs/models/operations/GetServerActivitiesResponseBody.md
@@ -0,0 +1,10 @@
+# GetServerActivitiesResponseBody
+
+The Server Activities
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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..5e420f40
--- /dev/null
+++ b/docs/models/operations/GetServerCapabilitiesResponse.md
@@ -0,0 +1,11 @@
+# GetServerCapabilitiesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetServerCapabilitiesResponseBody>](../../models/operations/GetServerCapabilitiesResponseBody.md) | :heavy_minus_sign: | The Server Capabilities |
\ 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..b34aecfa
--- /dev/null
+++ b/docs/models/operations/GetServerCapabilitiesResponseBody.md
@@ -0,0 +1,10 @@
+# GetServerCapabilitiesResponseBody
+
+The Server Capabilities
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetServerIdentityMediaContainer.md b/docs/models/operations/GetServerIdentityMediaContainer.md
new file mode 100644
index 00000000..6d451962
--- /dev/null
+++ b/docs/models/operations/GetServerIdentityMediaContainer.md
@@ -0,0 +1,11 @@
+# GetServerIdentityMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 0 |
+| `claimed` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `machineIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | 96f2fe7a78c9dc1f16a16bedbe90f98149be16b4 |
+| `version` | *Optional extends 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..4397105f
--- /dev/null
+++ b/docs/models/operations/GetServerIdentityResponse.md
@@ -0,0 +1,11 @@
+# GetServerIdentityResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetServerIdentityResponseBody>](../../models/operations/GetServerIdentityResponseBody.md) | :heavy_minus_sign: | The Server Identity information |
\ 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..7018df87
--- /dev/null
+++ b/docs/models/operations/GetServerIdentityResponseBody.md
@@ -0,0 +1,10 @@
+# GetServerIdentityResponseBody
+
+The Server Identity information
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetServerListMediaContainer.md b/docs/models/operations/GetServerListMediaContainer.md
new file mode 100644
index 00000000..8d6854b5
--- /dev/null
+++ b/docs/models/operations/GetServerListMediaContainer.md
@@ -0,0 +1,9 @@
+# GetServerListMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends 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..1c2ea683
--- /dev/null
+++ b/docs/models/operations/GetServerListResponse.md
@@ -0,0 +1,11 @@
+# GetServerListResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetServerListResponseBody>](../../models/operations/GetServerListResponseBody.md) | :heavy_minus_sign: | List of Servers |
\ 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..ece73e76
--- /dev/null
+++ b/docs/models/operations/GetServerListResponseBody.md
@@ -0,0 +1,10 @@
+# GetServerListResponseBody
+
+List of Servers
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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..82e3ec71
--- /dev/null
+++ b/docs/models/operations/GetServerListServer.md
@@ -0,0 +1,13 @@
+# GetServerListServer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | Hera |
+| `host` | *Optional extends String>* | :heavy_minus_sign: | N/A | 10.10.10.47 |
+| `address` | *Optional extends String>* | :heavy_minus_sign: | N/A | 10.10.10.47 |
+| `port` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 32400 |
+| `machineIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | 96f2fe7a78c9dc1f16a16bedbe90f98149be16b4 |
+| `version` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1.31.3.6868-28fc46b27 |
\ 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..d42423c2
--- /dev/null
+++ b/docs/models/operations/GetServerPreferencesMediaContainer.md
@@ -0,0 +1,9 @@
+# GetServerPreferencesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 161 |
+| `setting` | List<[lukehagar.plexapi.plexapi.models.operations.Setting](../../models/operations/Setting.md)> | :heavy_minus_sign: | N/A | |
\ 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..a29a49bd
--- /dev/null
+++ b/docs/models/operations/GetServerPreferencesResponse.md
@@ -0,0 +1,11 @@
+# GetServerPreferencesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetServerPreferencesResponseBody>](../../models/operations/GetServerPreferencesResponseBody.md) | :heavy_minus_sign: | Server Preferences |
\ 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..adfda0c3
--- /dev/null
+++ b/docs/models/operations/GetServerPreferencesResponseBody.md
@@ -0,0 +1,10 @@
+# GetServerPreferencesResponseBody
+
+Server Preferences
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetSessionHistoryMediaContainer.md b/docs/models/operations/GetSessionHistoryMediaContainer.md
new file mode 100644
index 00000000..f6975f46
--- /dev/null
+++ b/docs/models/operations/GetSessionHistoryMediaContainer.md
@@ -0,0 +1,9 @@
+# GetSessionHistoryMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 10855 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryMetadata](../../models/operations/GetSessionHistoryMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..5960acac
--- /dev/null
+++ b/docs/models/operations/GetSessionHistoryMetadata.md
@@ -0,0 +1,26 @@
+# GetSessionHistoryMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| `historyKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /status/sessions/history/1 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/32171 |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 32171 |
+| `librarySectionID` | *Optional extends String>* | :heavy_minus_sign: | N/A | 2 |
+| `parentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/32170 |
+| `grandparentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/32132 |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | The Noise That Blue Makes |
+| `grandparentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Taskmaster |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | episode |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/32171/thumb/-1 |
+| `parentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/32170/thumb/1654134301 |
+| `grandparentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/32132/thumb/1703933346 |
+| `grandparentArt` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/32132/art/1703933346 |
+| `index` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `parentIndex` | *Optional extends 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` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1654139223 |
+| `accountID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `deviceID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 5 |
\ No newline at end of file
diff --git a/docs/models/operations/GetSessionHistoryRequest.md b/docs/models/operations/GetSessionHistoryRequest.md
new file mode 100644
index 00000000..5e0afc64
--- /dev/null
+++ b/docs/models/operations/GetSessionHistoryRequest.md
@@ -0,0 +1,11 @@
+# GetSessionHistoryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `sort` | *Optional extends String>* | :heavy_minus_sign: | Sorts the results by the specified field followed by the direction (asc, desc)
| |
+| `accountId` | *Optional extends Long>* | :heavy_minus_sign: | Filter results by those that are related to a specific users id
| 1 |
+| `filter` | [Optional extends lukehagar.plexapi.plexapi.models.operations.Filter>](../../models/operations/Filter.md) | :heavy_minus_sign: | Filters content by field and direction/equality
(Unknown if viewedAt is the only supported column)
| {
"viewed-at-greater-than": {
"value": "viewedAt\u003e"
},
"viewed-at-greater-than-or-equal-to": {
"value": "viewedAt\u003e=\u003e"
},
"viewed-at-less-than": {
"value": "viewedAt\u003c"
}
} |
+| `librarySectionID` | *Optional extends Long>* | :heavy_minus_sign: | Filters the results based on the id of a valid library section
| 12 |
\ 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..fea111ce
--- /dev/null
+++ b/docs/models/operations/GetSessionHistoryResponse.md
@@ -0,0 +1,11 @@
+# GetSessionHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetSessionHistoryResponseBody>](../../models/operations/GetSessionHistoryResponseBody.md) | :heavy_minus_sign: | List of Plex Sessions |
\ 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..089665fc
--- /dev/null
+++ b/docs/models/operations/GetSessionHistoryResponseBody.md
@@ -0,0 +1,10 @@
+# GetSessionHistoryResponseBody
+
+List of Plex Sessions
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetSessionsMedia.md b/docs/models/operations/GetSessionsMedia.md
new file mode 100644
index 00000000..a61657cd
--- /dev/null
+++ b/docs/models/operations/GetSessionsMedia.md
@@ -0,0 +1,15 @@
+# GetSessionsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| `audioChannels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | flac |
+| `bitrate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1014 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | flac |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 186240 |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | 130355 |
+| `selected` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `part` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsPart](../../models/operations/GetSessionsPart.md)> | :heavy_minus_sign: | N/A | |
\ 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..4ded5a8e
--- /dev/null
+++ b/docs/models/operations/GetSessionsMediaContainer.md
@@ -0,0 +1,9 @@
+# GetSessionsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsMetadata](../../models/operations/GetSessionsMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..77bfb3cc
--- /dev/null
+++ b/docs/models/operations/GetSessionsMetadata.md
@@ -0,0 +1,44 @@
+# GetSessionsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705543312 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 186240 |
+| `grandparentArt` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 |
+| `grandparentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://artist/5d07bbfd403c6402904a6480 |
+| `grandparentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/39904 |
+| `grandparentRatingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 39904 |
+| `grandparentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/39904/thumb/1705310687 |
+| `grandparentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Green Day |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://track/6535834f71f22f36f71a8e8f |
+| `index` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/67085 |
+| `librarySectionID` | *Optional extends String>* | :heavy_minus_sign: | N/A | 3 |
+| `librarySectionKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/3 |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Music |
+| `musicAnalysisVersion` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `parentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://album/65394d6d472b8ab03ef47f12 |
+| `parentIndex` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `parentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/67084 |
+| `parentRatingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 67084 |
+| `parentStudio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Reprise Records |
+| `parentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/67084/thumb/1705543314 |
+| `parentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Saviors |
+| `parentYear` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2024 |
+| `ratingCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 45885 |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 67085 |
+| `sessionKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 203 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/67084/thumb/1705543314 |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | The American Dream Is Killing Me |
+| `titleSort` | *Optional extends String>* | :heavy_minus_sign: | N/A | American Dream Is Killing Me |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | track |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705543314 |
+| `viewOffset` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1000 |
+| `media` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsMedia](../../models/operations/GetSessionsMedia.md)> | :heavy_minus_sign: | N/A | |
+| `user` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetSessionsUser>](../../models/operations/GetSessionsUser.md) | :heavy_minus_sign: | N/A | |
+| `player` | [Optional extends lukehagar.plexapi.plexapi.models.operations.Player>](../../models/operations/Player.md) | :heavy_minus_sign: | N/A | |
+| `session` | [Optional extends 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..b7c91baf
--- /dev/null
+++ b/docs/models/operations/GetSessionsPart.md
@@ -0,0 +1,17 @@
+# GetSessionsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | flac |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 186240 |
+| `file` | *Optional extends String>* | :heavy_minus_sign: | N/A | /music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac |
+| `hasThumbnail` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | 130625 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/130625/1705543268/file.flac |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 23644000 |
+| `decision` | *Optional extends String>* | :heavy_minus_sign: | N/A | directplay |
+| `selected` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `stream` | List<[lukehagar.plexapi.plexapi.models.operations.GetSessionsStream](../../models/operations/GetSessionsStream.md)> | :heavy_minus_sign: | N/A | |
\ 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..420f701c
--- /dev/null
+++ b/docs/models/operations/GetSessionsResponse.md
@@ -0,0 +1,11 @@
+# GetSessionsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetSessionsResponseBody>](../../models/operations/GetSessionsResponseBody.md) | :heavy_minus_sign: | List of Active Plex Sessions |
\ 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..dd6b3dd3
--- /dev/null
+++ b/docs/models/operations/GetSessionsResponseBody.md
@@ -0,0 +1,10 @@
+# GetSessionsResponseBody
+
+List of Active Plex Sessions
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetSessionsStream.md b/docs/models/operations/GetSessionsStream.md
new file mode 100644
index 00000000..aca3c603
--- /dev/null
+++ b/docs/models/operations/GetSessionsStream.md
@@ -0,0 +1,27 @@
+# GetSessionsStream
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `albumGain` | *Optional extends String>* | :heavy_minus_sign: | N/A | -12.94 |
+| `albumPeak` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1.000000 |
+| `albumRange` | *Optional extends String>* | :heavy_minus_sign: | N/A | 4.751014 |
+| `audioChannelLayout` | *Optional extends String>* | :heavy_minus_sign: | N/A | stereo |
+| `bitDepth` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 16 |
+| `bitrate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1014 |
+| `channels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `codec` | *Optional extends String>* | :heavy_minus_sign: | N/A | flac |
+| `displayTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | FLAC (Stereo) |
+| `extendedDisplayTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | FLAC (Stereo) |
+| `gain` | *Optional extends String>* | :heavy_minus_sign: | N/A | -12.94 |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | 352487 |
+| `index` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 0 |
+| `loudness` | *Optional extends String>* | :heavy_minus_sign: | N/A | -5.94 |
+| `lra` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1.74 |
+| `peak` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1.000000 |
+| `samplingRate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 44100 |
+| `selected` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `streamType` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `location` | *Optional extends String>* | :heavy_minus_sign: | N/A | direct |
\ No newline at end of file
diff --git a/docs/models/operations/GetSessionsUser.md b/docs/models/operations/GetSessionsUser.md
new file mode 100644
index 00000000..9eaae842
--- /dev/null
+++ b/docs/models/operations/GetSessionsUser.md
@@ -0,0 +1,10 @@
+# GetSessionsUser
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661 |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Blindkitty38 |
\ 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..5b2be7e3
--- /dev/null
+++ b/docs/models/operations/GetSourceConnectionInformationResponse.md
@@ -0,0 +1,10 @@
+# GetSourceConnectionInformationResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..55a55e4d
--- /dev/null
+++ b/docs/models/operations/GetStatisticsDevice.md
@@ -0,0 +1,12 @@
+# GetStatisticsDevice
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 208 |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | Roku Express |
+| `platform` | *Optional extends String>* | :heavy_minus_sign: | N/A | Roku |
+| `clientIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | 793095d235660625108ef785cc7646e9 |
+| `createdAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1706470556 |
\ 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..8059827a
--- /dev/null
+++ b/docs/models/operations/GetStatisticsMediaContainer.md
@@ -0,0 +1,11 @@
+# GetStatisticsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 5497 |
+| `device` | List<[lukehagar.plexapi.plexapi.models.operations.GetStatisticsDevice](../../models/operations/GetStatisticsDevice.md)> | :heavy_minus_sign: | N/A | |
+| `account` | List<[lukehagar.plexapi.plexapi.models.operations.Account](../../models/operations/Account.md)> | :heavy_minus_sign: | N/A | |
+| `statisticsMedia` | List<[lukehagar.plexapi.plexapi.models.operations.StatisticsMedia](../../models/operations/StatisticsMedia.md)> | :heavy_minus_sign: | N/A | |
\ 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..4eb7fa5a
--- /dev/null
+++ b/docs/models/operations/GetStatisticsRequest.md
@@ -0,0 +1,8 @@
+# GetStatisticsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `timespan` | *Optional extends Long>* | :heavy_minus_sign: | The timespan to retrieve statistics for
the exact meaning of this parameter is not known
| 4 |
\ 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..eccf9dbf
--- /dev/null
+++ b/docs/models/operations/GetStatisticsResponse.md
@@ -0,0 +1,11 @@
+# GetStatisticsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetStatisticsResponseBody>](../../models/operations/GetStatisticsResponseBody.md) | :heavy_minus_sign: | Media Statistics |
\ 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..b89329bf
--- /dev/null
+++ b/docs/models/operations/GetStatisticsResponseBody.md
@@ -0,0 +1,10 @@
+# GetStatisticsResponseBody
+
+Media Statistics
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetTimelineRequest.md b/docs/models/operations/GetTimelineRequest.md
new file mode 100644
index 00000000..d66fa5bb
--- /dev/null
+++ b/docs/models/operations/GetTimelineRequest.md
@@ -0,0 +1,17 @@
+# GetTimelineRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `ratingKey` | *double* | :heavy_check_mark: | The rating key of the media item | 23409 |
+| `key` | *String* | :heavy_check_mark: | The key of the media item to get the timeline for | /library/metadata/23409 |
+| `state` | [lukehagar.plexapi.plexapi.models.operations.State](../../models/operations/State.md) | :heavy_check_mark: | The state of the media item | playing |
+| `hasMDE` | *double* | :heavy_check_mark: | Whether the media item has MDE | 1 |
+| `time` | *double* | :heavy_check_mark: | The time of the media item | 2000 |
+| `duration` | *double* | :heavy_check_mark: | The duration of the media item | 10000 |
+| `context` | *String* | :heavy_check_mark: | The context of the media item | home:hub.continueWatching |
+| `playQueueItemID` | *double* | :heavy_check_mark: | The play queue item ID of the media item | 1 |
+| `playBackTime` | *double* | :heavy_check_mark: | The playback time of the media item | 2000 |
+| `row` | *double* | :heavy_check_mark: | The row of the media item | 1 |
\ 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..d9a22540
--- /dev/null
+++ b/docs/models/operations/GetTimelineResponse.md
@@ -0,0 +1,10 @@
+# GetTimelineResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ No newline at end of file
diff --git a/docs/models/operations/GetTokenLocation.md b/docs/models/operations/GetTokenLocation.md
new file mode 100644
index 00000000..9efd8847
--- /dev/null
+++ b/docs/models/operations/GetTokenLocation.md
@@ -0,0 +1,17 @@
+# GetTokenLocation
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `code` | *Optional extends String>* | :heavy_minus_sign: | N/A | US |
+| `europeanUnionMember` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `continentCode` | *Optional extends String>* | :heavy_minus_sign: | N/A | NA |
+| `country` | *Optional extends String>* | :heavy_minus_sign: | N/A | United States |
+| `city` | *Optional extends String>* | :heavy_minus_sign: | N/A | Austin |
+| `timeZone` | *Optional extends String>* | :heavy_minus_sign: | N/A | America/Chicago |
+| `postalCode` | *Optional extends String>* | :heavy_minus_sign: | N/A | 78732 |
+| `inPrivacyRestrictedCountry` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `subdivisions` | *Optional extends String>* | :heavy_minus_sign: | N/A | Texas |
+| `coordinates` | *Optional extends String>* | :heavy_minus_sign: | N/A | 30.3768 -97.8935 |
\ 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..d65b8bbf
--- /dev/null
+++ b/docs/models/operations/GetTokenRequest.md
@@ -0,0 +1,9 @@
+# GetTokenRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `pinID` | *String* | :heavy_check_mark: | The PinID to retrieve an access token for | |
+| `xPlexClientIdentifier` | *Optional extends String>* | :heavy_minus_sign: | 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)
| Postman |
\ 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..770388f1
--- /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` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetTokenResponseBody>](../../models/operations/GetTokenResponseBody.md) | :heavy_minus_sign: | Access Token |
\ 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..b77c5c98
--- /dev/null
+++ b/docs/models/operations/GetTokenResponseBody.md
@@ -0,0 +1,21 @@
+# GetTokenResponseBody
+
+Access Token
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | PinID for use with authentication | 1272322473 |
+| `code` | *Optional extends String>* | :heavy_minus_sign: | N/A | 3patfx1a78ukcbr7x0n9bl26t |
+| `product` | *Optional extends String>* | :heavy_minus_sign: | N/A | Plex Web |
+| `trusted` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `qr` | *Optional extends 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` | *Optional extends String>* | :heavy_minus_sign: | N/A | Postman |
+| `location` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetTokenLocation>](../../models/operations/GetTokenLocation.md) | :heavy_minus_sign: | N/A | |
+| `expiresIn` | *Optional extends 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` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `newRegistration` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentCountry.md b/docs/models/operations/GetTopWatchedContentCountry.md
new file mode 100644
index 00000000..d1159880
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentCountry.md
@@ -0,0 +1,10 @@
+# GetTopWatchedContentCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 116 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | country=116 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | United States of America |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentGenre.md b/docs/models/operations/GetTopWatchedContentGenre.md
new file mode 100644
index 00000000..fbd95156
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentGenre.md
@@ -0,0 +1,10 @@
+# GetTopWatchedContentGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 184 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | genre=184 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Thriller |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentGuids.md b/docs/models/operations/GetTopWatchedContentGuids.md
new file mode 100644
index 00000000..e4f2f3aa
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentGuids.md
@@ -0,0 +1,8 @@
+# GetTopWatchedContentGuids
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | tvdb://2337 |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentMediaContainer.md b/docs/models/operations/GetTopWatchedContentMediaContainer.md
new file mode 100644
index 00000000..6b5094ba
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentMediaContainer.md
@@ -0,0 +1,13 @@
+# GetTopWatchedContentMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1698860922 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentMetadata](../../models/operations/GetTopWatchedContentMetadata.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentMetadata.md b/docs/models/operations/GetTopWatchedContentMetadata.md
new file mode 100644
index 00000000..ad6b410e
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentMetadata.md
@@ -0,0 +1,39 @@
+# GetTopWatchedContentMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 17 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 |
+| `slug` | *Optional extends String>* | :heavy_minus_sign: | N/A | waterloo-road |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Universal Pictures |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | movie |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Serenity |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Movies |
+| `librarySectionID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `librarySectionKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1 |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *Optional extends 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. |
+| `index` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 1 |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 9.1 |
+| `year` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2005 |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A | They aim to misbehave. |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 |
+| `duration` | *Optional extends 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 |
+| `leafCount` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 222 |
+| `viewedLeafCount` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 100 |
+| `childCount` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 13 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705637164 |
+| `updatedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705637165 |
+| `globalViewCount` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 80 |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `genre` | List<[lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentGenre](../../models/operations/GetTopWatchedContentGenre.md)> | :heavy_minus_sign: | N/A | |
+| `country` | List<[lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentCountry](../../models/operations/GetTopWatchedContentCountry.md)> | :heavy_minus_sign: | N/A | |
+| `guids` | List<[lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentGuids](../../models/operations/GetTopWatchedContentGuids.md)> | :heavy_minus_sign: | N/A | |
+| `role` | List<[lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentRole](../../models/operations/GetTopWatchedContentRole.md)> | :heavy_minus_sign: | N/A | |
+| `user` | List<[lukehagar.plexapi.plexapi.models.operations.User](../../models/operations/User.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentRequest.md b/docs/models/operations/GetTopWatchedContentRequest.md
new file mode 100644
index 00000000..cffb1b94
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentRequest.md
@@ -0,0 +1,9 @@
+# GetTopWatchedContentRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
+| `type` | *long* | :heavy_check_mark: | the library type (1 - movies, 2 - shows, 3 - music) | |
+| `includeGuids` | *Optional extends Long>* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentResponse.md b/docs/models/operations/GetTopWatchedContentResponse.md
new file mode 100644
index 00000000..ea3ae061
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentResponse.md
@@ -0,0 +1,11 @@
+# GetTopWatchedContentResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentResponseBody>](../../models/operations/GetTopWatchedContentResponseBody.md) | :heavy_minus_sign: | The metadata of the library item. |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentResponseBody.md b/docs/models/operations/GetTopWatchedContentResponseBody.md
new file mode 100644
index 00000000..23fb3d07
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentResponseBody.md
@@ -0,0 +1,10 @@
+# GetTopWatchedContentResponseBody
+
+The metadata of the library item.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentMediaContainer>](../../models/operations/GetTopWatchedContentMediaContainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/GetTopWatchedContentRole.md b/docs/models/operations/GetTopWatchedContentRole.md
new file mode 100644
index 00000000..197af673
--- /dev/null
+++ b/docs/models/operations/GetTopWatchedContentRole.md
@@ -0,0 +1,13 @@
+# GetTopWatchedContentRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 220 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | actor=220 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Dennis Keiffer |
+| `tagKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 5d77683554f42c001f8c4708 |
+| `role` | *Optional extends String>* | :heavy_minus_sign: | N/A | Bar Guy (uncredited) |
+| `thumb` | *Optional extends 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/GetTranscodeSessionsMediaContainer.md b/docs/models/operations/GetTranscodeSessionsMediaContainer.md
new file mode 100644
index 00000000..7802d80c
--- /dev/null
+++ b/docs/models/operations/GetTranscodeSessionsMediaContainer.md
@@ -0,0 +1,9 @@
+# GetTranscodeSessionsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `size` | *Optional extends 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..9cb8395b
--- /dev/null
+++ b/docs/models/operations/GetTranscodeSessionsResponse.md
@@ -0,0 +1,11 @@
+# GetTranscodeSessionsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetTranscodeSessionsResponseBody>](../../models/operations/GetTranscodeSessionsResponseBody.md) | :heavy_minus_sign: | The Transcode Sessions |
\ 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..db72de2f
--- /dev/null
+++ b/docs/models/operations/GetTranscodeSessionsResponseBody.md
@@ -0,0 +1,10 @@
+# GetTranscodeSessionsResponseBody
+
+The Transcode Sessions
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/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..ecf13876
--- /dev/null
+++ b/docs/models/operations/GetTransientTokenResponse.md
@@ -0,0 +1,10 @@
+# GetTransientTokenResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..71f426d1
--- /dev/null
+++ b/docs/models/operations/GetUpdateStatusMediaContainer.md
@@ -0,0 +1,13 @@
+# GetUpdateStatusMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `canInstall` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `checkedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705801232 |
+| `downloadURL` | *Optional extends 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` | *Optional extends 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..1418f575
--- /dev/null
+++ b/docs/models/operations/GetUpdateStatusResponse.md
@@ -0,0 +1,11 @@
+# GetUpdateStatusResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetUpdateStatusResponseBody>](../../models/operations/GetUpdateStatusResponseBody.md) | :heavy_minus_sign: | The Server Updates |
\ 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..9cfefaa1
--- /dev/null
+++ b/docs/models/operations/GetUpdateStatusResponseBody.md
@@ -0,0 +1,10 @@
+# GetUpdateStatusResponseBody
+
+The Server Updates
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `mediaContainer` | [Optional extends 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/GetWatchlistRequest.md b/docs/models/operations/GetWatchlistRequest.md
new file mode 100644
index 00000000..3893f314
--- /dev/null
+++ b/docs/models/operations/GetWatchlistRequest.md
@@ -0,0 +1,16 @@
+# GetWatchlistRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `filter` | [lukehagar.plexapi.plexapi.models.operations.PathParamFilter](../../models/operations/PathParamFilter.md) | :heavy_check_mark: | Filter |
+| `sort` | *Optional extends String>* | :heavy_minus_sign: | In the format "field:dir". Available fields are "watchlistedAt" (Added At),
"titleSort" (Title), "originallyAvailableAt" (Release Date), or "rating" (Critic Rating).
"dir" can be "asc" or "desc"
|
+| `libtype` | [Optional extends lukehagar.plexapi.plexapi.models.operations.Libtype>](../../models/operations/Libtype.md) | :heavy_minus_sign: | The type of library to filter. Can be "movie" or "show", or all if not present.
|
+| `maxresults` | *Optional extends Integer>* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
|
+| `includeCollections` | [Optional extends lukehagar.plexapi.plexapi.models.operations.IncludeCollections>](../../models/operations/IncludeCollections.md) | :heavy_minus_sign: | include collections in the results
|
+| `includeExternalMedia` | [Optional extends lukehagar.plexapi.plexapi.models.operations.IncludeExternalMedia>](../../models/operations/IncludeExternalMedia.md) | :heavy_minus_sign: | include external media in the results
|
+| `xPlexToken` | *String* | :heavy_check_mark: | User Token |
+| `xPlexContainerStart` | *Optional extends Integer>* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
|
+| `xPlexContainerSize` | *Optional extends Integer>* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
|
\ No newline at end of file
diff --git a/docs/models/operations/GetWatchlistResponse.md b/docs/models/operations/GetWatchlistResponse.md
new file mode 100644
index 00000000..a146a5be
--- /dev/null
+++ b/docs/models/operations/GetWatchlistResponse.md
@@ -0,0 +1,11 @@
+# GetWatchlistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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` | [Optional extends lukehagar.plexapi.plexapi.models.operations.GetWatchlistResponseBody>](../../models/operations/GetWatchlistResponseBody.md) | :heavy_minus_sign: | Watchlist Data |
\ No newline at end of file
diff --git a/docs/models/operations/GetWatchlistResponseBody.md b/docs/models/operations/GetWatchlistResponseBody.md
new file mode 100644
index 00000000..e765110b
--- /dev/null
+++ b/docs/models/operations/GetWatchlistResponseBody.md
@@ -0,0 +1,16 @@
+# GetWatchlistResponseBody
+
+Watchlist Data
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `librarySectionID` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `librarySectionTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `offset` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `totalSize` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `size` | *Optional extends Integer>* | :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/Guids.md b/docs/models/operations/Guids.md
new file mode 100644
index 00000000..62bc2565
--- /dev/null
+++ b/docs/models/operations/Guids.md
@@ -0,0 +1,8 @@
+# Guids
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `id` | *Optional extends 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..fbcc7482
--- /dev/null
+++ b/docs/models/operations/Hub.md
@@ -0,0 +1,18 @@
+# Hub
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
+| `hubKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/50768,65523,58188,57341,57302,57070 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /playlists/all?type=15&sort=lastViewedAt:desc&playlistType=video,audio |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Recent Playlists |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | playlist |
+| `hubIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | home.playlists |
+| `context` | *Optional extends String>* | :heavy_minus_sign: | N/A | hub.home.playlists |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 6 |
+| `more` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `style` | *Optional extends String>* | :heavy_minus_sign: | N/A | shelf |
+| `promoted` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsMetadata](../../models/operations/GetGlobalHubsMetadata.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/Image.md b/docs/models/operations/Image.md
new file mode 100644
index 00000000..c4f6f795
--- /dev/null
+++ b/docs/models/operations/Image.md
@@ -0,0 +1,10 @@
+# Image
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `alt` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `url` | *Optional extends String>* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/IncludeCollections.md b/docs/models/operations/IncludeCollections.md
new file mode 100644
index 00000000..cc248dfa
--- /dev/null
+++ b/docs/models/operations/IncludeCollections.md
@@ -0,0 +1,12 @@
+# IncludeCollections
+
+include collections in the results
+
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ONE` | 1 |
+| `ZERO` | 0 |
\ 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/IncludeExternalMedia.md b/docs/models/operations/IncludeExternalMedia.md
new file mode 100644
index 00000000..07bbeab2
--- /dev/null
+++ b/docs/models/operations/IncludeExternalMedia.md
@@ -0,0 +1,12 @@
+# IncludeExternalMedia
+
+include external media in the results
+
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ONE` | 1 |
+| `ZERO` | 0 |
\ 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/LibrarySectionID.md b/docs/models/operations/LibrarySectionID.md
new file mode 100644
index 00000000..51c90cc6
--- /dev/null
+++ b/docs/models/operations/LibrarySectionID.md
@@ -0,0 +1,2 @@
+# LibrarySectionID
+
diff --git a/docs/models/operations/Libtype.md b/docs/models/operations/Libtype.md
new file mode 100644
index 00000000..6828dfdc
--- /dev/null
+++ b/docs/models/operations/Libtype.md
@@ -0,0 +1,12 @@
+# Libtype
+
+The type of library to filter. Can be "movie" or "show", or all if not present.
+
+
+
+## Values
+
+| Name | Value |
+| ------- | ------- |
+| `MOVIE` | movie |
+| `SHOW` | show |
\ 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..498b484f
--- /dev/null
+++ b/docs/models/operations/Location.md
@@ -0,0 +1,17 @@
+# Location
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `code` | *Optional extends String>* | :heavy_minus_sign: | N/A | US |
+| `europeanUnionMember` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `continentCode` | *Optional extends String>* | :heavy_minus_sign: | N/A | NA |
+| `country` | *Optional extends String>* | :heavy_minus_sign: | N/A | United States |
+| `city` | *Optional extends String>* | :heavy_minus_sign: | N/A | Austin |
+| `timeZone` | *Optional extends String>* | :heavy_minus_sign: | N/A | America/Chicago |
+| `postalCode` | *Optional extends String>* | :heavy_minus_sign: | N/A | 78732 |
+| `inPrivacyRestrictedCountry` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `subdivisions` | *Optional extends String>* | :heavy_minus_sign: | N/A | Texas |
+| `coordinates` | *Optional extends String>* | :heavy_minus_sign: | N/A | 30.3768 -97.8935 |
\ 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..da2fe3f4
--- /dev/null
+++ b/docs/models/operations/LogLineResponse.md
@@ -0,0 +1,10 @@
+# LogLineResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..f9a76c07
--- /dev/null
+++ b/docs/models/operations/LogMultiLineResponse.md
@@ -0,0 +1,10 @@
+# LogMultiLineResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..59ec5aa2
--- /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..5f683859
--- /dev/null
+++ b/docs/models/operations/MarkPlayedResponse.md
@@ -0,0 +1,10 @@
+# MarkPlayedResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..c365eda1
--- /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..7423891a
--- /dev/null
+++ b/docs/models/operations/MarkUnplayedResponse.md
@@ -0,0 +1,10 @@
+# MarkUnplayedResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..86a8587c
--- /dev/null
+++ b/docs/models/operations/Media.md
@@ -0,0 +1,23 @@
+# Media
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 120345 |
+| `duration` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 7474422 |
+| `bitrate` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 3623 |
+| `width` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 804 |
+| `aspectRatio` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2.35 |
+| `audioChannels` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 6 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | ac3 |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | h264 |
+| `videoResolution` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `videoFrameRate` | *Optional extends String>* | :heavy_minus_sign: | N/A | 24p |
+| `optimizedForStreaming` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 0 |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `videoProfile` | *Optional extends 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..430bd1ea
--- /dev/null
+++ b/docs/models/operations/MediaContainer.md
@@ -0,0 +1,58 @@
+# MediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `allowCameraUpload` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `allowChannelAccess` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `allowMediaDeletion` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `allowSharing` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `allowTuners` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `backgroundProcessing` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `certificate` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `companionProxy` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `countryCode` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `diagnostics` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `eventStream` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `friendlyName` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `hubSearch` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `itemClusters` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `livetv` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `machineIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `mediaProviders` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `multiuser` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `musicAnalysis` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `myPlex` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `myPlexMappingState` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `myPlexSigninState` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `myPlexSubscription` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `myPlexUsername` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `offlineTranscode` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `ownerFeatures` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `photoAutoTag` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `platform` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `platformVersion` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `pluginHost` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `pushNotifications` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `readOnlyLibraries` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `streamingBrainABRVersion` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `streamingBrainVersion` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `sync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `transcoderActiveVideoSessions` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `transcoderAudio` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `transcoderLyrics` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `transcoderPhoto` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `transcoderSubtitles` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `transcoderVideo` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `transcoderVideoBitrates` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `transcoderVideoQualities` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `transcoderVideoResolutions` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `updatedAt` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `updater` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `version` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `voiceSearch` | *Optional extends 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..842130b8
--- /dev/null
+++ b/docs/models/operations/Metadata.md
@@ -0,0 +1,42 @@
+# Metadata
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `studio` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `tagline` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `publicPagesURL` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `slug` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `userState` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `contentRating` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `originallyAvailableAt` | [LocalDate](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) | :heavy_minus_sign: | N/A |
+| `year` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `image` | List<[lukehagar.plexapi.plexapi.models.operations.Image](../../models/operations/Image.md)> | :heavy_minus_sign: | N/A |
+| `banner` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `rating` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `expiresAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `originalTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `audienceRating` | *Optional extends Double>* | :heavy_minus_sign: | N/A |
+| `audienceRatingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `ratingImage` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `imdbRatingCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `subtype` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `theme` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `leafCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `childCount` | *Optional extends Integer>* | :heavy_minus_sign: | N/A |
+| `isContinuingSeries` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `skipChildren` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A |
+| `availabilityId` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `streamingMediaId` | *Optional extends String>* | :heavy_minus_sign: | N/A |
+| `playableKey` | *Optional extends String>* | :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..9b8b8888
--- /dev/null
+++ b/docs/models/operations/MyPlex.md
@@ -0,0 +1,19 @@
+# MyPlex
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `authToken` | *Optional extends String>* | :heavy_minus_sign: | N/A | Z5v-PrNASDFpsaCi3CPK7 |
+| `username` | *Optional extends String>* | :heavy_minus_sign: | N/A | example.email@mail.com |
+| `mappingState` | *Optional extends String>* | :heavy_minus_sign: | N/A | mapped |
+| `mappingError` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `signInState` | *Optional extends String>* | :heavy_minus_sign: | N/A | ok |
+| `publicAddress` | *Optional extends String>* | :heavy_minus_sign: | N/A | 140.20.68.140 |
+| `publicPort` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 32400 |
+| `privateAddress` | *Optional extends String>* | :heavy_minus_sign: | N/A | 10.10.10.47 |
+| `privatePort` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 32400 |
+| `subscriptionFeatures` | *Optional extends 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` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `subscriptionState` | *Optional extends 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..e9575212
--- /dev/null
+++ b/docs/models/operations/Operator.md
@@ -0,0 +1,9 @@
+# Operator
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | = |
+| `title` | *Optional extends 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..8af6c5dc
--- /dev/null
+++ b/docs/models/operations/Part.md
@@ -0,0 +1,17 @@
+# Part
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
+| `id` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 120353 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/parts/120353/1681803203/file.mp4 |
+| `duration` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 7474422 |
+| `file` | *Optional extends String>* | :heavy_minus_sign: | N/A | /movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4 |
+| `size` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 3395307162 |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bitOffsets` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `hasThumbnail` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1 |
+| `optimizedForStreaming` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | |
+| `videoProfile` | *Optional extends String>* | :heavy_minus_sign: | N/A | high |
\ No newline at end of file
diff --git a/docs/models/operations/PathParamFilter.md b/docs/models/operations/PathParamFilter.md
new file mode 100644
index 00000000..f3d9441b
--- /dev/null
+++ b/docs/models/operations/PathParamFilter.md
@@ -0,0 +1,12 @@
+# PathParamFilter
+
+Filter
+
+
+## Values
+
+| Name | Value |
+| ----------- | ----------- |
+| `ALL` | all |
+| `AVAILABLE` | available |
+| `RELEASED` | released |
\ 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/PerformSearchRequest.md b/docs/models/operations/PerformSearchRequest.md
new file mode 100644
index 00000000..198a00cb
--- /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` | *Optional extends Double>* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
+| `limit` | *Optional extends 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..9ced937c
--- /dev/null
+++ b/docs/models/operations/PerformSearchResponse.md
@@ -0,0 +1,10 @@
+# PerformSearchResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..c7f4e75c
--- /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` | *Optional extends Double>* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
+| `limit` | *Optional extends 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..3e533d5e
--- /dev/null
+++ b/docs/models/operations/PerformVoiceSearchResponse.md
@@ -0,0 +1,10 @@
+# PerformVoiceSearchResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..48a31d10
--- /dev/null
+++ b/docs/models/operations/Player.md
@@ -0,0 +1,22 @@
+# Player
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `address` | *Optional extends String>* | :heavy_minus_sign: | N/A | 10.10.10.171 |
+| `machineIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | 3tsdzir85m2onc3qyr255aq1 |
+| `model` | *Optional extends String>* | :heavy_minus_sign: | N/A | standalone |
+| `platform` | *Optional extends String>* | :heavy_minus_sign: | N/A | windows |
+| `platformVersion` | *Optional extends String>* | :heavy_minus_sign: | N/A | 10.0.22621 |
+| `product` | *Optional extends String>* | :heavy_minus_sign: | N/A | Plex for Windows |
+| `profile` | *Optional extends String>* | :heavy_minus_sign: | N/A | Plex Desktop |
+| `remotePublicAddress` | *Optional extends String>* | :heavy_minus_sign: | N/A | 68.248.140.20 |
+| `state` | *Optional extends String>* | :heavy_minus_sign: | N/A | playing |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | DESKTOP-BL80MTD |
+| `version` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1.85.0.4071-21128b56 |
+| `local` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `relayed` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `secure` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `userID` | *Optional extends 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..23c5b53a
--- /dev/null
+++ b/docs/models/operations/Producer.md
@@ -0,0 +1,12 @@
+# Producer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 221 |
+| `filter` | *Optional extends String>* | :heavy_minus_sign: | N/A | producer=221 |
+| `tag` | *Optional extends String>* | :heavy_minus_sign: | N/A | Barry Mendel |
+| `tagKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 5d776826961905001eb90e2b |
+| `thumb` | *Optional extends 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..fe99486b
--- /dev/null
+++ b/docs/models/operations/Provider.md
@@ -0,0 +1,10 @@
+# Provider
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/search |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Local Network |
+| `type` | *Optional extends 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..5072fab4
--- /dev/null
+++ b/docs/models/operations/Ratings.md
@@ -0,0 +1,10 @@
+# Ratings
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `image` | *Optional extends String>* | :heavy_minus_sign: | N/A | themoviedb://image.rating |
+| `value` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 7.4 |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | audience |
\ 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..b3e8d636
--- /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..5464acc9
--- /dev/null
+++ b/docs/models/operations/RefreshLibraryResponse.md
@@ -0,0 +1,10 @@
+# RefreshLibraryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..1cd76487
--- /dev/null
+++ b/docs/models/operations/Release.md
@@ -0,0 +1,13 @@
+# Release
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | https://plex.tv/updater/releases/5136 |
+| `version` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1.40.0.7775-456fbaf97 |
+| `added` | *Optional extends 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` | *Optional extends 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` | *Optional extends 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` | *Optional extends 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..3d666328
--- /dev/null
+++ b/docs/models/operations/Role.md
@@ -0,0 +1,8 @@
+# Role
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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..551b963d
--- /dev/null
+++ b/docs/models/operations/SearchLibraryMediaContainer.md
@@ -0,0 +1,20 @@
+# SearchLibraryMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `allowSync` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/show-fanart.jpg |
+| `identifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `mediaTagPrefix` | *Optional extends String>* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `mediaTagVersion` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1698860922 |
+| `nocache` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /:/resources/show.png |
+| `title1` | *Optional extends String>* | :heavy_minus_sign: | N/A | TV Shows |
+| `title2` | *Optional extends String>* | :heavy_minus_sign: | N/A | Search for '' |
+| `viewGroup` | *Optional extends String>* | :heavy_minus_sign: | N/A | season |
+| `viewMode` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 65593 |
+| `metadata` | List<[lukehagar.plexapi.plexapi.models.operations.SearchLibraryMetadata](../../models/operations/SearchLibraryMetadata.md)> | :heavy_minus_sign: | N/A | |
\ 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..348ca67d
--- /dev/null
+++ b/docs/models/operations/SearchLibraryMetadata.md
@@ -0,0 +1,27 @@
+# SearchLibraryMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `ratingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 2 |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/2/children |
+| `parentRatingKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `guid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://season/602e67e766dfdb002c0a1b5b |
+| `parentGuid` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex://show/5d9c086c7d06d9001ffd27aa |
+| `parentStudio` | *Optional extends String>* | :heavy_minus_sign: | N/A | Mutant Enemy Productions |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | season |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Season 1 |
+| `parentKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/1 |
+| `parentTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | Firefly |
+| `summary` | *Optional extends 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` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `parentIndex` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `parentYear` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2002 |
+| `thumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/2/thumb/1705636920 |
+| `art` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/1/art/1705636920 |
+| `parentThumb` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/1/thumb/1705636920 |
+| `parentTheme` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 |
+| `addedAt` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1705636916 |
+| `updatedAt` | *Optional extends 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..51a83211
--- /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..0112bda8
--- /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` | *int* | :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` | [Optional extends 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..642bd4d5
--- /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` | [Optional extends 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..073d611d
--- /dev/null
+++ b/docs/models/operations/Server.md
@@ -0,0 +1,18 @@
+# Server
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
+| `name` | *Optional extends String>* | :heavy_minus_sign: | N/A | iPad |
+| `host` | *Optional extends String>* | :heavy_minus_sign: | N/A | 10.10.10.102 |
+| `address` | *Optional extends String>* | :heavy_minus_sign: | N/A | 10.10.10.102 |
+| `port` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 32500 |
+| `machineIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05 |
+| `version` | *Optional extends String>* | :heavy_minus_sign: | N/A | 8.17 |
+| `protocol` | *Optional extends String>* | :heavy_minus_sign: | N/A | plex |
+| `product` | *Optional extends String>* | :heavy_minus_sign: | N/A | Plex for iOS |
+| `deviceClass` | *Optional extends String>* | :heavy_minus_sign: | N/A | tablet |
+| `protocolVersion` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 2 |
+| `protocolCapabilities` | *Optional extends 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..1d21f35a
--- /dev/null
+++ b/docs/models/operations/Session.md
@@ -0,0 +1,10 @@
+# Session
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | 93h7e00ncblxncqw9lkfaoxi |
+| `bandwidth` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1050 |
+| `location` | *Optional extends 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..8e0bebe3
--- /dev/null
+++ b/docs/models/operations/Setting.md
@@ -0,0 +1,17 @@
+# Setting
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends String>* | :heavy_minus_sign: | N/A | EnableDatabaseTrace |
+| `label` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `summary` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `type` | *Optional extends String>* | :heavy_minus_sign: | N/A | bool |
+| `default_` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `value` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `hidden` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `advanced` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `group` | *Optional extends String>* | :heavy_minus_sign: | N/A | |
+| `enumValues` | *Optional extends 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..00ae8b6e
--- /dev/null
+++ b/docs/models/operations/Sort.md
@@ -0,0 +1,13 @@
+# Sort
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- |
+| `default_` | *Optional extends String>* | :heavy_minus_sign: | N/A | asc |
+| `defaultDirection` | *Optional extends String>* | :heavy_minus_sign: | N/A | desc |
+| `descKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | random:desc |
+| `firstCharacterKey` | *Optional extends String>* | :heavy_minus_sign: | N/A | /library/sections/1/firstCharacter |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | random |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | N/A | Randomly |
\ 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..68d73133
--- /dev/null
+++ b/docs/models/operations/StartAllTasksResponse.md
@@ -0,0 +1,10 @@
+# StartAllTasksResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..c0d712bb
--- /dev/null
+++ b/docs/models/operations/StartTaskResponse.md
@@ -0,0 +1,10 @@
+# StartTaskResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..8a576da3
--- /dev/null
+++ b/docs/models/operations/StartUniversalTranscodeRequest.md
@@ -0,0 +1,23 @@
+# StartUniversalTranscodeRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| `hasMDE` | *double* | :heavy_check_mark: | Whether the media item has MDE | 1 |
+| `path` | *String* | :heavy_check_mark: | The path to the media item to transcode | /library/metadata/23409 |
+| `mediaIndex` | *double* | :heavy_check_mark: | The index of the media item to transcode | 0 |
+| `partIndex` | *double* | :heavy_check_mark: | The index of the part to transcode | 0 |
+| `protocol` | *String* | :heavy_check_mark: | The protocol to use for the transcode session | hls |
+| `fastSeek` | *Optional extends Double>* | :heavy_minus_sign: | Whether to use fast seek or not | 0 |
+| `directPlay` | *Optional extends Double>* | :heavy_minus_sign: | Whether to use direct play or not | 0 |
+| `directStream` | *Optional extends Double>* | :heavy_minus_sign: | Whether to use direct stream or not | 0 |
+| `subtitleSize` | *Optional extends Double>* | :heavy_minus_sign: | The size of the subtitles | 100 |
+| `subtites` | *Optional extends String>* | :heavy_minus_sign: | The subtitles | burn |
+| `audioBoost` | *Optional extends Double>* | :heavy_minus_sign: | The audio boost | 100 |
+| `location` | *Optional extends String>* | :heavy_minus_sign: | The location of the transcode session | lan |
+| `mediaBufferSize` | *Optional extends Double>* | :heavy_minus_sign: | The size of the media buffer | 102400 |
+| `session` | *Optional extends String>* | :heavy_minus_sign: | The session ID | zvcage8b7rkioqcm8f4uns4c |
+| `addDebugOverlay` | *Optional extends Double>* | :heavy_minus_sign: | Whether to add a debug overlay or not | 0 |
+| `autoAdjustQuality` | *Optional extends Double>* | :heavy_minus_sign: | Whether to auto adjust quality or not | 0 |
\ 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..430ea62a
--- /dev/null
+++ b/docs/models/operations/StartUniversalTranscodeResponse.md
@@ -0,0 +1,10 @@
+# StartUniversalTranscodeResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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/StatisticsBandwidth.md b/docs/models/operations/StatisticsBandwidth.md
new file mode 100644
index 00000000..a0003aa7
--- /dev/null
+++ b/docs/models/operations/StatisticsBandwidth.md
@@ -0,0 +1,13 @@
+# StatisticsBandwidth
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `accountID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 238960586 |
+| `deviceID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | |
+| `timespan` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 6 |
+| `at` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1718387650 |
+| `lan` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `bytes` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 22 |
\ 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..a67be1df
--- /dev/null
+++ b/docs/models/operations/StatisticsMedia.md
@@ -0,0 +1,14 @@
+# StatisticsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `accountID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `deviceID` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 13 |
+| `timespan` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 4 |
+| `at` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1707141600 |
+| `metadataType` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 4 |
+| `count` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1555 |
\ No newline at end of file
diff --git a/docs/models/operations/StatisticsResources.md b/docs/models/operations/StatisticsResources.md
new file mode 100644
index 00000000..1df45d99
--- /dev/null
+++ b/docs/models/operations/StatisticsResources.md
@@ -0,0 +1,13 @@
+# StatisticsResources
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------- | --------------------------- | --------------------------- | --------------------------- | --------------------------- |
+| `timespan` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 6 |
+| `at` | *Optional extends Long>* | :heavy_minus_sign: | N/A | 1718384427 |
+| `hostCpuUtilization` | *Optional extends Float>* | :heavy_minus_sign: | N/A | 1.276 |
+| `processCpuUtilization` | *Optional extends Float>* | :heavy_minus_sign: | N/A | 0.025 |
+| `hostMemoryUtilization` | *Optional extends Float>* | :heavy_minus_sign: | N/A | 17.026 |
+| `processMemoryUtilization` | *Optional extends Float>* | :heavy_minus_sign: | N/A | 0.493 |
\ 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..bb33806e
--- /dev/null
+++ b/docs/models/operations/StopAllTasksResponse.md
@@ -0,0 +1,10 @@
+# StopAllTasksResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..9d43a4eb
--- /dev/null
+++ b/docs/models/operations/StopTaskResponse.md
@@ -0,0 +1,10 @@
+# StopTaskResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..17de4d9c
--- /dev/null
+++ b/docs/models/operations/StopTranscodeSessionResponse.md
@@ -0,0 +1,10 @@
+# StopTranscodeSessionResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..9ffcff4c
--- /dev/null
+++ b/docs/models/operations/Stream.md
@@ -0,0 +1,39 @@
+# Stream
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 29 |
+| `streamType` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `default_` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `codec` | *Optional extends String>* | :heavy_minus_sign: | N/A | aac |
+| `index` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 0 |
+| `bitrate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 128 |
+| `bitDepth` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 8 |
+| `chromaLocation` | *Optional extends String>* | :heavy_minus_sign: | N/A | left |
+| `chromaSubsampling` | *Optional extends String>* | :heavy_minus_sign: | N/A | 14520 |
+| `codedHeight` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 816 |
+| `codedWidth` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1920 |
+| `colorPrimaries` | *Optional extends String>* | :heavy_minus_sign: | N/A | bt709 |
+| `colorRange` | *Optional extends String>* | :heavy_minus_sign: | N/A | tv |
+| `colorSpace` | *Optional extends String>* | :heavy_minus_sign: | N/A | bt709 |
+| `colorTrc` | *Optional extends String>* | :heavy_minus_sign: | N/A | bt709 |
+| `frameRate` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 24 |
+| `hasScalingMatrix` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `height` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 814 |
+| `level` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 40 |
+| `profile` | *Optional extends String>* | :heavy_minus_sign: | N/A | lc |
+| `refFrames` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 4 |
+| `scanType` | *Optional extends String>* | :heavy_minus_sign: | N/A | progressive |
+| `streamIdentifier` | *Optional extends String>* | :heavy_minus_sign: | N/A | 1 |
+| `width` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1920 |
+| `displayTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | English (AAC Stereo) |
+| `extendedDisplayTitle` | *Optional extends String>* | :heavy_minus_sign: | N/A | English (AAC Stereo) |
+| `selected` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `channels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 2 |
+| `language` | *Optional extends String>* | :heavy_minus_sign: | N/A | English |
+| `languageTag` | *Optional extends String>* | :heavy_minus_sign: | N/A | en |
+| `languageCode` | *Optional extends String>* | :heavy_minus_sign: | N/A | eng |
+| `samplingRate` | *Optional extends 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..f410d38e
--- /dev/null
+++ b/docs/models/operations/TranscodeSession.md
@@ -0,0 +1,31 @@
+# TranscodeSession
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `key` | *Optional extends String>* | :heavy_minus_sign: | N/A | vv3i2q2lax92qlzul1hbd4bx |
+| `throttled` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `complete` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `progress` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1.7999999523162842 |
+| `size` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | -22 |
+| `speed` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 25.100000381469727 |
+| `error` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | false |
+| `duration` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1445695 |
+| `remaining` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 53 |
+| `context` | *Optional extends String>* | :heavy_minus_sign: | N/A | streaming |
+| `sourceVideoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | h264 |
+| `sourceAudioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | aac |
+| `videoDecision` | *Optional extends String>* | :heavy_minus_sign: | N/A | transcode |
+| `audioDecision` | *Optional extends String>* | :heavy_minus_sign: | N/A | transcode |
+| `subtitleDecision` | *Optional extends String>* | :heavy_minus_sign: | N/A | burn |
+| `protocol` | *Optional extends String>* | :heavy_minus_sign: | N/A | http |
+| `container` | *Optional extends String>* | :heavy_minus_sign: | N/A | mkv |
+| `videoCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | h264 |
+| `audioCodec` | *Optional extends String>* | :heavy_minus_sign: | N/A | opus |
+| `audioChannels` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 1 |
+| `transcodeHwRequested` | *Optional extends Boolean>* | :heavy_minus_sign: | N/A | true |
+| `timeStamp` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 1.7058958054919229e+09 |
+| `maxOffsetAvailable` | *Optional extends Double>* | :heavy_minus_sign: | N/A | 29.53 |
+| `minOffsetAvailable` | *Optional extends 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/UpdatePlayProgressRequest.md b/docs/models/operations/UpdatePlayProgressRequest.md
new file mode 100644
index 00000000..e8095bff
--- /dev/null
+++ b/docs/models/operations/UpdatePlayProgressRequest.md
@@ -0,0 +1,10 @@
+# UpdatePlayProgressRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `key` | *String* | :heavy_check_mark: | the media key | |
+| `time` | *double* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. | 90000 |
+| `state` | *String* | :heavy_check_mark: | The playback state of the media item. | played |
\ 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..fb6658fe
--- /dev/null
+++ b/docs/models/operations/UpdatePlayProgressResponse.md
@@ -0,0 +1,10 @@
+# UpdatePlayProgressResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..730d4feb
--- /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` | *Optional extends String>* | :heavy_minus_sign: | name of the playlist |
+| `summary` | *Optional extends 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..ff347431
--- /dev/null
+++ b/docs/models/operations/UpdatePlaylistResponse.md
@@ -0,0 +1,10 @@
+# UpdatePlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..08d49554
--- /dev/null
+++ b/docs/models/operations/UploadPlaylistResponse.md
@@ -0,0 +1,10 @@
+# UploadPlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `statusCode` | *int* | :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 |
\ 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..7ee912c7
--- /dev/null
+++ b/docs/models/operations/User.md
@@ -0,0 +1,8 @@
+# User
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- |
+| `id` | *Optional extends Integer>* | :heavy_minus_sign: | N/A | 220 |
\ 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..0eaada5e
--- /dev/null
+++ b/docs/models/operations/Writer.md
@@ -0,0 +1,8 @@
+# Writer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
+| `tag` | *Optional extends 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/docs/sdks/activities/README.md b/docs/sdks/activities/README.md
new file mode 100644
index 00000000..9f193791
--- /dev/null
+++ b/docs/sdks/activities/README.md
@@ -0,0 +1,151 @@
+# Activities
+(*activities()*)
+
+## Overview
+
+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.
+
+
+### Available Operations
+
+* [getServerActivities](#getserveractivities) - Get Server Activities
+* [cancelServerActivities](#cancelserveractivities) - Cancel Server Activities
+
+## getServerActivities
+
+Get Server Activities
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetServerActivitiesResponse res = sdk.activities().getServerActivities()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetServerActivitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetServerActivitiesResponse](../../models/operations/GetServerActivitiesResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| models/errors/GetServerActivitiesResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## cancelServerActivities
+
+Cancel Server Activities
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ CancelServerActivitiesResponse res = sdk.activities().cancelServerActivities()
+ .activityUUID("25b71ed5-0f9d-461c-baa7-d404e9e10d3e")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.CancelServerActivitiesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ |
+| `activityUUID` | *String* | :heavy_check_mark: | The UUID of the activity to cancel. | 25b71ed5-0f9d-461c-baa7-d404e9e10d3e |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.CancelServerActivitiesResponse](../../models/operations/CancelServerActivitiesResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ |
+| models/errors/CancelServerActivitiesResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md
new file mode 100644
index 00000000..e1182546
--- /dev/null
+++ b/docs/sdks/authentication/README.md
@@ -0,0 +1,155 @@
+# Authentication
+(*authentication()*)
+
+## Overview
+
+API Calls regarding authentication for Plex Media Server
+
+
+### Available Operations
+
+* [getTransientToken](#gettransienttoken) - Get a Transient Token.
+* [getSourceConnectionInformation](#getsourceconnectioninformation) - Get Source Connection Information
+
+## getTransientToken
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetTransientTokenResponse res = sdk.authentication().getTransientToken()
+ .type(GetTransientTokenQueryParamType.DELEGATION)
+ .scope(Scope.ALL)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetTransientTokenResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | 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. |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetTransientTokenResponse](../../models/operations/GetTransientTokenResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| models/errors/GetTransientTokenResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getSourceConnectionInformation
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetSourceConnectionInformationResponse res = sdk.authentication().getSourceConnectionInformation()
+ .source("server://client-identifier")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetSourceConnectionInformationResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
+| `source` | *String* | :heavy_check_mark: | The source identifier with an included prefix. | server://client-identifier |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetSourceConnectionInformationResponse](../../models/operations/GetSourceConnectionInformationResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| models/errors/GetSourceConnectionInformationResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
diff --git a/docs/sdks/butler/README.md b/docs/sdks/butler/README.md
new file mode 100644
index 00000000..3a9c561b
--- /dev/null
+++ b/docs/sdks/butler/README.md
@@ -0,0 +1,353 @@
+# Butler
+(*butler()*)
+
+## Overview
+
+Butler is the task manager of the Plex Media Server Ecosystem.
+
+
+### Available Operations
+
+* [getButlerTasks](#getbutlertasks) - Get Butler tasks
+* [startAllTasks](#startalltasks) - Start all Butler tasks
+* [stopAllTasks](#stopalltasks) - Stop all Butler tasks
+* [startTask](#starttask) - Start a single Butler task
+* [stopTask](#stoptask) - Stop a single Butler task
+
+## getButlerTasks
+
+Returns a list of butler tasks
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetButlerTasksResponse res = sdk.butler().getButlerTasks()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetButlerTasksResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetButlerTasksResponse](../../models/operations/GetButlerTasksResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| models/errors/GetButlerTasksResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## startAllTasks
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StartAllTasksResponse res = sdk.butler().startAllTasks()
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StartAllTasksResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.StartAllTasksResponse](../../models/operations/StartAllTasksResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| models/errors/StartAllTasksResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## stopAllTasks
+
+This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StopAllTasksResponse res = sdk.butler().stopAllTasks()
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StopAllTasksResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.StopAllTasksResponse](../../models/operations/StopAllTasksResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| models/errors/StopAllTasksResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## startTask
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StartTaskResponse res = sdk.butler().startTask()
+ .taskName(TaskName.CLEAN_OLD_BUNDLES)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StartTaskResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | 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. |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.StartTaskResponse](../../models/operations/StartTaskResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| models/errors/StartTaskResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## stopTask
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ StopTaskResponse res = sdk.butler().stopTask()
+ .taskName(PathParamTaskName.BACKUP_DATABASE)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.StopTaskResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | 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. |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.StopTaskResponse](../../models/operations/StopTaskResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------------------- | ---------------------------------- | ---------------------------------- |
+| models/errors/StopTaskResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
diff --git a/docs/sdks/hubs/README.md b/docs/sdks/hubs/README.md
new file mode 100644
index 00000000..88b34f73
--- /dev/null
+++ b/docs/sdks/hubs/README.md
@@ -0,0 +1,161 @@
+# Hubs
+(*hubs()*)
+
+## Overview
+
+Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows.
+
+
+### Available Operations
+
+* [getGlobalHubs](#getglobalhubs) - Get Global Hubs
+* [getLibraryHubs](#getlibraryhubs) - Get library specific hubs
+
+## getGlobalHubs
+
+Get Global Hubs filtered by the parameters provided.
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetGlobalHubsResponse res = sdk.hubs().getGlobalHubs()
+ .count(1262.49d)
+ .onlyTransient(OnlyTransient.ONE)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetGlobalHubsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `count` | *Optional extends Double>* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `onlyTransient` | [Optional extends 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). |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetGlobalHubsResponse](../../models/operations/GetGlobalHubsResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| models/errors/GetGlobalHubsResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getLibraryHubs
+
+This endpoint will return a list of library specific hubs
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibraryHubsResponse res = sdk.hubs().getLibraryHubs()
+ .sectionId(6728.76d)
+ .count(9010.22d)
+ .onlyTransient(QueryParamOnlyTransient.ZERO)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibraryHubsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `sectionId` | *double* | :heavy_check_mark: | the Id of the library to query |
+| `count` | *Optional extends Double>* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `onlyTransient` | [Optional extends 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). |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetLibraryHubsResponse](../../models/operations/GetLibraryHubsResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| models/errors/GetLibraryHubsResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md
new file mode 100644
index 00000000..bd1e0cef
--- /dev/null
+++ b/docs/sdks/library/README.md
@@ -0,0 +1,946 @@
+# Library
+(*library()*)
+
+## Overview
+
+API Calls interacting with Plex Media Server Libraries
+
+
+### Available Operations
+
+* [getFileHash](#getfilehash) - Get Hash Value
+* [getRecentlyAdded](#getrecentlyadded) - Get Recently Added
+* [getLibraries](#getlibraries) - Get All Libraries
+* [getLibrary](#getlibrary) - Get Library Details
+* [deleteLibrary](#deletelibrary) - Delete Library Section
+* [getLibraryItems](#getlibraryitems) - Get Library Items
+* [refreshLibrary](#refreshlibrary) - Refresh Library
+* [searchLibrary](#searchlibrary) - Search Library
+* [getMetadata](#getmetadata) - Get Items Metadata
+* [getMetadataChildren](#getmetadatachildren) - Get Items Children
+* [getTopWatchedContent](#gettopwatchedcontent) - Get Top Watched Content
+* [getOnDeck](#getondeck) - Get On Deck
+
+## getFileHash
+
+This resource returns hash values for local files
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetFileHashResponse res = sdk.library().getFileHash()
+ .url("file://C:\Image.png&type=13")
+ .type(4462.17d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetFileHashResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | 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` | *Optional extends Double>* | :heavy_minus_sign: | Item type | |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetFileHashResponse](../../models/operations/GetFileHashResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------- | ------------------------------------- | ------------------------------------- |
+| models/errors/GetFileHashResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getRecentlyAdded
+
+This endpoint will return the recently added content.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetRecentlyAddedResponse res = sdk.library().getRecentlyAdded()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetRecentlyAddedResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetRecentlyAddedResponse](../../models/operations/GetRecentlyAddedResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| models/errors/GetRecentlyAddedResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getLibraries
+
+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).
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibrariesResponse res = sdk.library().getLibraries()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibrariesResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetLibrariesResponse](../../models/operations/GetLibrariesResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| models/errors/GetLibrariesResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getLibrary
+
+## 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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibraryResponse res = sdk.library().getLibrary()
+ .sectionId(1000d)
+ .includeDetails(IncludeDetails.ZERO)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `sectionId` | *double* | :heavy_check_mark: | the Id of the library to query | 1000 |
+| `includeDetails` | [Optional extends 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.
| |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetLibraryResponse](../../models/operations/GetLibraryResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------ | ------------------------------------ | ------------------------------------ |
+| models/errors/GetLibraryResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## deleteLibrary
+
+Delate a library using a specific section
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ DeleteLibraryResponse res = sdk.library().deleteLibrary()
+ .sectionId(1000d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.DeleteLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
+| `sectionId` | *double* | :heavy_check_mark: | the Id of the library to query | 1000 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.DeleteLibraryResponse](../../models/operations/DeleteLibraryResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| models/errors/DeleteLibraryResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getLibraryItems
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetLibraryItemsResponse res = sdk.library().getLibraryItems()
+ .sectionId("")
+ .tag(Tag.GENRE)
+ .includeGuids(1L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetLibraryItemsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| `sectionId` | *java.lang.Object* | :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. | |
+| `includeGuids` | *Optional extends Long>* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetLibraryItemsResponse](../../models/operations/GetLibraryItemsResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
+| models/errors/GetLibraryItemsResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## refreshLibrary
+
+This endpoint Refreshes the library.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ RefreshLibraryResponse res = sdk.library().refreshLibrary()
+ .sectionId(934.16d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.RefreshLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- |
+| `sectionId` | *double* | :heavy_check_mark: | the Id of the library to refresh |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.RefreshLibraryResponse](../../models/operations/RefreshLibraryResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| models/errors/RefreshLibraryResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## searchLibrary
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ SearchLibraryResponse res = sdk.library().searchLibrary()
+ .sectionId(933505L)
+ .type(Type.FOUR)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.SearchLibraryResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | 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 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.SearchLibraryResponse](../../models/operations/SearchLibraryResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| models/errors/SearchLibraryResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getMetadata
+
+This endpoint will return the metadata of a library item specified with the ratingKey.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetMetadataResponse res = sdk.library().getMetadata()
+ .ratingKey(8382.31d)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetMetadataResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `ratingKey` | *double* | :heavy_check_mark: | the id of the library item to return the children of. |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetMetadataResponse](../../models/operations/GetMetadataResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------- | ------------------------------------- | ------------------------------------- |
+| models/errors/GetMetadataResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getMetadataChildren
+
+This endpoint will return the children of of a library item specified with the ratingKey.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetMetadataChildrenResponse res = sdk.library().getMetadataChildren()
+ .ratingKey(1539.14d)
+ .includeElements("")
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetMetadataChildrenResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
+| `ratingKey` | *double* | :heavy_check_mark: | the id of the library item to return the children of. |
+| `includeElements` | *Optional extends String>* | :heavy_minus_sign: | Adds additional elements to the response. Supported types are (Stream)
|
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetMetadataChildrenResponse](../../models/operations/GetMetadataChildrenResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| models/errors/GetMetadataChildrenResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getTopWatchedContent
+
+This endpoint will return the top watched content from libraries of a certain type
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetTopWatchedContentResponse res = sdk.library().getTopWatchedContent()
+ .type(505531L)
+ .includeGuids(1L)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
+| `type` | *long* | :heavy_check_mark: | the library type (1 - movies, 2 - shows, 3 - music) | |
+| `includeGuids` | *Optional extends Long>* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetTopWatchedContentResponse](../../models/operations/GetTopWatchedContentResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------- | ---------------------- | ---------------------- |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getOnDeck
+
+This endpoint will return the on deck content.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetOnDeckResponse res = sdk.library().getOnDeck()
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetOnDeckResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetOnDeckResponse](../../models/operations/GetOnDeckResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| models/errors/GetOnDeckResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
diff --git a/docs/sdks/log/README.md b/docs/sdks/log/README.md
new file mode 100644
index 00000000..3e65afcf
--- /dev/null
+++ b/docs/sdks/log/README.md
@@ -0,0 +1,244 @@
+# Log
+(*log()*)
+
+## Overview
+
+Submit logs to the Log Handler for Plex Media Server
+
+
+### Available Operations
+
+* [logLine](#logline) - Logging a single line message.
+* [logMultiLine](#logmultiline) - Logging a multi-line message
+* [enablePaperTrail](#enablepapertrail) - Enabling Papertrail
+
+## logLine
+
+This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ LogLineResponse res = sdk.log().logLine()
+ .level(Level.THREE)
+ .message("Test log message")
+ .source("Postman")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.LogLineResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | 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 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.LogLineResponse](../../models/operations/LogLineResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------- | --------------------------------- | --------------------------------- |
+| models/errors/LogLineResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## logMultiLine
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ String req = "level=4&message=Test%20message%201&source=postman
+level=3&message=Test%20message%202&source=postman
+level=1&message=Test%20message%203&source=postman";
+
+ LogMultiLineResponse res = sdk.log().logMultiLine()
+ .request(req)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.LogMultiLineResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| `request` | [String](../../models//.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.LogMultiLineResponse](../../models/operations/LogMultiLineResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| models/errors/LogMultiLineResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## enablePaperTrail
+
+This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ EnablePaperTrailResponse res = sdk.log().enablePaperTrail()
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.EnablePaperTrailResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.EnablePaperTrailResponse](../../models/operations/EnablePaperTrailResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| models/errors/EnablePaperTrailResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
diff --git a/docs/sdks/media/README.md b/docs/sdks/media/README.md
new file mode 100644
index 00000000..6ce7ec18
--- /dev/null
+++ b/docs/sdks/media/README.md
@@ -0,0 +1,225 @@
+# Media
+(*media()*)
+
+## Overview
+
+API Calls interacting with Plex Media Server Media
+
+
+### Available Operations
+
+* [markPlayed](#markplayed) - Mark Media Played
+* [markUnplayed](#markunplayed) - Mark Media Unplayed
+* [updatePlayProgress](#updateplayprogress) - Update Media Play Progress
+
+## markPlayed
+
+This will mark the provided media key as Played.
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ MarkPlayedResponse res = sdk.media().markPlayed()
+ .key(59398d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.MarkPlayedResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `key` | *double* | :heavy_check_mark: | The media key to mark as played | 59398 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.MarkPlayedResponse](../../models/operations/MarkPlayedResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------ | ------------------------------------ | ------------------------------------ |
+| models/errors/MarkPlayedResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## markUnplayed
+
+This will mark the provided media key as Unplayed.
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ MarkUnplayedResponse res = sdk.media().markUnplayed()
+ .key(59398d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.MarkUnplayedResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- |
+| `key` | *double* | :heavy_check_mark: | The media key to mark as Unplayed | 59398 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.MarkUnplayedResponse](../../models/operations/MarkUnplayedResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| models/errors/MarkUnplayedResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## updatePlayProgress
+
+This API command can be used to update the play progress of a media item.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ UpdatePlayProgressResponse res = sdk.media().updatePlayProgress()
+ .key("")
+ .time(90000d)
+ .state("played")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.UpdatePlayProgressResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `key` | *String* | :heavy_check_mark: | the media key | |
+| `time` | *double* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. | 90000 |
+| `state` | *String* | :heavy_check_mark: | The playback state of the media item. | played |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.UpdatePlayProgressResponse](../../models/operations/UpdatePlayProgressResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- |
+| models/errors/UpdatePlayProgressResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
diff --git a/docs/sdks/playlists/README.md b/docs/sdks/playlists/README.md
new file mode 100644
index 00000000..0a4b79ca
--- /dev/null
+++ b/docs/sdks/playlists/README.md
@@ -0,0 +1,689 @@
+# Playlists
+(*playlists()*)
+
+## Overview
+
+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.
+
+
+### Available Operations
+
+* [createPlaylist](#createplaylist) - Create a Playlist
+* [getPlaylists](#getplaylists) - Get All Playlists
+* [getPlaylist](#getplaylist) - Retrieve Playlist
+* [deletePlaylist](#deleteplaylist) - Deletes a Playlist
+* [updatePlaylist](#updateplaylist) - Update a Playlist
+* [getPlaylistContents](#getplaylistcontents) - Retrieve Playlist Contents
+* [clearPlaylistContents](#clearplaylistcontents) - Delete Playlist Contents
+* [addPlaylistContents](#addplaylistcontents) - Adding to a Playlist
+* [uploadPlaylist](#uploadplaylist) - Upload Playlist
+
+## createPlaylist
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ CreatePlaylistRequest req = CreatePlaylistRequest.builder()
+ .title("")
+ .type(QueryParamType.PHOTO)
+ .smart(Smart.ONE)
+ .uri("")
+ .build();
+
+ CreatePlaylistResponse res = sdk.playlists().createPlaylist()
+ .request(req)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.CreatePlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
+| `request` | [lukehagar.plexapi.plexapi.models.operations.CreatePlaylistRequest](../../models/operations/CreatePlaylistRequest.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.CreatePlaylistResponse](../../models/operations/CreatePlaylistResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| models/errors/CreatePlaylistResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getPlaylists
+
+Get All Playlists given the specified filters.
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPlaylistsResponse res = sdk.playlists().getPlaylists()
+ .playlistType(PlaylistType.AUDIO)
+ .smart(QueryParamSmart.ZERO)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPlaylistsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `playlistType` | [Optional extends lukehagar.plexapi.plexapi.models.operations.PlaylistType>](../../models/operations/PlaylistType.md) | :heavy_minus_sign: | limit to a type of playlist. |
+| `smart` | [Optional extends lukehagar.plexapi.plexapi.models.operations.QueryParamSmart>](../../models/operations/QueryParamSmart.md) | :heavy_minus_sign: | type of playlists to return (default is all). |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetPlaylistsResponse](../../models/operations/GetPlaylistsResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| models/errors/GetPlaylistsResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getPlaylist
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPlaylistResponse res = sdk.playlists().getPlaylist()
+ .playlistID(4109.48d)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlistID` | *double* | :heavy_check_mark: | the ID of the playlist |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetPlaylistResponse](../../models/operations/GetPlaylistResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ------------------------------------- | ------------------------------------- | ------------------------------------- |
+| models/errors/GetPlaylistResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## deletePlaylist
+
+This endpoint will delete a playlist
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ DeletePlaylistResponse res = sdk.playlists().deletePlaylist()
+ .playlistID(216.22d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.DeletePlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlistID` | *double* | :heavy_check_mark: | the ID of the playlist |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.DeletePlaylistResponse](../../models/operations/DeletePlaylistResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| models/errors/DeletePlaylistResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## updatePlaylist
+
+From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}`
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ UpdatePlaylistResponse res = sdk.playlists().updatePlaylist()
+ .playlistID(3915d)
+ .title("")
+ .summary("")
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.UpdatePlaylistResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| `playlistID` | *double* | :heavy_check_mark: | the ID of the playlist |
+| `title` | *Optional extends String>* | :heavy_minus_sign: | name of the playlist |
+| `summary` | *Optional extends String>* | :heavy_minus_sign: | summary description of the playlist |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.UpdatePlaylistResponse](../../models/operations/UpdatePlaylistResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| models/errors/UpdatePlaylistResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## getPlaylistContents
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ GetPlaylistContentsResponse res = sdk.playlists().getPlaylistContents()
+ .playlistID(5004.46d)
+ .type(9403.59d)
+ .call();
+
+ if (res.object().isPresent()) {
+ // handle response
+ }
+ } catch (lukehagar.plexapi.plexapi.models.errors.GetPlaylistContentsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | 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 |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.GetPlaylistContentsResponse](../../models/operations/GetPlaylistContentsResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| models/errors/GetPlaylistContentsResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## clearPlaylistContents
+
+Clears a playlist, only works with dumb playlists. Returns the playlist.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("")
+ .xPlexClientIdentifier("Postman")
+ .build();
+
+ ClearPlaylistContentsResponse res = sdk.playlists().clearPlaylistContents()
+ .playlistID(1893.18d)
+ .call();
+
+ // handle response
+ } catch (lukehagar.plexapi.plexapi.models.errors.ClearPlaylistContentsResponseBody e) {
+ // handle exception
+ throw e;
+ } catch (lukehagar.plexapi.plexapi.models.errors.SDKError e) {
+ // handle exception
+ throw e;
+ } catch (Exception e) {
+ // handle exception
+ throw e;
+ }
+
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlistID` | *double* | :heavy_check_mark: | the ID of the playlist |
+
+
+### Response
+
+**[lukehagar.plexapi.plexapi.models.operations.ClearPlaylistContentsResponse](../../models/operations/ClearPlaylistContentsResponse.md)**
+### Errors
+
+| Error Object | Status Code | Content Type |
+| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- |
+| models/errors/ClearPlaylistContentsResponseBody | 401 | application/json |
+| models/errors/SDKError | 4xx-5xx | \*\/* |
+
+## addPlaylistContents
+
+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.
+
+
+### Example Usage
+
+```java
+package hello.world;
+
+import java.math.BigDecimal;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.util.Optional;
+import lukehagar.plexapi.plexapi.PlexAPI;
+import lukehagar.plexapi.plexapi.models.operations.*;
+import lukehagar.plexapi.plexapi.models.shared.*;
+import lukehagar.plexapi.plexapi.models.shared.Security;
+import lukehagar.plexapi.plexapi.utils.EventStream;
+import org.openapitools.jackson.nullable.JsonNullable;
+import static java.util.Map.entry;
+
+public class Application {
+
+ public static void main(String[] args) throws Exception {
+ try {
+ PlexAPI sdk = PlexAPI.builder()
+ .accessToken("