diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index e3339213..eb37ab08 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 1732900d-e173-47c1-a90d-d45182eb35d9 management: - docChecksum: 48621865085324b8b8eda5901f092a37 + docChecksum: b2624bb972abebc11eff6d460c59de68 docVersion: 0.0.3 - speakeasyVersion: 1.542.1 - generationVersion: 2.597.9 - releaseVersion: 0.16.2 - configChecksum: d5e2d950151ea4d04d902bfcb11c2d0b + speakeasyVersion: 1.555.2 + generationVersion: 2.620.2 + releaseVersion: 0.17.0 + configChecksum: 452927d9308bb18bebc28339b8531c97 repoURL: https://github.com/LukeHagar/plexjava.git published: true features: java: additionalDependencies: 0.1.0 constsAndDefaults: 0.1.1 - core: 3.37.1 + core: 3.37.3 deprecations: 2.81.1 downloadStreams: 0.1.1 enums: 2.81.2 @@ -22,12 +22,12 @@ features: globalSecurity: 2.82.8 globalSecurityCallbacks: 0.1.0 globalSecurityFlattening: 0.1.0 - globalServerURLs: 2.82.1 + globalServerURLs: 2.82.2 methodServerURLs: 2.82.1 nameOverrides: 2.81.3 nullables: 0.1.0 openEnums: 0.2.0 - sdkHooks: 1.0.0 + sdkHooks: 1.1.0 unions: 0.0.6 generatedFiles: - .gitattributes @@ -78,10 +78,6 @@ generatedFiles: - docs/models/errors/GetAllLibrariesErrors.md - docs/models/errors/GetAllLibrariesLibraryErrors.md - docs/models/errors/GetAllLibrariesUnauthorized.md - - docs/models/errors/GetAllMediaLibraryBadRequest.md - - docs/models/errors/GetAllMediaLibraryErrors.md - - docs/models/errors/GetAllMediaLibraryLibraryErrors.md - - docs/models/errors/GetAllMediaLibraryUnauthorized.md - docs/models/errors/GetAvailableClientsBadRequest.md - docs/models/errors/GetAvailableClientsErrors.md - docs/models/errors/GetAvailableClientsServerErrors.md @@ -142,6 +138,10 @@ generatedFiles: - docs/models/errors/GetLibraryItemsErrors.md - docs/models/errors/GetLibraryItemsLibraryErrors.md - docs/models/errors/GetLibraryItemsUnauthorized.md + - docs/models/errors/GetLibrarySectionsAllBadRequest.md + - docs/models/errors/GetLibrarySectionsAllErrors.md + - docs/models/errors/GetLibrarySectionsAllLibraryErrors.md + - docs/models/errors/GetLibrarySectionsAllUnauthorized.md - docs/models/errors/GetMediaMetaDataBadRequest.md - docs/models/errors/GetMediaMetaDataErrors.md - docs/models/errors/GetMediaMetaDataLibraryErrors.md @@ -419,41 +419,6 @@ generatedFiles: - docs/models/operations/GetAllLibrariesResponse.md - docs/models/operations/GetAllLibrariesResponseBody.md - docs/models/operations/GetAllLibrariesType.md - - docs/models/operations/GetAllMediaLibraryActiveDirection.md - - docs/models/operations/GetAllMediaLibraryCollection.md - - docs/models/operations/GetAllMediaLibraryCountry.md - - docs/models/operations/GetAllMediaLibraryDefaultDirection.md - - docs/models/operations/GetAllMediaLibraryDirector.md - - docs/models/operations/GetAllMediaLibraryField.md - - docs/models/operations/GetAllMediaLibraryFieldType.md - - docs/models/operations/GetAllMediaLibraryFilter.md - - docs/models/operations/GetAllMediaLibraryGenre.md - - docs/models/operations/GetAllMediaLibraryGuids.md - - docs/models/operations/GetAllMediaLibraryHasThumbnail.md - - docs/models/operations/GetAllMediaLibraryImage.md - - docs/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.md - - docs/models/operations/GetAllMediaLibraryLibraryResponseType.md - - docs/models/operations/GetAllMediaLibraryLibraryType.md - - docs/models/operations/GetAllMediaLibraryMedia.md - - docs/models/operations/GetAllMediaLibraryMediaContainer.md - - docs/models/operations/GetAllMediaLibraryMeta.md - - docs/models/operations/GetAllMediaLibraryMetadata.md - - docs/models/operations/GetAllMediaLibraryOperator.md - - docs/models/operations/GetAllMediaLibraryOptimizedForStreaming.md - - docs/models/operations/GetAllMediaLibraryOptimizedForStreaming1.md - - docs/models/operations/GetAllMediaLibraryPart.md - - docs/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.md - - docs/models/operations/GetAllMediaLibraryQueryParamType.md - - docs/models/operations/GetAllMediaLibraryRequest.md - - docs/models/operations/GetAllMediaLibraryResponse.md - - docs/models/operations/GetAllMediaLibraryResponseBody.md - - docs/models/operations/GetAllMediaLibraryRole.md - - docs/models/operations/GetAllMediaLibrarySort.md - - docs/models/operations/GetAllMediaLibraryStream.md - - docs/models/operations/GetAllMediaLibraryStreamType.md - - docs/models/operations/GetAllMediaLibraryType.md - - docs/models/operations/GetAllMediaLibraryUltraBlurColors.md - - docs/models/operations/GetAllMediaLibraryWriter.md - docs/models/operations/GetAvailableClientsMediaContainer.md - docs/models/operations/GetAvailableClientsResponse.md - docs/models/operations/GetAvailableClientsResponseBody.md @@ -558,6 +523,41 @@ generatedFiles: - docs/models/operations/GetLibraryItemsType.md - docs/models/operations/GetLibraryItemsUltraBlurColors.md - docs/models/operations/GetLibraryItemsWriter.md + - docs/models/operations/GetLibrarySectionsAllActiveDirection.md + - docs/models/operations/GetLibrarySectionsAllCollection.md + - docs/models/operations/GetLibrarySectionsAllCountry.md + - docs/models/operations/GetLibrarySectionsAllDefaultDirection.md + - docs/models/operations/GetLibrarySectionsAllDirector.md + - docs/models/operations/GetLibrarySectionsAllField.md + - docs/models/operations/GetLibrarySectionsAllFieldType.md + - docs/models/operations/GetLibrarySectionsAllFilter.md + - docs/models/operations/GetLibrarySectionsAllGenre.md + - docs/models/operations/GetLibrarySectionsAllGuids.md + - docs/models/operations/GetLibrarySectionsAllHasThumbnail.md + - docs/models/operations/GetLibrarySectionsAllImage.md + - docs/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.md + - docs/models/operations/GetLibrarySectionsAllLibraryResponseType.md + - docs/models/operations/GetLibrarySectionsAllLibraryType.md + - docs/models/operations/GetLibrarySectionsAllMedia.md + - docs/models/operations/GetLibrarySectionsAllMediaContainer.md + - docs/models/operations/GetLibrarySectionsAllMeta.md + - docs/models/operations/GetLibrarySectionsAllMetadata.md + - docs/models/operations/GetLibrarySectionsAllOperator.md + - docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming.md + - docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.md + - docs/models/operations/GetLibrarySectionsAllPart.md + - docs/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.md + - docs/models/operations/GetLibrarySectionsAllQueryParamType.md + - docs/models/operations/GetLibrarySectionsAllRequest.md + - docs/models/operations/GetLibrarySectionsAllResponse.md + - docs/models/operations/GetLibrarySectionsAllResponseBody.md + - docs/models/operations/GetLibrarySectionsAllRole.md + - docs/models/operations/GetLibrarySectionsAllSort.md + - docs/models/operations/GetLibrarySectionsAllStream.md + - docs/models/operations/GetLibrarySectionsAllStreamType.md + - docs/models/operations/GetLibrarySectionsAllType.md + - docs/models/operations/GetLibrarySectionsAllUltraBlurColors.md + - docs/models/operations/GetLibrarySectionsAllWriter.md - docs/models/operations/GetMediaArtsMediaContainer.md - docs/models/operations/GetMediaArtsMetadata.md - docs/models/operations/GetMediaArtsRequest.md @@ -777,6 +777,7 @@ generatedFiles: - docs/models/operations/GetTopWatchedContentGuids.md - docs/models/operations/GetTopWatchedContentMediaContainer.md - docs/models/operations/GetTopWatchedContentMetadata.md + - docs/models/operations/GetTopWatchedContentQueryParamIncludeGuids.md - docs/models/operations/GetTopWatchedContentQueryParamType.md - docs/models/operations/GetTopWatchedContentRequest.md - docs/models/operations/GetTopWatchedContentResponse.md @@ -1039,10 +1040,6 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/errors/GetAllLibrariesErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetAllLibrariesLibraryErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetAllLibrariesUnauthorized.java - - src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryBadRequest.java - - src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryErrors.java - - src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryLibraryErrors.java - - src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryUnauthorized.java - src/main/java/dev/plexapi/sdk/models/errors/GetAvailableClientsBadRequest.java - src/main/java/dev/plexapi/sdk/models/errors/GetAvailableClientsErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetAvailableClientsServerErrors.java @@ -1103,6 +1100,10 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/errors/GetLibraryItemsErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetLibraryItemsLibraryErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetLibraryItemsUnauthorized.java + - src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllBadRequest.java + - src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllErrors.java + - src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllLibraryErrors.java + - src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllUnauthorized.java - src/main/java/dev/plexapi/sdk/models/errors/GetMediaMetaDataBadRequest.java - src/main/java/dev/plexapi/sdk/models/errors/GetMediaMetaDataErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetMediaMetaDataLibraryErrors.java @@ -1392,42 +1393,6 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/operations/GetAllLibrariesResponse.java - src/main/java/dev/plexapi/sdk/models/operations/GetAllLibrariesResponseBody.java - src/main/java/dev/plexapi/sdk/models/operations/GetAllLibrariesType.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryActiveDirection.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCollection.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCountry.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDefaultDirection.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDirector.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryField.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFieldType.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFilter.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGenre.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGuids.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryHasThumbnail.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryImage.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryResponseType.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryType.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMedia.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMediaContainer.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMeta.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMetadata.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOperator.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming1.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryPart.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamType.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequest.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequestBuilder.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponse.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponseBody.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRole.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibrarySort.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStream.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStreamType.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryType.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryUltraBlurColors.java - - src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryWriter.java - src/main/java/dev/plexapi/sdk/models/operations/GetAvailableClientsMediaContainer.java - src/main/java/dev/plexapi/sdk/models/operations/GetAvailableClientsRequestBuilder.java - src/main/java/dev/plexapi/sdk/models/operations/GetAvailableClientsResponse.java @@ -1547,6 +1512,42 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsType.java - src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsUltraBlurColors.java - src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsWriter.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllActiveDirection.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCollection.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCountry.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDefaultDirection.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDirector.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllField.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFieldType.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFilter.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGenre.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGuids.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllHasThumbnail.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllImage.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryResponseType.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryType.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMedia.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMediaContainer.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMeta.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMetadata.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOperator.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllPart.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamType.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequest.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequestBuilder.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponse.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponseBody.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRole.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllSort.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStream.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStreamType.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllType.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllUltraBlurColors.java + - src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllWriter.java - src/main/java/dev/plexapi/sdk/models/operations/GetMediaArtsMediaContainer.java - src/main/java/dev/plexapi/sdk/models/operations/GetMediaArtsMetadata.java - src/main/java/dev/plexapi/sdk/models/operations/GetMediaArtsRequest.java @@ -1798,6 +1799,7 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentGuids.java - src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentMediaContainer.java - src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentMetadata.java + - src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamIncludeGuids.java - src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamType.java - src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequest.java - src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequestBuilder.java @@ -2049,36 +2051,36 @@ examples: "200": application/json: {} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getServerPreferences: speakeasy-default-get-server-preferences: responses: "200": - application/json: {"MediaContainer": {"size": 161, "Setting": [{"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}, {"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}, {"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}]}} + application/json: {"MediaContainer": {"size": 161, "Setting": [{"id": "EnableDatabaseTrace", "label": "", "summary": "", "type": "bool", "default": false, "value": false, "hidden": true, "advanced": false, "group": "", "enumValues": "1:admin only|2:everyone"}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getAvailableClients: speakeasy-default-get-available-clients: responses: "200": - application/json: {"MediaContainer": {"size": 1, "Server": [{"name": "iPad", "host": "10.10.10.102", "address": "10.10.10.102", "port": 32500, "machineIdentifier": "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05", "version": "8.17", "protocol": "plex", "product": "Plex for iOS", "deviceClass": "tablet", "protocolVersion": 2, "protocolCapabilities": "playback,playqueues,timeline,provider-playback"}, {"name": "iPad", "host": "10.10.10.102", "address": "10.10.10.102", "port": 32500, "machineIdentifier": "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05", "version": "8.17", "protocol": "plex", "product": "Plex for iOS", "deviceClass": "tablet", "protocolVersion": 2, "protocolCapabilities": "playback,playqueues,timeline,provider-playback"}, {"name": "iPad", "host": "10.10.10.102", "address": "10.10.10.102", "port": 32500, "machineIdentifier": "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05", "version": "8.17", "protocol": "plex", "product": "Plex for iOS", "deviceClass": "tablet", "protocolVersion": 2, "protocolCapabilities": "playback,playqueues,timeline,provider-playback"}]}} + application/json: {"MediaContainer": {"size": 1, "Server": [{"name": "iPad", "host": "10.10.10.102", "address": "10.10.10.102", "port": 32500, "machineIdentifier": "A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05", "version": "8.17", "protocol": "plex", "product": "Plex for iOS", "deviceClass": "tablet", "protocolVersion": 2, "protocolCapabilities": "playback,playqueues,timeline,provider-playback"}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getDevices: speakeasy-default-get-devices: responses: "200": - application/json: {"MediaContainer": {"size": 151, "identifier": "com.plexapp.system.devices", "Device": [{"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}, {"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}, {"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}]}} + application/json: {"MediaContainer": {"size": 151, "identifier": "com.plexapp.system.devices", "Device": [{"id": 1, "name": "iPhone", "platform": "iOS", "createdAt": 1654131230}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-server-identity: speakeasy-default-get-server-identity: responses: @@ -2092,9 +2094,9 @@ examples: "200": application/json: {"MyPlex": {"authToken": "Z5v-PrNASDFpsaCi3CPK7", "username": "example.email@mail.com", "mappingState": "mapped", "signInState": "ok", "publicAddress": "140.20.68.140", "publicPort": 32400, "privateAddress": "10.10.10.47", "privatePort": 32400, "subscriptionFeatures": "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", "subscriptionState": "Active"}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getResizedPhoto: speakeasy-default-get-resized-photo: parameters: @@ -2103,12 +2105,12 @@ examples: height: 165 opacity: 100 blur: 0 - minSize: 1 - upscale: 1 + minSize: 0 + upscale: 0 url: "/library/metadata/49564/thumb/1654258204" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-media-providers: @@ -2118,7 +2120,7 @@ examples: X-Plex-Token: "CV5xoxjTpFKUzBTShsaf" responses: "200": - application/json: {"MediaContainer": {"MediaProvider": [{"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}, {"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}, {"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}, {"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}, {"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}]}} + application/json: {"MediaContainer": {"MediaProvider": [{"Feature": [{"type": "", "flavor": "global", "scrobbleKey": "/:/scrobble/new", "unscrobbleKey": "/:/unscrobble/new", "Action": [{"id": "addToContinueWatching", "key": "/actions/addToContinueWatching"}]}]}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": @@ -2127,11 +2129,11 @@ examples: speakeasy-default-get-server-list: responses: "200": - application/json: {"MediaContainer": {"size": 1, "Server": [{"name": "Hera", "host": "10.10.10.47", "address": "10.10.10.47", "port": 32400, "machineIdentifier": "96f2fe7a78c9dc1f16a16bedbe90f98149be16b4", "version": "1.31.3.6868-28fc46b27"}, {"name": "Hera", "host": "10.10.10.47", "address": "10.10.10.47", "port": 32400, "machineIdentifier": "96f2fe7a78c9dc1f16a16bedbe90f98149be16b4", "version": "1.31.3.6868-28fc46b27"}, {"name": "Hera", "host": "10.10.10.47", "address": "10.10.10.47", "port": 32400, "machineIdentifier": "96f2fe7a78c9dc1f16a16bedbe90f98149be16b4", "version": "1.31.3.6868-28fc46b27"}]}} + application/json: {"MediaContainer": {"size": 1, "Server": [{"name": "Hera", "host": "10.10.10.47", "address": "10.10.10.47", "port": 32400, "machineIdentifier": "96f2fe7a78c9dc1f16a16bedbe90f98149be16b4", "version": "1.31.3.6868-28fc46b27"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} markPlayed: speakeasy-default-mark-played: parameters: @@ -2141,7 +2143,7 @@ examples: "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} markUnplayed: speakeasy-default-mark-unplayed: parameters: @@ -2149,9 +2151,9 @@ examples: key: 59398 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} updatePlayProgress: "": parameters: @@ -2161,9 +2163,9 @@ examples: state: "played" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-banner-image: speakeasy-default-get-banner-image: parameters: @@ -2180,9 +2182,9 @@ examples: "200": image/jpeg: "x-file: example.file" "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-thumb-image: speakeasy-default-get-thumb-image: parameters: @@ -2220,7 +2222,7 @@ examples: "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} startUniversalTranscode: "": parameters: @@ -2243,9 +2245,9 @@ examples: autoAdjustQuality: 0 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getServerActivities: speakeasy-default-get-server-activities: responses: @@ -2262,68 +2264,68 @@ examples: activityUUID: "25b71ed5-0f9d-461c-baa7-d404e9e10d3e" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getButlerTasks: speakeasy-default-get-butler-tasks: responses: "200": - application/json: {"ButlerTasks": {"ButlerTask": [{"name": "BackupDatabase", "interval": 3, "title": "Backup Database", "description": "Create a backup copy of the server's database in the configured backup directory"}, {"name": "BackupDatabase", "interval": 3, "title": "Backup Database", "description": "Create a backup copy of the server's database in the configured backup directory"}]}} + application/json: {"ButlerTasks": {"ButlerTask": [{"name": "BackupDatabase", "interval": 3, "title": "Backup Database", "description": "Create a backup copy of the server's database in the configured backup directory"}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} startAllTasks: speakeasy-default-start-all-tasks: responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} stopAllTasks: speakeasy-default-stop-all-tasks: responses: "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} startTask: speakeasy-default-start-task: parameters: path: - taskName: "CleanOldBundles" + taskName: "RefreshPeriodicMetadata" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} stopTask: speakeasy-default-stop-task: parameters: path: - taskName: "BackupDatabase" + taskName: "CleanOldCacheFiles" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getCompanionsData: speakeasy-default-get-companions-data: responses: "200": - application/json: [{"identifier": "tv.plex.sonos", "baseURL": "https://sonos.plex.tv", "title": "Sonos", "linkURL": "https://sonos.plex.tv/link", "provides": "client,player", "token": ""}, {"identifier": "tv.plex.sonos", "baseURL": "https://sonos.plex.tv", "title": "Sonos", "linkURL": "https://sonos.plex.tv/link", "provides": "client,player", "token": ""}] + application/json: [{"identifier": "tv.plex.sonos", "baseURL": "https://sonos.plex.tv", "title": "Sonos", "linkURL": "https://sonos.plex.tv/link", "provides": "client,player", "token": ""}] "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getUserFriends: speakeasy-default-get-user-friends: responses: "200": application/json: [{"email": "username@email.com", "friendlyName": "exampleUser", "home": true, "id": 0, "restricted": false, "sharedServers": [], "sharedSources": [], "status": "accepted", "thumb": "https://plex.tv/users/7d1916e0d8f6e76b/avatar?c=1694481578", "title": "username123", "username": "username123", "uuid": "7d1916e0d8f6e76b"}] "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getGeoData: @@ -2332,9 +2334,9 @@ examples: "200": application/json: {"code": "VI", "continent_code": "NA", "country": "United States Virgin Islands", "city": "Amsterdam", "european_union_member": true, "time_zone": "America/St_Thomas", "postal_code": "802", "in_privacy_restricted_country": true, "in_privacy_restricted_region": true, "subdivisions": "Saint Thomas", "coordinates": "18.3381, -64.8941"} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getHomeData: speakeasy-default-get-home-data: responses: @@ -2355,11 +2357,11 @@ examples: X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58" responses: "200": - application/json: [{"name": "", "product": "Luxurious Frozen Bike", "productVersion": "", "platform": "", "platformVersion": "", "device": "Mobile", "clientIdentifier": "", "createdAt": "2019-06-24T11:38:02Z", "lastSeenAt": "2019-06-24T11:38:02Z", "provides": "", "ownerId": 575734, "sourceTitle": "", "publicAddress": "", "accessToken": "", "owned": false, "home": false, "synced": false, "relay": true, "presence": false, "httpsRequired": false, "publicAddressMatches": true, "dnsRebindingProtection": true, "natLoopbackSupported": true, "connections": []}] + application/json: [{"name": "", "product": "Ergonomic Plastic Hat", "productVersion": "", "platform": "", "platformVersion": "", "device": "Mobile", "clientIdentifier": "", "createdAt": "2019-06-24T11:38:02Z", "lastSeenAt": "2019-06-24T11:38:02Z", "provides": "", "ownerId": null, "sourceTitle": "", "publicAddress": "", "accessToken": "", "owned": true, "home": false, "synced": false, "relay": true, "presence": false, "httpsRequired": true, "publicAddressMatches": false, "dnsRebindingProtection": true, "natLoopbackSupported": false, "connections": [{"protocol": "http", "address": "5746 Mount Street", "port": 441996, "uri": "https://wide-kick.name/", "local": false, "relay": true, "IPv6": true}]}] "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getPin: "": parameters: @@ -2375,12 +2377,12 @@ examples: "201": application/json: {"id": 308667304, "code": "7RQZ", "product": "0", "trusted": false, "qr": "https://plex.tv/api/v2/pins/qr/7RQZ", "clientIdentifier": "string", "location": {"code": "VI", "continent_code": "NA", "country": "United States Virgin Islands", "city": "Amsterdam", "european_union_member": true, "time_zone": "America/St_Thomas", "postal_code": "802", "in_privacy_restricted_country": true, "in_privacy_restricted_region": true, "subdivisions": "Saint Thomas", "coordinates": "18.3381, -64.8941"}, "expiresIn": 876, "createdAt": "2024-07-16T17:03:05Z", "expiresAt": "2024-07-16T17:18:05Z", "authToken": null, "newRegistration": null} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} getTokenByPinId: "": parameters: path: - pinID: 408895 + pinID: 232248 header: X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58" X-Plex-Product: "Plex for Roku" @@ -2394,16 +2396,16 @@ examples: speakeasy-default-get-global-hubs: responses: "200": - application/json: {"MediaContainer": {"size": 8, "allowSync": true, "identifier": "com.plexapp.plugins.library", "Hub": [{"hubKey": "/library/metadata/50768,65523,58188,57341,57302,57070", "key": "/playlists/all?type=15&sort=lastViewedAt:desc&playlistType=video,audio", "title": "Recent Playlists", "type": "playlist", "hubIdentifier": "home.playlists", "context": "hub.home.playlists", "size": 6, "more": true, "style": "shelf", "promoted": true, "Metadata": [{"ratingKey": "57070", "key": "/playlists/57070/items", "guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c", "type": "playlist", "title": "November Movie Day", "titleSort": "Tracks", "summary": "", "smart": false, "playlistType": "video", "composite": "/playlists/57070/composite/1668787730", "icon": "playlist://image.smart", "viewCount": 2, "lastViewedAt": 1668787732, "duration": 16873000, "leafCount": 3, "addedAt": 1668779618, "updatedAt": 1668787730}, {"ratingKey": "57070", "key": "/playlists/57070/items", "guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c", "type": "playlist", "title": "November Movie Day", "titleSort": "Tracks", "summary": "", "smart": false, "playlistType": "video", "composite": "/playlists/57070/composite/1668787730", "icon": "playlist://image.smart", "viewCount": 2, "lastViewedAt": 1668787732, "duration": 16873000, "leafCount": 3, "addedAt": 1668779618, "updatedAt": 1668787730}, {"ratingKey": "57070", "key": "/playlists/57070/items", "guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c", "type": "playlist", "title": "November Movie Day", "titleSort": "Tracks", "summary": "", "smart": false, "playlistType": "video", "composite": "/playlists/57070/composite/1668787730", "icon": "playlist://image.smart", "viewCount": 2, "lastViewedAt": 1668787732, "duration": 16873000, "leafCount": 3, "addedAt": 1668779618, "updatedAt": 1668787730}]}]}} + application/json: {"MediaContainer": {"size": 8, "allowSync": true, "identifier": "com.plexapp.plugins.library", "Hub": [{"hubKey": "/library/metadata/50768,65523,58188,57341,57302,57070", "key": "/playlists/all?type=15&sort=lastViewedAt:desc&playlistType=video,audio", "title": "Recent Playlists", "type": "playlist", "hubIdentifier": "home.playlists", "context": "hub.home.playlists", "size": 6, "more": true, "style": "shelf", "promoted": true, "Metadata": [{"ratingKey": "57070", "key": "/playlists/57070/items", "guid": "com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c", "type": "playlist", "title": "November Movie Day", "titleSort": "Tracks", "summary": "", "smart": false, "playlistType": "video", "composite": "/playlists/57070/composite/1668787730", "icon": "playlist://image.smart", "viewCount": 2, "lastViewedAt": 1668787732, "duration": 16873000, "leafCount": 3, "addedAt": 1668779618, "updatedAt": 1668787730}]}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-recently-added: speakeasy-default-get-recently-added: parameters: query: - contentDirectoryID: 470161 + contentDirectoryID: 39486 sectionID: 2 type: 2 includeMeta: 1 @@ -2411,31 +2413,30 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "identifier": "com.plexapp.plugins.library", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}, {"type": "tag", "Operator": []}, {"type": "tag", "Operator": []}]}, "Metadata": [{"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}, {"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}, {"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}, {"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}, {"path": "/TV Shows/Clarkson's Farm"}, {"path": "/TV Shows/Clarkson's Farm"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}]}} + application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "identifier": "com.plexapp.plugins.library", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}]}, "Metadata": [{"addedAt": 1556281940, "art": "/library/metadata/58683/art/1703239236", "audienceRatingImage": "rottentomatoes://image.rating.upright", "audienceRating": 9.2, "chapterSource": "media", "childCount": 1, "contentRating": "PG-13", "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "duration": 11558112, "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentRatingKey": "66", "grandparentSlug": "alice-in-borderland-2020", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTitle": "Caprica", "guid": "plex://movie/5d7768ba96b655001fdc0408", "index": 1, "key": "/library/metadata/58683", "lastRatedAt": 1721813113, "lastViewedAt": 1682752242, "leafCount": 14, "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "librarySectionTitle": "Movies", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "originallyAvailableAt": "2022-12-14", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentIndex": 1, "parentKey": "/library/metadata/66", "parentRatingKey": "66", "parentSlug": "alice-in-borderland-2020", "parentStudio": "UCP", "parentTheme": "/library/metadata/66/theme/1705716261", "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTitle": "Caprica", "parentYear": 2010, "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "ratingKey": "58683", "rating": 7.6, "seasonCount": 2022, "skipCount": 1, "slug": "4-for-texas", "studio": "20th Century Studios", "subtype": "clip", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "tagline": "Return to Pandora.", "theme": "/library/metadata/1/theme/1705636920", "thumb": "/library/metadata/58683/thumb/1703239236", "titleSort": "Whale", "title": "Avatar: The Way of Water", "type": "movie", "updatedAt": 1556281940, "userRating": 10, "viewCount": 1, "viewOffset": 5222500, "viewedLeafCount": 0, "year": 2022, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Guid": [{"id": "{\"imdbExample\":{\"summary\":\"IMDB example\",\"value\":\"imdb://tt13015952\"},\"tmdbExample\":{\"summary\":\"TMDB example\",\"value\":\"tmdb://2434012\"},\"tvdbExample\":{\"summary\":\"TVDB example\",\"value\":\"tvdb://7945991\"}}"}], "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "filter": "genre=19", "tag": "Crime"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "filter": "director=235876", "tag": "Danny Boyle", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "filter": "writer=126522", "tag": "Jamie P. Hanson", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Role": [{"id": 126522, "filter": "actor=126522", "tag": "Teller", "tagKey": "5d77683d85719b001f3a535e", "role": "Self - Judge", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Producer": [{"id": 126522, "filter": "producer=126522", "tag": "Amelia Knapp", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 5.1, "type": "audience"}], "Similar": [{"id": 259, "filter": "similar=259", "tag": "Criss Angel Mindfreak"}], "Location": [{"path": "/TV Shows/Clarkson's Farm"}], "Collection": [{"tag": "My Awesome Collection"}]}]}} getLibraryHubs: speakeasy-default-get-library-hubs: parameters: path: - sectionId: 6728.76 - query: {} + sectionId: 492.74 responses: "200": - application/json: {"MediaContainer": {"size": 7, "allowSync": true, "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "Hub": [{"key": "/library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0", "title": "Recently Played Movies", "type": "movie", "hubIdentifier": "movie.recentlyviewed.1", "context": "hub.movie.recentlyviewed", "size": 6, "more": true, "style": "shelf", "hubKey": "/library/metadata/66485,66098,57249,11449,5858,14944", "Metadata": [{"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}, {"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}, {"tag": "Animation"}, {"tag": "Animation"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}, {"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}, {"tag": "Animation"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}, {"tag": "Donna Murphy"}, {"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}, {"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}, {"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}, {"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}, {"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}], "promoted": true, "random": true}]}} + application/json: {"MediaContainer": {"size": 7, "allowSync": true, "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "Hub": [{"key": "/library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0", "title": "Recently Played Movies", "type": "movie", "hubIdentifier": "movie.recentlyviewed.1", "context": "hub.movie.recentlyviewed", "size": 6, "more": true, "style": "shelf", "hubKey": "/library/metadata/66485,66098,57249,11449,5858,14944", "Metadata": [{"ratingKey": "14944", "key": "/library/metadata/14944", "guid": "plex://movie/5d77686eeb5d26001f1eb339", "studio": "Walt Disney Animation Studios", "type": "movie", "title": "Tangled", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG", "summary": "The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.", "rating": 8.9, "audienceRating": 8.7, "viewCount": 1, "lastViewedAt": 1704936047, "year": 2010, "tagline": "They're taking adventure to new lengths.", "thumb": "/library/metadata/14944/thumb/1705739847", "art": "/library/metadata/14944/art/1705739847", "duration": 6017237, "originallyAvailableAt": "2010-11-24T00:00:00Z", "addedAt": 1589412494, "updatedAt": 1705739847, "audienceRatingImage": "rottentomatoes://image.rating.upright", "primaryExtraKey": "/library/metadata/14952", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 38247, "duration": 6017237, "bitrate": 2051, "width": 1920, "height": 1080, "aspectRatio": 1.78, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 1, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 38247, "key": "/library/parts/38247/1589412494/file.mp4", "duration": 6017237, "file": "/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4", "size": 1545647447, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": true, "videoProfile": "high"}]}], "Genre": [{"tag": "Animation"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "Nathan Greno"}], "Role": [{"tag": "Donna Murphy"}], "Writer": [{"tag": "Wilhelm Grimm"}], "skipCount": 1, "chapterSource": "media"}], "promoted": true, "random": true}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} performSearch: speakeasy-default-perform-search: parameters: query: - query: "dylan" + query: "arnold" limit: 5 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} performVoiceSearch: speakeasy-default-perform-voice-search: parameters: @@ -2444,9 +2445,9 @@ examples: limit: 5 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getSearchResults: speakeasy-default-get-search-results: parameters: @@ -2454,11 +2455,11 @@ examples: query: "110" responses: "200": - application/json: {"MediaContainer": {"size": 26, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "sourceTitle": "Hera", "ratingKey": 10398, "key": "/library/metadata/10398", "guid": "plex://movie/5d7768284de0ee001fcc8f52", "studio": "Paramount", "type": "movie", "title": "Mission: Impossible", "contentRating": "PG-13", "summary": "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": 6.6, "audienceRating": 7.1, "year": 1996, "tagline": "Expect the impossible.", "thumb": "/library/metadata/10398/thumb/1679505055", "art": "/library/metadata/10398/art/1679505055", "duration": 6612628, "originallyAvailableAt": "1996-05-22T00:00:00Z", "addedAt": 1589234571, "updatedAt": 1679505055, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/10501", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}, {"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}, {"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}, {"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}], "Genre": [{"tag": "Action"}], "Director": [{"tag": "Brian De Palma"}, {"tag": "Brian De Palma"}, {"tag": "Brian De Palma"}], "Writer": [{"tag": "David Koepp"}, {"tag": "David Koepp"}, {"tag": "David Koepp"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Role": [{"tag": "Tom Cruise"}]}], "Provider": [{"key": "/system/search", "title": "Local Network", "type": "mixed"}, {"key": "/system/search", "title": "Local Network", "type": "mixed"}, {"key": "/system/search", "title": "Local Network", "type": "mixed"}]}} + application/json: {"MediaContainer": {"size": 26, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "sourceTitle": "Hera", "ratingKey": 10398, "key": "/library/metadata/10398", "guid": "plex://movie/5d7768284de0ee001fcc8f52", "studio": "Paramount", "type": "movie", "title": "Mission: Impossible", "contentRating": "PG-13", "summary": "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": 6.6, "audienceRating": 7.1, "year": 1996, "tagline": "Expect the impossible.", "thumb": "/library/metadata/10398/thumb/1679505055", "art": "/library/metadata/10398/art/1679505055", "duration": 6612628, "originallyAvailableAt": "1996-05-22T00:00:00Z", "addedAt": 1589234571, "updatedAt": 1679505055, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/10501", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 26610, "duration": 6612628, "bitrate": 4751, "width": 1916, "height": 796, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "aac", "videoCodec": "hevc", "videoResolution": 1080, "container": "mkv", "videoFrameRate": "24p", "audioProfile": "lc", "videoProfile": "main 10", "Part": [{"id": 26610, "key": "/library/parts/26610/1589234571/file.mkv", "duration": 6612628, "file": "/movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv", "size": 3926903851, "audioProfile": "lc", "container": "mkv", "videoProfile": "main 10"}]}], "Genre": [{"tag": "Action"}], "Director": [{"tag": "Brian De Palma"}], "Writer": [{"tag": "David Koepp"}], "Country": [{"tag": "United States of America"}], "Role": [{"tag": "Tom Cruise"}]}], "Provider": [{"key": "/system/search", "title": "Local Network", "type": "mixed"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getFileHash: speakeasy-default-get-file-hash: parameters: @@ -2466,9 +2467,9 @@ examples: url: "file://C:\\Image.png&type=13" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-recently-added-library: speakeasy-default-get-recently-added-library: parameters: @@ -2482,20 +2483,20 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}], "size": 50, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "ratingKey": 59398, "key": "/library/metadata/59398", "guid": "plex://movie/5e161a83bea6ac004126e148", "studio": "Marvel Studios", "type": "movie", "title": "Ant-Man and the Wasp: Quantumania", "contentRating": "PG-13", "summary": "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": 4.7, "audienceRating": 8.3, "year": 2023, "tagline": "Witness the beginning of a new dynasty.", "thumb": "/library/metadata/59398/thumb/1681888010", "art": "/library/metadata/59398/art/1681888010", "duration": 7474422, "originallyAvailableAt": "2023-02-15T00:00:00Z", "addedAt": 1681803215, "updatedAt": 1681888010, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/59399", "ratingImage": "rottentomatoes://image.rating.rotten", "Media": [{"id": 120345, "duration": 7474422, "bitrate": 3623, "width": 1920, "height": 804, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "ac3", "videoCodec": "h264", "videoResolution": 1080, "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "videoProfile": "high", "Part": [{"id": 120353, "key": "/library/parts/120353/1681803203/file.mp4", "duration": 7474422, "file": "/movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4", "size": 3395307162, "container": "mp4", "hasThumbnail": 1, "videoProfile": "high"}]}], "Genre": [{"tag": "Comedy"}], "Director": [{"tag": "Peyton Reed"}], "Writer": [{"tag": "Jeff Loveness"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Role": [{"tag": "Paul Rudd"}]}]}} + application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}], "size": 50, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1680021154, "Metadata": [{"librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "ratingKey": 59398, "key": "/library/metadata/59398", "guid": "plex://movie/5e161a83bea6ac004126e148", "studio": "Marvel Studios", "type": "movie", "title": "Ant-Man and the Wasp: Quantumania", "contentRating": "PG-13", "summary": "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": 4.7, "audienceRating": 8.3, "year": 2023, "tagline": "Witness the beginning of a new dynasty.", "thumb": "/library/metadata/59398/thumb/1681888010", "art": "/library/metadata/59398/art/1681888010", "duration": 7474422, "originallyAvailableAt": "2023-02-15T00:00:00Z", "addedAt": 1681803215, "updatedAt": 1681888010, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/59399", "ratingImage": "rottentomatoes://image.rating.rotten", "Media": [{"id": 120345, "duration": 7474422, "bitrate": 3623, "width": 1920, "height": 804, "aspectRatio": 2.35, "audioChannels": 6, "audioCodec": "ac3", "videoCodec": "h264", "videoResolution": 1080, "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "videoProfile": "high", "Part": [{"id": 120353, "key": "/library/parts/120353/1681803203/file.mp4", "duration": 7474422, "file": "/movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4", "size": 3395307162, "container": "mp4", "hasThumbnail": 1, "videoProfile": "high"}]}], "Genre": [{"tag": "Comedy"}], "Director": [{"tag": "Peyton Reed"}], "Writer": [{"tag": "Jeff Loveness"}], "Country": [{"tag": "United States of America"}], "Role": [{"tag": "Paul Rudd"}]}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-all-libraries: speakeasy-default-get-all-libraries: responses: "200": - application/json: {"MediaContainer": {"size": 50, "allowSync": false, "title1": "TV Series", "Directory": [{"allowSync": false, "art": "/:/resources/show-fanart.jpg", "composite": "/library/sections/1/composite/1743824484", "filters": true, "refreshing": true, "thumb": "/:/resources/show.png", "key": "1", "type": "movie", "title": "Movies", "agent": "tv.plex.agents.movie", "scanner": "Plex Movie", "language": "en-US", "uuid": "e69655a2-ef48-4aba-bb19-01e7d3cc34d6", "updatedAt": 1556281940, "createdAt": 1556281940, "scannedAt": 1556281940, "content": true, "directory": true, "contentChangedAt": 9173960, "hidden": 1, "Location": [{"id": 1, "path": "/Movies"}, {"id": 1, "path": "/Movies"}]}, {"allowSync": false, "art": "/:/resources/show-fanart.jpg", "composite": "/library/sections/1/composite/1743824484", "filters": true, "refreshing": true, "thumb": "/:/resources/show.png", "key": "1", "type": "movie", "title": "Movies", "agent": "tv.plex.agents.movie", "scanner": "Plex Movie", "language": "en-US", "uuid": "e69655a2-ef48-4aba-bb19-01e7d3cc34d6", "updatedAt": 1556281940, "createdAt": 1556281940, "scannedAt": 1556281940, "content": true, "directory": true, "contentChangedAt": 9173960, "hidden": 1, "Location": [{"id": 1, "path": "/Movies"}, {"id": 1, "path": "/Movies"}]}]}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "title1": "TV Series", "Directory": [{"allowSync": false, "art": "/:/resources/show-fanart.jpg", "composite": "/library/sections/1/composite/1743824484", "filters": true, "refreshing": true, "thumb": "/:/resources/show.png", "key": "1", "type": "movie", "title": "Movies", "agent": "tv.plex.agents.movie", "scanner": "Plex Movie", "language": "en-US", "uuid": "e69655a2-ef48-4aba-bb19-01e7d3cc34d6", "updatedAt": 1556281940, "createdAt": 1556281940, "scannedAt": 1556281940, "content": true, "directory": true, "contentChangedAt": 9173960, "hidden": 1, "Location": [{"id": 1, "path": "/Movies"}]}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-library-details: speakeasy-default-get-library-details: parameters: @@ -2505,9 +2506,9 @@ examples: includeDetails: 0 responses: "200": - application/json: {"MediaContainer": {"size": 29, "allowSync": false, "art": "/:/resources/movie-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "viewGroup": "secondary", "viewMode": 65592, "Directory": [{"key": "search?type=1", "title": "Search...", "secondary": true, "prompt": "Search Movies", "search": true}], "Type": [{"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}, {"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}, {"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}, {"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}, {"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}], "FieldType": [{"type": "resolution", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "resolution", "Operator": [{"key": "=", "title": "is"}]}]}} + application/json: {"MediaContainer": {"size": 29, "allowSync": false, "art": "/:/resources/movie-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "viewGroup": "secondary", "viewMode": 65592, "Directory": [{"key": "search?type=1", "title": "Search...", "secondary": true, "prompt": "Search Movies", "search": true}], "Type": [{"key": "/library/sections/1/all?type=1", "type": "movie", "title": "Movies", "active": false, "Filter": [{"filter": "label", "filterType": "string", "key": "/library/sections/1/label", "title": "Labels", "type": "filter"}], "Sort": [{"default": "asc", "defaultDirection": "desc", "descKey": "random:desc", "firstCharacterKey": "/library/sections/1/firstCharacter", "key": "random", "title": "Randomly"}], "Field": [{"key": "label", "title": "Label", "type": "tag", "subType": "bitrate"}]}], "FieldType": [{"type": "resolution", "Operator": [{"key": "=", "title": "is"}]}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} deleteLibrary: @@ -2517,14 +2518,14 @@ examples: sectionKey: 9518 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-library-items: speakeasy-default-get-library-items: parameters: path: - tag: "edition" + tag: "newest" sectionKey: 9518 query: includeGuids: 1 @@ -2534,13 +2535,13 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}, {"type": "tag", "Operator": []}], "size": 70, "totalSize": 170, "offset": 0, "content": "secondary", "allowSync": true, "nocache": true, "art": "/:/resources/movie-fanart.jpg", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "title2": "Recently Released", "viewGroup": "movie", "viewMode": 65592, "mixedParents": true, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": []}], "Genre": [{"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}], "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}]}]}}} + application/json: {"MediaContainer": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": [{"key": "=", "title": "is"}]}], "size": 70, "totalSize": 170, "offset": 0, "content": "secondary", "allowSync": true, "nocache": true, "art": "/:/resources/movie-fanart.jpg", "identifier": "com.plexapp.plugins.library", "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionUUID": "322a231a-b7f7-49f5-920f-14c61199cd30", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "thumb": "/:/resources/movie.png", "title1": "Movies", "title2": "Recently Released", "viewGroup": "movie", "viewMode": 65592, "mixedParents": true, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 1, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}], "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} - get-all-media-library: - speakeasy-default-get-all-media-library: + get-library-sections-all: + speakeasy-default-get-library-sections-all: parameters: path: sectionKey: 9518 @@ -2555,11 +2556,11 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "thumb": "/:/resources/show.png", "nocache": true, "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}, {"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "Crime"}, {"tag": "Crime"}, {"tag": "Crime"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}, {"tag": "Danny Boyle"}], "Writer": [{"tag": "Jamie P. Hanson"}, {"tag": "Jamie P. Hanson"}], "Role": [{"tag": "Teller"}], "Guid": [{"id": "tvdb://2337"}], "Collection": [{"tag": "My Awesome Collection"}, {"tag": "My Awesome Collection"}]}]}} + application/json: {"MediaContainer": {"size": 50, "totalSize": 50, "offset": 0, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "thumb": "/:/resources/show.png", "nocache": true, "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "Meta": {"Type": [{"key": "/library/sections/2/all?type=2", "type": "filter", "subtype": "clip", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter", "advanced": true}], "Sort": [{"default": "asc", "active": false, "activeDirection": "asc", "defaultDirection": "asc", "descKey": "titleSort:desc", "firstCharacterKey": "/library/sections/2/firstCharacter", "key": "titleSort", "title": "Title"}], "Field": [{"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}], "FieldType": [{"type": "tag", "Operator": []}]}, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Guid": [{"id": "{\"imdbExample\":{\"summary\":\"IMDB example\",\"value\":\"imdb://tt13015952\"},\"tmdbExample\":{\"summary\":\"TMDB example\",\"value\":\"tmdb://2434012\"},\"tvdbExample\":{\"summary\":\"TVDB example\",\"value\":\"tvdb://7945991\"}}"}], "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"tag": "Crime"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "Danny Boyle"}], "Writer": [{"tag": "Jamie P. Hanson"}], "Role": [{"tag": "Teller"}], "Collection": [{"tag": "My Awesome Collection"}]}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-refresh-library-metadata: speakeasy-default-get-refresh-library-metadata: parameters: @@ -2569,9 +2570,9 @@ examples: force: 0 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-search-library: speakeasy-default-get-search-library: parameters: @@ -2583,9 +2584,9 @@ examples: "200": application/json: {"MediaContainer": {"size": 2, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1698860922, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Shows", "title2": "Search for ''", "viewGroup": "season", "viewMode": 65593, "Metadata": [{"ratingKey": "2", "key": "/library/metadata/2/children", "parentRatingKey": "1", "guid": "plex://season/602e67e766dfdb002c0a1b5b", "parentGuid": "plex://show/5d9c086c7d06d9001ffd27aa", "parentStudio": "Mutant Enemy Productions", "type": "season", "title": "Season 1", "parentKey": "/library/metadata/1", "parentTitle": "Firefly", "summary": "Captain Malcolm 'Mal' Reynolds is a former galactic war veteran who is the captain of the transport ship \"Serenity\". Mal and his crew, ensign Zoe Alleyne Washburne; Zoe's husband, pilot Hoban 'Wash' Washburne; muscular mercenary Jayne Cobb; young mechanic Kaylee Frye; former Alliance medical officer Simon Tam; his disturbed teenage sister River (both on the run from the interplanetary government \"The Alliance\"); the beautiful courtesan Inara Serra; and preacher Shepherd Book do any jobs, legal or illegal, they can find as the Serenity crew travels across the outskirts of outer space.", "index": 1, "parentIndex": 1, "parentYear": 2002, "thumb": "/library/metadata/2/thumb/1705636920", "art": "/library/metadata/1/art/1705636920", "parentThumb": "/library/metadata/1/thumb/1705636920", "parentTheme": "/library/metadata/1/theme/1705636920", "addedAt": 1705636916, "updatedAt": 1705636920}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-genres-library: speakeasy-default-get-genres-library: parameters: @@ -2599,7 +2600,7 @@ examples: "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-countries-library: speakeasy-default-get-countries-library: parameters: @@ -2611,9 +2612,9 @@ examples: "200": application/json: {"MediaContainer": {"size": 50, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "Directory": [{"fastKey": "/library/sections/2/all?country=15491", "key": "15491", "title": "Japan"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-actors-library: speakeasy-default-get-actors-library: parameters: @@ -2623,11 +2624,11 @@ examples: type: 2 responses: "200": - application/json: {"MediaContainer": {"size": 50, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "viewMode": "131131", "Directory": [{"fastKey": "/library/sections/2/all?actor=134671", "thumb": "https://metadata-static.plex.tv/e/people/e2a915b537ef720252b6d408bc1f91b3.jpg", "key": "134671", "title": "Aaron Paul"}, {"fastKey": "/library/sections/2/all?actor=134671", "thumb": "https://metadata-static.plex.tv/e/people/e2a915b537ef720252b6d408bc1f91b3.jpg", "key": "134671", "title": "Aaron Paul"}]}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "art": "/:/resources/show-fanart.jpg", "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Starring Actor", "viewGroup": "secondary", "viewMode": "131131", "Directory": [{"fastKey": "/library/sections/2/all?actor=134671", "thumb": "https://metadata-static.plex.tv/e/people/e2a915b537ef720252b6d408bc1f91b3.jpg", "key": "134671", "title": "Aaron Paul"}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-search-all-libraries: "": parameters: @@ -2640,16 +2641,16 @@ examples: X-Plex-Client-Identifier: "3381b62b-9ab7-4e37-827b-203e9809eb58" responses: "200": - application/json: {"MediaContainer": {"size": 9266.91, "SearchResult": [{"score": 2698.71, "Metadata": {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}, {"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}}, {"score": 8744.37, "Metadata": {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": []}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}}, {"score": 6729.16, "Metadata": {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "studio": "20th Century Studios", "skipChildren": false, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "type": "movie", "title": "Avatar: The Way of Water", "slug": "4-for-texas", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "seasonCount": 2022, "tagline": "Return to Pandora.", "flattenSeasons": "1", "episodeSort": "0", "enableCreditsMarkerGeneration": "-1", "showOrdering": "absolute", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "banner": "/library/metadata/58683/banner/1703239236", "duration": 11558112, "originallyAvailableAt": "2022-12-14T00:00:00Z", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "ratingImage": "rottentomatoes://image.rating.ripe", "grandparentRatingKey": "66", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "parentSlug": "alice-in-borderland-2020", "grandparentSlug": "alice-in-borderland-2020", "grandparentArt": "/library/metadata/66/art/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "Media": [{"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}, {"id": 119534, "duration": 11558112, "bitrate": 25025, "width": 3840, "height": 2072, "aspectRatio": 1.85, "audioProfile": "dts", "audioChannels": 6, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "optimizedForStreaming": 0, "has64bitOffsets": false, "Part": [{"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}, {"id": 119542, "key": "/library/parts/119542/1680457526/file.mkv", "duration": 11558112, "file": "/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv", "size": 36158371307, "container": "mkv", "audioProfile": "dts", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "0", "Stream": [{"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}, {"id": 272796, "streamType": 1, "default": true, "selected": true, "codec": "h264", "index": 0, "bitrate": 6273, "colorPrimaries": "bt709", "colorRange": "tv", "colorSpace": "bt709", "colorTrc": "bt709", "bitDepth": 8, "chromaLocation": "left", "streamIdentifier": "2", "chromaSubsampling": "4:2:0", "codedHeight": 1088, "codedWidth": 1920, "frameRate": 29.97, "hasScalingMatrix": false, "hearingImpaired": false, "closedCaptions": false, "embeddedInVideo": "1", "height": 1080, "level": 40, "profile": "main", "refFrames": 4, "scanType": "progressive", "width": 1920, "displayTitle": "1080p (H.264)", "extendedDisplayTitle": "1080p (H.264)", "channels": 2, "language": "English", "languageTag": "en", "languageCode": "eng", "audioChannelLayout": "stereo", "samplingRate": 48000, "title": "English", "canAutoSync": false}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}, {"tag": "James Cameron"}, {"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}, {"tag": "Working NL Subs"}], "Role": [{"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}, {"id": 294129, "filter": "actor=294129", "thumb": "https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg", "tag": "Mike Smith", "tagKey": "668e7e7b22bcad9064350c91", "role": "Self"}], "Location": [{"path": "/TV Shows/House"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [{"image": "themoviedb://image.rating", "value": 3, "type": "audience"}, {"image": "themoviedb://image.rating", "value": 3, "type": "audience"}], "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "titleSort": "Whale", "viewCount": 1, "lastViewedAt": 1682752242, "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "viewOffset": 5222500, "skipCount": 1, "index": 1, "theme": "/library/metadata/1/theme/1705636920", "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "parentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "parentStudio": "UCP", "parentKey": "/library/metadata/66", "parentTitle": "Caprica", "parentIndex": 1, "parentYear": 2010, "parentThumb": "/library/metadata/66/thumb/1705716261", "parentTheme": "/library/metadata/66/theme/1705716261"}}]}} + application/json: {"MediaContainer": {"size": 5709.89, "SearchResult": []}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-media-meta-data: speakeasy-default-get-media-meta-data: parameters: path: - ratingKey: 9518 + ratingKey: "21119,21617" query: includeConcerts: true includeExtras: true @@ -2666,11 +2667,11 @@ examples: asyncRefreshLocalMediaAgent: true responses: "200": - application/json: {"MediaContainer": {"size": 50, "allowSync": false, "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}, {"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}, {"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}, {"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}, {"id": 259, "tag": "Crime", "filter": "genre=19"}, {"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}, {"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}, {"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}, {"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}, {"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}, {"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}, {"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}, {"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}, {"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}, {"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Guid": [{"id": "imdb://tt3032476"}, {"id": "imdb://tt3032476"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}, {"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}, {"path": "/TV Shows/Better Call Saul"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}, {"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}]}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "identifier": "com.plexapp.plugins.library", "librarySectionID": 2, "librarySectionTitle": "TV Series", "librarySectionUUID": "e69655a2-ef48-4aba-bb19-0cc34d1e7d36", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "Metadata": [{"ratingKey": "58683", "key": "/library/metadata/58683", "guid": "plex://movie/5d7768ba96b655001fdc0408", "slug": "4-for-texas", "studio": "20th Century Studios", "type": "movie", "title": "Avatar: The Way of Water", "titleSort": "Whale", "contentRating": "PG-13", "summary": "Jake Sully lives with his newfound family formed on the extrasolar moon Pandora.\nOnce a familiar threat returns to finish what was previously started, Jake must\nwork with Neytiri and the army of the Na'vi race to protect their home.\n", "rating": 7.6, "audienceRating": 9.2, "year": 2022, "tagline": "Return to Pandora.", "thumb": "/library/metadata/58683/thumb/1703239236", "art": "/library/metadata/58683/art/1703239236", "theme": "/library/metadata/1/theme/1705636920", "index": 1, "leafCount": 14, "viewedLeafCount": 0, "childCount": 1, "seasonCount": 2022, "duration": 11558112, "originallyAvailableAt": "2022-12-14", "addedAt": 1556281940, "updatedAt": 1556281940, "audienceRatingImage": "rottentomatoes://image.rating.upright", "chapterSource": "media", "primaryExtraKey": "/library/metadata/58684", "originalTitle": "映画 ブラッククローバー 魔法帝の剣", "parentRatingKey": "66", "grandparentRatingKey": "66", "parentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentGuid": "plex://show/5d9c081b170e24001f2a7be4", "grandparentSlug": "alice-in-borderland-2020", "grandparentKey": "/library/metadata/66", "parentKey": "/library/metadata/66", "grandparentTitle": "Caprica", "grandparentThumb": "/library/metadata/66/thumb/1705716261", "grandparentTheme": "/library/metadata/66/theme/1705716261", "grandparentArt": "/library/metadata/66/art/1705716261", "parentTitle": "Caprica", "parentIndex": 1, "parentThumb": "/library/metadata/66/thumb/1705716261", "ratingImage": "rottentomatoes://image.rating.ripe", "viewCount": 1, "viewOffset": 5222500, "skipCount": 1, "subtype": "clip", "lastRatedAt": 1721813113, "createdAtAccuracy": "epoch,local", "createdAtTZOffset": "0", "lastViewedAt": 1682752242, "userRating": 10, "Image": [{"alt": "Episode 1", "type": "background", "url": "/library/metadata/45521/thumb/1644710589"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "librarySectionID": 1, "librarySectionTitle": "Movies", "librarySectionKey": "/library/sections/1", "Guid": [{"id": "{\"imdbExample\":{\"summary\":\"IMDB example\",\"value\":\"imdb://tt13015952\"},\"tmdbExample\":{\"summary\":\"TMDB example\",\"value\":\"tmdb://2434012\"},\"tvdbExample\":{\"summary\":\"TVDB example\",\"value\":\"tvdb://7945991\"}}"}], "Media": [{"id": 387322, "duration": 9610350, "bitrate": 25512, "width": 3840, "height": 1602, "aspectRatio": 2.35, "audioChannels": 6, "displayOffset": 50, "audioCodec": "eac3", "videoCodec": "hevc", "videoResolution": "4k", "container": "mkv", "videoFrameRate": "24p", "videoProfile": "main 10", "hasVoiceActivity": false, "audioProfile": "dts", "has64bitOffsets": false, "Part": [{"accessible": true, "exists": true, "id": 418385, "key": "/library/parts/418385/1735864239/file.mkv", "indexes": "sd", "duration": 9610350, "file": "/mnt/Movies_1/W/Wicked (2024).mkv", "size": 30649952104, "packetLength": 188, "container": "mkv", "videoProfile": "main 10", "audioProfile": "dts", "has64bitOffsets": false, "hasThumbnail": "1", "Stream": [{"id": 1002625, "streamType": 1, "format": "srt", "default": true, "codec": "hevc", "index": 0, "bitrate": 24743, "language": "English", "languageTag": "en", "languageCode": "eng", "headerCompression": true, "DOVIBLCompatID": 1, "DOVIBLPresent": true, "DOVIELPresent": false, "DOVILevel": 6, "DOVIPresent": true, "DOVIProfile": 8, "DOVIRPUPresent": true, "DOVIVersion": "1.0", "bitDepth": 10, "chromaLocation": "topleft", "chromaSubsampling": "4:2:0", "codedHeight": 1608, "codedWidth": 3840, "closedCaptions": true, "colorPrimaries": "bt2020", "colorRange": "tv", "colorSpace": "bt2020nc", "colorTrc": "smpte2084", "frameRate": 23.976, "key": "/library/streams/216389", "height": 1602, "level": 150, "original": true, "hasScalingMatrix": false, "profile": "main 10", "scanType": "progressive", "embeddedInVideo": "progressive", "refFrames": 1, "width": 3840, "displayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "extendedDisplayTitle": "4K DoVi/HDR10 (HEVC Main 10)", "selected": true, "forced": true, "channels": 6, "audioChannelLayout": "5.1(side)", "samplingRate": 48000, "canAutoSync": false, "hearingImpaired": true, "dub": true, "title": "SDH"}]}]}], "Genre": [{"id": 259, "tag": "Crime", "filter": "genre=19"}], "Country": [{"id": 259, "tag": "United States of America", "filter": "country=19"}], "Director": [{"id": 126522, "tag": "Danny Boyle", "filter": "director=235876", "tagKey": "5d776831151a60001f24d031", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg"}], "Writer": [{"id": 126522, "tag": "Jamie P. Hanson", "filter": "writer=126522", "thumb": "https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg", "tagKey": "5d77683d85719b001f3a535e"}], "Producer": [{"id": 109501, "filter": "actor=109501", "tag": "Bob Odenkirk", "tagKey": "5d77683254f42c001f8c3f69", "role": "Jimmy McGill", "thumb": "https://metadata-static.plex.tv/f/people/f2ca7b474cc984efbdd5c503a096285a.jpg"}], "Role": [{"id": 126522, "tag": "Teller", "role": "Self - Judge", "filter": "actor=126522", "tagKey": "5d77683d85719b001f3a535e", "thumb": "https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg"}], "Rating": [{"image": "imdb://image.rating", "value": 9, "type": "audience"}], "Similar": [{"id": 26, "filter": "similar=26", "tag": "Breaking Bad"}], "Location": [{"path": "/TV Shows/Better Call Saul"}], "Chapter": [{"id": 4, "filter": "thumb=4", "index": 1, "startTimeOffset": 0, "endTimeOffset": 100100, "thumb": "/library/media/46883/chapterImages/1"}], "Marker": [{"id": 306970, "type": "credits", "startTimeOffset": 4176050, "endTimeOffset": 4393389, "final": true, "Attributes": {"id": 306970, "version": 4}}], "Extras": {"size": 1}}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-media-arts: speakeasy-default-get-media-arts: parameters: @@ -2678,7 +2679,7 @@ examples: ratingKey: 16099 responses: "200": - application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}]}} + application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/ixgFmf1X59PUZam2qbAfskx2gQr.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=270&width=480&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FixgFmf1X59PUZam2qbAfskx2gQr%2Ejpg"}]}} post-media-arts: speakeasy-default-post-media-arts: parameters: @@ -2693,7 +2694,7 @@ examples: ratingKey: 16099 responses: "200": - application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": [{"key": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg"}, {"key": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "provider": "tmdb", "ratingKey": "https://image.tmdb.org/t/p/original/hntBJjqbv4m0Iyniqaztv9xaudI.jpg", "selected": true, "thumb": "https://images.plex.tv/photo?height=336&width=225&minSize=1&upscale=1&url=https%3A%2F%2Fimage%2Etmdb%2Eorg%2Ft%2Fp%2Foriginal%2FhntBJjqbv4m0Iyniqaztv9xaudI%2Ejpg"}]}} + application/json: {"MediaContainer": {"size": 50, "mediaTagVersion": 1734362201, "mediaTagPrefix": "/system/bundle/media/flags/", "identifier": "com.plexapp.plugins.library", "Metadata": []}} post-media-poster: speakeasy-default-post-media-poster: parameters: @@ -2705,20 +2706,20 @@ examples: include-stream: parameters: path: - ratingKey: 1539.14 + ratingKey: 2403.67 query: includeElements: "Stream" responses: "200": - application/json: {"MediaContainer": {"size": 3, "allowSync": true, "art": "/library/metadata/30072/art/1705739923", "identifier": "com.plexapp.plugins.library", "key": "30072", "librarySectionID": 2, "librarySectionTitle": "TV Shows", "librarySectionUUID": "4bb2521c-8ba9-459b-aaee-8ab8bc35eabd", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "nocache": true, "parentIndex": 1, "parentTitle": "Reacher", "parentYear": 2022, "summary": "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": "/library/metadata/30072/theme/1705739923", "thumb": "/library/metadata/30072/thumb/1705739923", "title1": "TV Shows", "title2": "Reacher", "viewGroup": "season", "viewMode": 65593, "Directory": [{"leafCount": 16, "thumb": "/library/metadata/30072/thumb/1705739923", "viewedLeafCount": 16, "key": "/library/metadata/30072/allLeaves", "title": "All episodes"}], "Metadata": [{"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}, {"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}]}} + application/json: {"MediaContainer": {"size": 3, "allowSync": true, "art": "/library/metadata/30072/art/1705739923", "identifier": "com.plexapp.plugins.library", "key": "30072", "librarySectionID": 2, "librarySectionTitle": "TV Shows", "librarySectionUUID": "4bb2521c-8ba9-459b-aaee-8ab8bc35eabd", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "nocache": true, "parentIndex": 1, "parentTitle": "Reacher", "parentYear": 2022, "summary": "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": "/library/metadata/30072/theme/1705739923", "thumb": "/library/metadata/30072/thumb/1705739923", "title1": "TV Shows", "title2": "Reacher", "viewGroup": "season", "viewMode": 65593, "Directory": [{"leafCount": 16, "thumb": "/library/metadata/30072/thumb/1705739923", "viewedLeafCount": 16, "key": "/library/metadata/30072/allLeaves", "title": "All episodes"}], "Metadata": [{"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} include-stream-otheritem: parameters: path: - ratingKey: 2900.64 + ratingKey: 5846.06 query: includeElements: "Stream,OtherItem" responses: @@ -2731,34 +2732,34 @@ examples: include-stream-otheritem-anotheritem: parameters: path: - ratingKey: 8466.85 + ratingKey: 8273.28 query: includeElements: "Stream,OtherItem,AnotherItem" responses: "200": - application/json: {"MediaContainer": {"size": 3, "allowSync": true, "art": "/library/metadata/30072/art/1705739923", "identifier": "com.plexapp.plugins.library", "key": "30072", "librarySectionID": 2, "librarySectionTitle": "TV Shows", "librarySectionUUID": "4bb2521c-8ba9-459b-aaee-8ab8bc35eabd", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "nocache": true, "parentIndex": 1, "parentTitle": "Reacher", "parentYear": 2022, "summary": "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": "/library/metadata/30072/theme/1705739923", "thumb": "/library/metadata/30072/thumb/1705739923", "title1": "TV Shows", "title2": "Reacher", "viewGroup": "season", "viewMode": 65593, "Directory": [{"leafCount": 16, "thumb": "/library/metadata/30072/thumb/1705739923", "viewedLeafCount": 16, "key": "/library/metadata/30072/allLeaves", "title": "All episodes"}], "Metadata": [{"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}, {"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}]}} + application/json: {"MediaContainer": {"size": 3, "allowSync": true, "art": "/library/metadata/30072/art/1705739923", "identifier": "com.plexapp.plugins.library", "key": "30072", "librarySectionID": 2, "librarySectionTitle": "TV Shows", "librarySectionUUID": "4bb2521c-8ba9-459b-aaee-8ab8bc35eabd", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1701731894, "nocache": true, "parentIndex": 1, "parentTitle": "Reacher", "parentYear": 2022, "summary": "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": "/library/metadata/30072/theme/1705739923", "thumb": "/library/metadata/30072/thumb/1705739923", "title1": "TV Shows", "title2": "Reacher", "viewGroup": "season", "viewMode": 65593, "Directory": [{"leafCount": 16, "thumb": "/library/metadata/30072/thumb/1705739923", "viewedLeafCount": 16, "key": "/library/metadata/30072/allLeaves", "title": "All episodes"}], "Metadata": [{"ratingKey": "66488", "key": "/library/metadata/66488/children", "parentRatingKey": "30072", "guid": "plex://season/652aea6549508477c34c6000", "parentGuid": "plex://show/5d9c09190aaccd001f8f42f0", "parentStudio": "Amazon Studios", "type": "season", "title": "Season 2", "parentKey": "/library/metadata/30072", "parentTitle": "Reacher", "summary": "Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind-revenge.", "index": 2, "parentIndex": 1, "viewCount": 11, "lastViewedAt": 1705646565, "parentYear": 2022, "thumb": "/library/metadata/66488/thumb/1703065033", "art": "/library/metadata/30072/art/1705739923", "parentThumb": "/library/metadata/30072/thumb/1705739923", "parentTheme": "/library/metadata/30072/theme/1705739923", "leafCount": 8, "viewedLeafCount": 8, "addedAt": 1702602021, "updatedAt": 1703065033, "userRating": 9, "skipCount": 1, "lastRatedAt": 1703881224}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getTopWatchedContent: - "": + speakeasy-default-get-top-watched-content: parameters: query: - includeGuids: 1 type: 2 + includeGuids: 1 responses: "200": - application/json: {"MediaContainer": {"size": 1, "allowSync": true, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1698860922, "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "slug": "waterloo-road", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.", "index": 1, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141417, "originallyAvailableAt": "2005-09-29T00:00:00Z", "leafCount": 222, "viewedLeafCount": 100, "childCount": 13, "addedAt": 1705637164, "updatedAt": 1705637165, "globalViewCount": 80, "audienceRatingImage": "rottentomatoes://image.rating.upright", "Genre": [{"id": 184, "filter": "genre=184", "tag": "Thriller"}], "Country": [{"id": 116, "filter": "country=116", "tag": "United States of America"}, {"id": 116, "filter": "country=116", "tag": "United States of America"}], "Guid": [{"id": "tvdb://2337"}], "Role": [{"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}, {"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}], "User": [{"id": 220}, {"id": 220}, {"id": 220}]}, {"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "slug": "waterloo-road", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.", "index": 1, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141417, "originallyAvailableAt": "2005-09-29T00:00:00Z", "leafCount": 222, "viewedLeafCount": 100, "childCount": 13, "addedAt": 1705637164, "updatedAt": 1705637165, "globalViewCount": 80, "audienceRatingImage": "rottentomatoes://image.rating.upright", "Genre": [{"id": 184, "filter": "genre=184", "tag": "Thriller"}], "Country": [{"id": 116, "filter": "country=116", "tag": "United States of America"}, {"id": 116, "filter": "country=116", "tag": "United States of America"}], "Guid": [{"id": "tvdb://2337"}, {"id": "tvdb://2337"}], "Role": [{"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}], "User": [{"id": 220}, {"id": 220}]}]}} + application/json: {"MediaContainer": {"size": 50, "allowSync": false, "identifier": "com.plexapp.plugins.library", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "slug": "waterloo-road", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.", "index": 1, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141417, "originallyAvailableAt": "2005-09-29T00:00:00Z", "leafCount": 222, "viewedLeafCount": 100, "childCount": 13, "addedAt": 1705637164, "updatedAt": 1705637165, "globalViewCount": 80, "audienceRatingImage": "rottentomatoes://image.rating.upright", "Genre": [{"id": 184, "filter": "genre=184", "tag": "Thriller"}], "Country": [{"id": 116, "filter": "country=116", "tag": "United States of America"}], "Guid": [{"id": "tvdb://2337"}], "Role": [{"id": 220, "filter": "actor=220", "tag": "Dennis Keiffer", "tagKey": "5d77683554f42c001f8c4708", "role": "Bar Guy (uncredited)", "thumb": "https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}], "User": [{"id": 220}]}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-watch-list: speakeasy-default-get-watch-list: parameters: path: - filter: "available" + filter: "released" query: X-Plex-Container-Start: 0 X-Plex-Container-Size: 50 @@ -2768,7 +2769,7 @@ examples: "200": application/json: {} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} logLine: @@ -2780,7 +2781,7 @@ examples: source: "Postman" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} logMultiLine: @@ -2789,124 +2790,123 @@ examples: text/plain: "level=4&message=Test%20message%201&source=postman\nlevel=3&message=Test%20message%202&source=postman\nlevel=1&message=Test%20message%203&source=postman" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} enablePaperTrail: speakeasy-default-enable-paper-trail: responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} createPlaylist: speakeasy-default-create-playlist: parameters: query: title: "" - type: "photo" + type: "audio" smart: 1 - uri: "https://hoarse-testing.info/" + uri: "https://short-term-disconnection.name/" responses: "200": - application/json: {"MediaContainer": {"size": 7, "Metadata": [{"ratingKey": "96", "key": "/playlists/96/items", "guid": "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55", "type": "playlist", "title": "A Great Playlist", "summary": "What a great playlist", "smart": false, "playlistType": "video", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705719589, "leafCount": 1, "addedAt": 1705719589, "updatedAt": 1705724593, "composite": "/playlists/96/composite/1705724593", "duration": 141000}, {"ratingKey": "96", "key": "/playlists/96/items", "guid": "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55", "type": "playlist", "title": "A Great Playlist", "summary": "What a great playlist", "smart": false, "playlistType": "video", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705719589, "leafCount": 1, "addedAt": 1705719589, "updatedAt": 1705724593, "composite": "/playlists/96/composite/1705724593", "duration": 141000}]}} + application/json: {"MediaContainer": {"size": 7, "Metadata": [{"ratingKey": "96", "key": "/playlists/96/items", "guid": "com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55", "type": "playlist", "title": "A Great Playlist", "summary": "What a great playlist", "smart": false, "playlistType": "video", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705719589, "leafCount": 1, "addedAt": 1705719589, "updatedAt": 1705724593, "composite": "/playlists/96/composite/1705724593", "duration": 141000}]}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getPlaylists: speakeasy-default-get-playlists: responses: "200": application/json: {"MediaContainer": {"size": 4, "Metadata": [{"ratingKey": "92", "key": "/playlists/92/items", "guid": "com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903", "type": "playlist", "title": "Static Playlist", "summary": "A Great Playlist", "smart": false, "playlistType": "video", "composite": "/playlists/92/composite/1705716440", "icon": "playlist://image.smart", "viewCount": 1, "lastViewedAt": 1705716298, "duration": 7328000, "leafCount": 32, "addedAt": 1705716298, "updatedAt": 1705716440}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getPlaylist: speakeasy-default-get-playlist: parameters: path: - playlistID: 4109.48 + playlistID: 8419.53 responses: "200": - application/json: {"MediaContainer": {"size": 1, "Metadata": [{"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}, {"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}, {"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}]}} + application/json: {"MediaContainer": {"size": 1, "Metadata": [{"content": "library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1", "ratingKey": "95", "key": "/playlists/95/items", "guid": "com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91", "type": "playlist", "title": "Smart Movie Playlist", "summary": "", "smart": true, "playlistType": "video", "composite": "/playlists/95/composite/1705717387", "icon": "playlist://image.smart", "duration": 282000, "leafCount": 2, "addedAt": 1705716493, "updatedAt": 1705717387}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} deletePlaylist: speakeasy-default-delete-playlist: parameters: path: - playlistID: 216.22 + playlistID: 3432.93 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} updatePlaylist: speakeasy-default-update-playlist: parameters: path: - playlistID: 3915 - query: {} + playlistID: 1579.66 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getPlaylistContents: speakeasy-default-get-playlist-contents: parameters: path: - playlistID: 5004.46 + playlistID: 5535.42 query: type: 2 responses: "200": - application/json: {"MediaContainer": {"size": 2, "composite": "/playlists/95/composite/1705717521", "duration": 282, "leafCount": 2, "playlistType": "video", "ratingKey": "95", "smart": true, "title": "Smart Movie Playlist", "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "titleSort": "Amazing Spider-Man 2", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.", "rating": 8.2, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141416, "originallyAvailableAt": "2005-09-29T00:00:00Z", "addedAt": 1705637164, "updatedAt": 1705637165, "audienceRatingImage": "rottentomatoes://image.rating.upright", "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}, {"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}, {"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}], "Genre": [{"tag": "Action"}, {"tag": "Action"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "Joss Whedon"}], "Writer": [{"tag": "Joss Whedon"}, {"tag": "Joss Whedon"}, {"tag": "Joss Whedon"}], "Role": [{"tag": "Gina Torres"}, {"tag": "Gina Torres"}]}]}} + application/json: {"MediaContainer": {"size": 2, "composite": "/playlists/95/composite/1705717521", "duration": 282, "leafCount": 2, "playlistType": "video", "ratingKey": "95", "smart": true, "title": "Smart Movie Playlist", "Metadata": [{"ratingKey": "17", "key": "/library/metadata/17", "guid": "plex://movie/5d77683f6f4521001ea9dc53", "studio": "Universal Pictures", "type": "movie", "title": "Serenity", "titleSort": "Amazing Spider-Man 2", "librarySectionTitle": "Movies", "librarySectionID": 1, "librarySectionKey": "/library/sections/1", "contentRating": "PG-13", "summary": "Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.", "rating": 8.2, "audienceRating": 9.1, "year": 2005, "tagline": "They aim to misbehave.", "thumb": "/library/metadata/17/thumb/1705637165", "art": "/library/metadata/17/art/1705637165", "duration": 141416, "originallyAvailableAt": "2005-09-29T00:00:00Z", "addedAt": 1705637164, "updatedAt": 1705637165, "audienceRatingImage": "rottentomatoes://image.rating.upright", "hasPremiumExtras": "1", "hasPremiumPrimaryExtra": "1", "ratingImage": "rottentomatoes://image.rating.ripe", "Media": [{"id": 15, "duration": 141416, "bitrate": 2273, "width": 1920, "height": 814, "aspectRatio": 2.35, "audioChannels": 2, "audioCodec": "aac", "videoCodec": "h264", "videoResolution": "1080", "container": "mp4", "videoFrameRate": "24p", "optimizedForStreaming": 0, "audioProfile": "lc", "has64bitOffsets": false, "videoProfile": "high", "Part": [{"id": 15, "key": "/library/parts/15/1705637151/file.mp4", "duration": 141416, "file": "/movies/Serenity (2005)/Serenity (2005).mp4", "size": 40271948, "audioProfile": "lc", "container": "mp4", "has64bitOffsets": false, "optimizedForStreaming": false, "videoProfile": "high"}]}], "Genre": [{"tag": "Action"}], "Country": [{"tag": "United States of America"}], "Director": [{"tag": "Joss Whedon"}], "Writer": [{"tag": "Joss Whedon"}], "Role": [{"tag": "Gina Torres"}]}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} clearPlaylistContents: speakeasy-default-clear-playlist-contents: parameters: path: - playlistID: 1893.18 + playlistID: 4137.37 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} addPlaylistContents: speakeasy-default-add-playlist-contents: parameters: path: - playlistID: 8502.01 + playlistID: 7013.44 query: uri: "server://12345/com.plexapp.plugins.library/library/metadata/1" playQueueID: 123 responses: "200": - application/json: {"MediaContainer": {"size": 1, "leafCountAdded": 1, "leafCountRequested": 1, "Metadata": [{"ratingKey": "94", "key": "/playlists/94/items", "guid": "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2", "type": "playlist", "title": "A great playlist", "summary": "One of my great playlists", "smart": false, "playlistType": "video", "composite": "/playlists/94/composite/1705800070", "duration": 423000, "leafCount": 3, "addedAt": 1705716458, "updatedAt": 1705800070}, {"ratingKey": "94", "key": "/playlists/94/items", "guid": "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2", "type": "playlist", "title": "A great playlist", "summary": "One of my great playlists", "smart": false, "playlistType": "video", "composite": "/playlists/94/composite/1705800070", "duration": 423000, "leafCount": 3, "addedAt": 1705716458, "updatedAt": 1705800070}]}} + application/json: {"MediaContainer": {"size": 1, "leafCountAdded": 1, "leafCountRequested": 1, "Metadata": [{"ratingKey": "94", "key": "/playlists/94/items", "guid": "com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2", "type": "playlist", "title": "A great playlist", "summary": "One of my great playlists", "smart": false, "playlistType": "video", "composite": "/playlists/94/composite/1705800070", "duration": 423000, "leafCount": 3, "addedAt": 1705716458, "updatedAt": 1705800070}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} uploadPlaylist: speakeasy-default-upload-playlist: parameters: query: path: "/home/barkley/playlist.m3u" - force: 0 + force: 1 sectionID: 1 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getTransientToken: speakeasy-default-get-transient-token: parameters: @@ -2922,19 +2922,19 @@ examples: speakeasy-default-get-source-connection-information: parameters: query: - source: "provider://provider-identifier" + source: "server://client-identifier" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getTokenDetails: speakeasy-default-get-token-details: responses: "200": - application/json: {"adsConsent": false, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "ja", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 1, "defaultSubtitleAccessibility": 1, "defaultSubtitleForced": 1, "watchedIndicator": 1, "mediaReviewsVisibility": 1}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [{"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null} + application/json: {"adsConsent": true, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "it", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 1, "defaultSubtitleAccessibility": 1, "defaultSubtitleForced": 1, "watchedIndicator": 1, "mediaReviewsVisibility": 1}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} post-users-sign-in-data: @@ -2950,11 +2950,11 @@ examples: application/x-www-form-urlencoded: {"login": "username@email.com", "password": "password123", "rememberMe": false, "verificationCode": "123456"} responses: "201": - application/json: {"adsConsent": false, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "zh", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 0, "defaultSubtitleAccessibility": 0, "defaultSubtitleForced": 0, "watchedIndicator": 0, "mediaReviewsVisibility": 0}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [{"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}, {"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}, {"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "", "status": "online"}], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null, "pastSubscriptions": [{"id": "", "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 778268}}, {"id": "", "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 417052}}, {"id": "", "mode": "", "renewsAt": 1556281940, "endsAt": 1556281940, "canceled": false, "gracePeriod": false, "onHold": false, "canReactivate": false, "canUpgrade": false, "canDowngrade": false, "canConvert": false, "type": "plexpass", "transfer": "", "state": "ended", "billing": {"internalPaymentMethod": {}, "paymentMethodId": 860168}}], "trials": [{}, {}]} + application/json: {"adsConsent": null, "adsConsentReminderAt": 1556281940, "adsConsentSetAt": 1556281940, "anonymous": false, "authToken": "CxoUzBTSV5hsxjTpFKaf", "backupCodesCreated": false, "confirmed": false, "country": "US", "email": "username@email.com", "emailOnlyAuth": false, "experimentalFeatures": false, "friendlyName": "friendlyUsername", "entitlements": ["[]"], "guest": false, "hasPassword": true, "home": false, "homeAdmin": false, "homeSize": 1, "id": 13692262, "joinedAt": 1556281940, "locale": "ru", "mailingListActive": false, "mailingListStatus": "active", "maxHomeSize": 15, "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 1, "defaultSubtitleAccessibility": 1, "defaultSubtitleForced": 1, "watchedIndicator": 1, "mediaReviewsVisibility": 1}, "protected": false, "rememberExpiresAt": 1556281940, "restricted": false, "scrobbleTypes": "", "services": [], "subscription": {"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}, "subscriptionDescription": "", "subscriptions": [{"active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null, "pastSubscriptions": [], "trials": []} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getStatistics: "": parameters: @@ -2962,9 +2962,9 @@ examples: timespan: 4 responses: "200": - application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsMedia": [{"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}, {"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}, {"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}]}} + application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsMedia": [{"accountID": 1, "deviceID": 13, "timespan": 4, "at": 1707141600, "metadataType": 4, "count": 1, "duration": 1555}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getResourcesStatistics: @@ -2974,11 +2974,11 @@ examples: timespan: 4 responses: "200": - application/json: {"MediaContainer": {"size": 5497, "StatisticsResources": [{"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}, {"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}]}} + application/json: {"MediaContainer": {"size": 5497, "StatisticsResources": [{"timespan": 6, "at": 1718384427, "hostCpuUtilization": 1.276, "processCpuUtilization": 0.025, "hostMemoryUtilization": 17.026, "processMemoryUtilization": 0.493}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getBandwidthStatistics: "": parameters: @@ -2986,18 +2986,18 @@ examples: timespan: 4 responses: "200": - application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}, {"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}, {"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}, {"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsBandwidth": [{"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}, {"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}]}} + application/json: {"MediaContainer": {"size": 5497, "Device": [{"id": 208, "name": "Roku Express", "platform": "Roku", "clientIdentifier": "793095d235660625108ef785cc7646e9", "createdAt": 1706470556}], "Account": [{"id": 238960586, "key": "/accounts/238960586", "name": "Diane", "defaultAudioLanguage": "en", "autoSelectAudio": true, "defaultSubtitleLanguage": "en", "subtitleMode": 1, "thumb": "https://plex.tv/users/50d83634246da1de/avatar?c=1707110967"}], "StatisticsBandwidth": [{"accountID": 238960586, "deviceID": 208, "timespan": 6, "at": 1718387650, "lan": true, "bytes": 22}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getSessions: speakeasy-default-get-sessions: responses: "200": - application/json: {"MediaContainer": {"size": 1, "Metadata": [{"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}, {"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}, {"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}, {"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}, {"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}]}} + application/json: {"MediaContainer": {"size": 1, "Metadata": [{"addedAt": 1705543312, "art": "/library/metadata/39904/art/1705310687", "duration": 186240, "grandparentArt": "/library/metadata/39904/art/1705310687", "grandparentGuid": "plex://artist/5d07bbfd403c6402904a6480", "grandparentKey": "/library/metadata/39904", "grandparentRatingKey": "39904", "grandparentThumb": "/library/metadata/39904/thumb/1705310687", "grandparentTitle": "Green Day", "guid": "plex://track/6535834f71f22f36f71a8e8f", "index": 1, "key": "/library/metadata/67085", "librarySectionID": "3", "librarySectionKey": "/library/sections/3", "librarySectionTitle": "Music", "musicAnalysisVersion": "1", "originalTitle": "The American Dream Is Killing Me", "parentGuid": "plex://album/65394d6d472b8ab03ef47f12", "parentIndex": 1, "parentKey": "/library/metadata/67084", "parentRatingKey": "67084", "parentStudio": "Reprise Records", "parentThumb": "/library/metadata/67084/thumb/1705543314", "parentTitle": "Saviors", "parentYear": 2024, "ratingCount": 45885, "ratingKey": "67085", "sessionKey": "203", "thumb": "/library/metadata/67084/thumb/1705543314", "title": "The American Dream Is Killing Me", "titleSort": "American Dream Is Killing Me", "type": "track", "updatedAt": 1705543314, "viewOffset": 1000, "Media": [{"audioChannels": 2, "audioCodec": "flac", "bitrate": 1014, "container": "flac", "duration": 186240, "id": "130355", "selected": true, "Part": [{"container": "flac", "duration": 186240, "file": "/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac", "hasThumbnail": "1", "id": "130625", "key": "/library/parts/130625/1705543268/file.flac", "size": 23644000, "decision": "directplay", "selected": true, "Stream": [{"albumGain": "-12.94", "albumPeak": "1.000000", "albumRange": "4.751014", "audioChannelLayout": "stereo", "bitDepth": 16, "bitrate": 1014, "channels": 2, "codec": "flac", "displayTitle": "FLAC (Stereo)", "extendedDisplayTitle": "FLAC (Stereo)", "gain": "-12.94", "id": "352487", "index": 0, "loudness": "-5.94", "lra": "1.74", "peak": "1.000000", "samplingRate": 44100, "selected": true, "streamType": 2, "location": "direct"}]}]}], "User": {"id": "1", "thumb": "https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661", "title": "Blindkitty38"}, "Player": {"address": "10.10.10.171", "machineIdentifier": "3tsdzir85m2onc3qyr255aq1", "model": "standalone", "platform": "windows", "platformVersion": "10.0.22621", "product": "Plex for Windows", "profile": "Plex Desktop", "remotePublicAddress": "68.248.140.20", "state": "playing", "title": "DESKTOP-BL80MTD", "version": "1.85.0.4071-21128b56", "local": true, "relayed": false, "secure": true, "userID": 1}, "Session": {"id": "93h7e00ncblxncqw9lkfaoxi", "bandwidth": 1050, "location": "lan"}}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getSessionHistory: @@ -3006,75 +3006,81 @@ examples: query: sort: "viewedAt:desc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} viewed-at-ascending: parameters: query: sort: "viewedAt:asc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} rating-descending: parameters: query: sort: "rating:desc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} rating-ascending: parameters: query: sort: "rating:asc" accountId: 1 + filter: {} librarySectionID: 12 responses: "200": application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} "": parameters: query: accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} ViewedAt: parameters: query: accountId: 1 + filter: {} librarySectionID: 12 responses: "200": - application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}, {"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} + application/json: {"MediaContainer": {"size": 10855, "Metadata": [{"historyKey": "/status/sessions/history/1", "key": "/library/metadata/32171", "ratingKey": "32171", "librarySectionID": "2", "parentKey": "/library/metadata/32170", "grandparentKey": "/library/metadata/32132", "title": "The Noise That Blue Makes", "grandparentTitle": "Taskmaster", "type": "episode", "thumb": "/library/metadata/32171/thumb/-1", "parentThumb": "/library/metadata/32170/thumb/1654134301", "grandparentThumb": "/library/metadata/32132/thumb/1703933346", "grandparentArt": "/library/metadata/32132/art/1703933346", "index": 1, "parentIndex": 13, "originallyAvailableAt": "2022-04-14T00:00:00Z", "viewedAt": 1654139223, "accountID": 1, "deviceID": 5}]}} "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getTranscodeSessions: @@ -3085,7 +3091,7 @@ examples: "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} stopTranscodeSession: speakeasy-default-stop-transcode-session: parameters: @@ -3093,9 +3099,9 @@ examples: sessionKey: "zz7llzqlx8w9vnrsbnwhbmep" responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} getUpdateStatus: speakeasy-default-get-update-status: responses: @@ -3104,7 +3110,7 @@ examples: "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} checkForUpdates: "": parameters: @@ -3112,9 +3118,9 @@ examples: download: 1 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} applyUpdates: "": parameters: @@ -3123,7 +3129,7 @@ examples: skip: 1 responses: "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} get-users: @@ -3145,10 +3151,10 @@ examples: X-Plex-Token: "CV5xoxjTpFKUzBTShsaf" responses: "200": - application/xml: "0xa9CdebeF9E" + application/xml: "0xfD5052DbD1" "400": - application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": - application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}, {"code": 1001, "message": "User could not be authenticated", "status": 401}]} -examplesVersion: 1.0.1 + application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} +examplesVersion: 1.0.2 generatedTests: {} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index e8262d37..2c47a496 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -4,6 +4,7 @@ generation: maintainOpenAPIOrder: true usageSnippets: optionalPropertyRendering: withExample + sdkInitStyle: constructor useClassNamesForArrayFields: true fixes: nameResolutionDec2023: true @@ -16,7 +17,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false java: - version: 0.16.2 + version: 0.17.0 additionalDependencies: [] additionalPlugins: [] artifactID: plexapi diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 3acf9bc3..45c873a2 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.542.1 +speakeasyVersion: 1.555.2 sources: my-source: sourceNamespace: my-source @@ -8,19 +8,19 @@ sources: - latest plexapi: sourceNamespace: plexapi - sourceRevisionDigest: sha256:37adc934a79841fb00cfe6ed569f5b1c88534b20202ecbde64b4e84828cee22a - sourceBlobDigest: sha256:ffb5b8d288111a763e4d035c8c9e37f5c89690d146b7297493b43a71d8298e6c + sourceRevisionDigest: sha256:78d07ad78ff60d0e9918696208d8c68a562e170d4e9c431797c02995fb8816d0 + sourceBlobDigest: sha256:d38dd2a36c1b2fd73409267f7b30c2d5d45d709616141803ea01db424ec68ae4 tags: - latest - - speakeasy-sdk-regen-1746405115 + - speakeasy-sdk-regen-1748997072 targets: plexjava: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:37adc934a79841fb00cfe6ed569f5b1c88534b20202ecbde64b4e84828cee22a - sourceBlobDigest: sha256:ffb5b8d288111a763e4d035c8c9e37f5c89690d146b7297493b43a71d8298e6c + sourceRevisionDigest: sha256:78d07ad78ff60d0e9918696208d8c68a562e170d4e9c431797c02995fb8816d0 + sourceBlobDigest: sha256:d38dd2a36c1b2fd73409267f7b30c2d5d45d709616141803ea01db424ec68ae4 codeSamplesNamespace: code-samples-java-plexjava - codeSamplesRevisionDigest: sha256:5ae904090d6739e899706a85cf9894383ad162f6ea644e5e60d5056518afbf57 + codeSamplesRevisionDigest: sha256:2028a8fe95bd6176b8c2ff3a498715a0be7cb00919f7a1e7975778292621dce5 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index ddfacb50..eaedaa02 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ The samples below show how a published SDK artifact is used: Gradle: ```groovy -implementation 'dev.plexapi:plexapi:0.16.2' +implementation 'dev.plexapi:plexapi:0.17.0' ``` Maven: @@ -77,7 +77,7 @@ Maven: dev.plexapi plexapi - 0.16.2 + 0.17.0 ``` @@ -192,7 +192,7 @@ public class Application { * [getLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details * [deleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section * [getLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items -* [getAllMediaLibrary](docs/sdks/library/README.md#getallmedialibrary) - Get all media of library +* [getLibrarySectionsAll](docs/sdks/library/README.md#getlibrarysectionsall) - Get Library section media by tag ALL * [getRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library * [getSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library * [getGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media @@ -371,8 +371,8 @@ public class Application { PlexAPI sdk = PlexAPI.builder() .protocol(ServerProtocol.HTTPS) - .ip("e0c3:bcc0:6bac:dccc:c4ec:34b1:ca98:4cb9") - .port("40311") + .ip("4982:bc2a:b4f8:efb5:2394:5bc3:ab4f:0e6d") + .port("44765") .accessToken("") .build(); diff --git a/RELEASES.md b/RELEASES.md index e46ee961..c3bf6af3 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -348,4 +348,14 @@ Based on: ### Generated - [java v0.16.2] . ### Releases -- [Maven Central v0.16.2] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.16.2 - . \ No newline at end of file +- [Maven Central v0.16.2] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.16.2 - . + +## 2025-06-04 00:30:54 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.555.2 (2.620.2) https://github.com/speakeasy-api/speakeasy +### Generated +- [java v0.17.0] . +### Releases +- [Maven Central v0.17.0] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.17.0 - . \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3d488b32..0001cbc9 100644 --- a/build.gradle +++ b/build.gradle @@ -103,7 +103,7 @@ publishing { // https://github.com/gradle/gradle/issues/18619 groupId = "dev.plexapi" artifactId = "plexapi" - version = "0.16.2" + version = "0.17.0" from components.java diff --git a/codeSamples.yaml b/codeSamples.yaml index 43a72e4c..6ba45898 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -363,7 +363,7 @@ actions: .build(); StopTaskResponse res = sdk.butler().stopTask() - .taskName(PathParamTaskName.BACKUP_DATABASE) + .taskName(PathParamTaskName.CLEAN_OLD_CACHE_FILES) .call(); // handle response @@ -393,7 +393,7 @@ actions: .build(); StartTaskResponse res = sdk.butler().startTask() - .taskName(TaskName.CLEAN_OLD_BUNDLES) + .taskName(TaskName.REFRESH_PERIODIC_METADATA) .call(); // handle response @@ -629,9 +629,10 @@ actions: .build(); GetRecentlyAddedRequest req = GetRecentlyAddedRequest.builder() - .contentDirectoryID(470161L) + .contentDirectoryID(39486L) .type(Type.TvShow) .sectionID(2L) + .includeMeta(IncludeMeta.Enable) .build(); GetRecentlyAddedResponse res = sdk.hubs().getRecentlyAdded() @@ -666,7 +667,8 @@ actions: .build(); PerformSearchResponse res = sdk.search().performSearch() - .query("dylan") + .query("arnold") + .limit(5) .call(); // handle response @@ -696,6 +698,7 @@ actions: PerformVoiceSearchResponse res = sdk.search().performVoiceSearch() .query("dead+poop") + .limit(5) .call(); // handle response @@ -724,7 +727,7 @@ actions: .build(); GetLibraryHubsResponse res = sdk.hubs().getLibraryHubs() - .sectionId(6728.76) + .sectionId(492.74) .call(); if (res.object().isPresent()) { @@ -771,8 +774,7 @@ actions: import dev.plexapi.sdk.PlexAPI; import dev.plexapi.sdk.models.errors.GetTopWatchedContentBadRequest; import dev.plexapi.sdk.models.errors.GetTopWatchedContentUnauthorized; - import dev.plexapi.sdk.models.operations.GetTopWatchedContentQueryParamType; - import dev.plexapi.sdk.models.operations.GetTopWatchedContentResponse; + import dev.plexapi.sdk.models.operations.*; import java.lang.Exception; public class Application { @@ -784,8 +786,8 @@ actions: .build(); GetTopWatchedContentResponse res = sdk.library().getTopWatchedContent() - .includeGuids(1L) .type(GetTopWatchedContentQueryParamType.TvShow) + .includeGuids(GetTopWatchedContentQueryParamIncludeGuids.Enable) .call(); if (res.object().isPresent()) { @@ -846,7 +848,7 @@ actions: .build(); GetMediaMetaDataRequest req = GetMediaMetaDataRequest.builder() - .ratingKey(9518L) + .ratingKey("21119,21617") .includeConcerts(true) .includeExtras(true) .includeOnDeck(true) @@ -992,7 +994,7 @@ actions: .build(); GetMetadataChildrenResponse res = sdk.library().getMetadataChildren() - .ratingKey(1539.14) + .ratingKey(2403.67) .includeElements("Stream") .call(); @@ -1139,6 +1141,7 @@ actions: 16L, 17L)) .sectionID(2L) + .includeMeta(QueryParamIncludeMeta.Enable) .build(); GetRecentlyAddedLibraryResponse res = sdk.library().getRecentlyAddedLibrary() @@ -1178,6 +1181,8 @@ actions: .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .searchTypes(List.of( SearchTypes.PEOPLE)) + .includeCollections(GetSearchAllLibrariesQueryParamIncludeCollections.Enable) + .includeExternalMedia(GetSearchAllLibrariesQueryParamIncludeExternalMedia.Enable) .build(); GetSearchAllLibrariesResponse res = sdk.library().getSearchAllLibraries() @@ -1242,7 +1247,7 @@ actions: .build(); GetWatchListRequest req = GetWatchListRequest.builder() - .filter(Filter.AVAILABLE) + .filter(Filter.RELEASED) .xPlexToken("CV5xoxjTpFKUzBTShsaf") .build(); @@ -1296,6 +1301,7 @@ actions: import dev.plexapi.sdk.models.errors.GetLibraryDetailsBadRequest; import dev.plexapi.sdk.models.errors.GetLibraryDetailsUnauthorized; import dev.plexapi.sdk.models.operations.GetLibraryDetailsResponse; + import dev.plexapi.sdk.models.operations.IncludeDetails; import java.lang.Exception; public class Application { @@ -1307,6 +1313,7 @@ actions: .build(); GetLibraryDetailsResponse res = sdk.library().getLibraryDetails() + .includeDetails(IncludeDetails.ZERO) .sectionKey(9518) .call(); @@ -1357,25 +1364,30 @@ actions: package hello.world; import dev.plexapi.sdk.PlexAPI; - import dev.plexapi.sdk.models.errors.GetAllMediaLibraryBadRequest; - import dev.plexapi.sdk.models.errors.GetAllMediaLibraryUnauthorized; + import dev.plexapi.sdk.models.errors.GetLibrarySectionsAllBadRequest; + import dev.plexapi.sdk.models.errors.GetLibrarySectionsAllUnauthorized; import dev.plexapi.sdk.models.operations.*; import java.lang.Exception; public class Application { - public static void main(String[] args) throws GetAllMediaLibraryBadRequest, GetAllMediaLibraryUnauthorized, Exception { + public static void main(String[] args) throws GetLibrarySectionsAllBadRequest, GetLibrarySectionsAllUnauthorized, Exception { PlexAPI sdk = PlexAPI.builder() .accessToken("") .build(); - GetAllMediaLibraryRequest req = GetAllMediaLibraryRequest.builder() + GetLibrarySectionsAllRequest req = GetLibrarySectionsAllRequest.builder() .sectionKey(9518) - .type(GetAllMediaLibraryQueryParamType.TvShow) + .type(GetLibrarySectionsAllQueryParamType.TvShow) + .includeMeta(GetLibrarySectionsAllQueryParamIncludeMeta.Enable) + .includeGuids(QueryParamIncludeGuids.Enable) + .includeAdvanced(IncludeAdvanced.Enable) + .includeCollections(QueryParamIncludeCollections.Enable) + .includeExternalMedia(QueryParamIncludeExternalMedia.Enable) .build(); - GetAllMediaLibraryResponse res = sdk.library().getAllMediaLibrary() + GetLibrarySectionsAllResponse res = sdk.library().getLibrarySectionsAll() .request(req) .call(); @@ -1474,7 +1486,7 @@ actions: .build(); GetRefreshLibraryMetadataResponse res = sdk.library().getRefreshLibraryMetadata() - .force(Force.ONE) + .force(Force.ZERO) .sectionKey(9518) .call(); @@ -1537,9 +1549,11 @@ actions: .build(); GetLibraryItemsRequest req = GetLibraryItemsRequest.builder() - .tag(Tag.EDITION) + .tag(Tag.NEWEST) .type(GetLibraryItemsQueryParamType.TvShow) .sectionKey(9518) + .includeGuids(IncludeGuids.Enable) + .includeMeta(GetLibraryItemsQueryParamIncludeMeta.Enable) .build(); GetLibraryItemsResponse res = sdk.library().getLibraryItems() @@ -1731,8 +1745,8 @@ actions: .height(165) .opacity(100L) .blur(0) - .minSize(MinSize.ONE) - .upscale(Upscale.ONE) + .minSize(MinSize.ZERO) + .upscale(Upscale.ZERO) .url("/library/metadata/49564/thumb/1654258204") .build(); @@ -1804,7 +1818,7 @@ actions: .build(); GetTokenByPinIdRequest req = GetTokenByPinIdRequest.builder() - .pinID(408895L) + .pinID(232248L) .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .clientName("Plex for Roku") .deviceNickname("Roku 3") @@ -1875,9 +1889,9 @@ actions: CreatePlaylistRequest req = CreatePlaylistRequest.builder() .title("") - .type(CreatePlaylistQueryParamType.PHOTO) + .type(CreatePlaylistQueryParamType.AUDIO) .smart(Smart.ONE) - .uri("https://hoarse-testing.info/") + .uri("https://short-term-disconnection.name/") .build(); CreatePlaylistResponse res = sdk.playlists().createPlaylist() @@ -1914,7 +1928,7 @@ actions: UploadPlaylistResponse res = sdk.playlists().uploadPlaylist() .path("/home/barkley/playlist.m3u") - .force(QueryParamForce.ZERO) + .force(QueryParamForce.ONE) .sectionID(1L) .call(); @@ -1944,7 +1958,7 @@ actions: .build(); DeletePlaylistResponse res = sdk.playlists().deletePlaylist() - .playlistID(216.22) + .playlistID(3432.93) .call(); // handle response @@ -1973,7 +1987,7 @@ actions: .build(); GetPlaylistResponse res = sdk.playlists().getPlaylist() - .playlistID(4109.48) + .playlistID(8419.53) .call(); if (res.object().isPresent()) { @@ -2004,7 +2018,7 @@ actions: .build(); UpdatePlaylistResponse res = sdk.playlists().updatePlaylist() - .playlistID(3915) + .playlistID(1579.66) .call(); // handle response @@ -2033,7 +2047,7 @@ actions: .build(); ClearPlaylistContentsResponse res = sdk.playlists().clearPlaylistContents() - .playlistID(1893.18) + .playlistID(4137.37) .call(); // handle response @@ -2063,7 +2077,7 @@ actions: .build(); GetPlaylistContentsResponse res = sdk.playlists().getPlaylistContents() - .playlistID(5004.46) + .playlistID(5535.42) .type(GetPlaylistContentsQueryParamType.TvShow) .call(); @@ -2095,7 +2109,7 @@ actions: .build(); AddPlaylistContentsResponse res = sdk.playlists().addPlaylistContents() - .playlistID(8502.01) + .playlistID(7013.44) .uri("server://12345/com.plexapp.plugins.library/library/metadata/1") .playQueueID(123) .call(); @@ -2116,7 +2130,7 @@ actions: import dev.plexapi.sdk.PlexAPI; import dev.plexapi.sdk.models.errors.GetServerResourcesBadRequest; import dev.plexapi.sdk.models.errors.GetServerResourcesUnauthorized; - import dev.plexapi.sdk.models.operations.GetServerResourcesResponse; + import dev.plexapi.sdk.models.operations.*; import java.lang.Exception; public class Application { @@ -2128,6 +2142,9 @@ actions: .build(); GetServerResourcesResponse res = sdk.plex().getServerResources() + .includeHttps(IncludeHttps.Enable) + .includeRelay(IncludeRelay.Enable) + .includeIPv6(IncludeIPv6.Enable) .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .call(); @@ -2190,7 +2207,7 @@ actions: .build(); GetSourceConnectionInformationResponse res = sdk.authentication().getSourceConnectionInformation() - .source("provider://provider-identifier") + .source("server://client-identifier") .call(); // handle response diff --git a/docs/models/errors/GetAllMediaLibraryBadRequest.md b/docs/models/errors/GetLibrarySectionsAllBadRequest.md similarity index 92% rename from docs/models/errors/GetAllMediaLibraryBadRequest.md rename to docs/models/errors/GetLibrarySectionsAllBadRequest.md index 03cc02cd..b5315bb1 100644 --- a/docs/models/errors/GetAllMediaLibraryBadRequest.md +++ b/docs/models/errors/GetLibrarySectionsAllBadRequest.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryBadRequest +# GetLibrarySectionsAllBadRequest Bad Request - A parameter was not specified, or was specified incorrectly. @@ -7,5 +7,5 @@ Bad Request - A parameter was not specified, or was specified incorrectly. | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `errors` | List\<[GetAllMediaLibraryErrors](../../models/errors/GetAllMediaLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `errors` | List\<[GetLibrarySectionsAllErrors](../../models/errors/GetLibrarySectionsAllErrors.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/GetAllMediaLibraryErrors.md b/docs/models/errors/GetLibrarySectionsAllErrors.md similarity index 97% rename from docs/models/errors/GetAllMediaLibraryErrors.md rename to docs/models/errors/GetLibrarySectionsAllErrors.md index 24e85620..2b172586 100644 --- a/docs/models/errors/GetAllMediaLibraryErrors.md +++ b/docs/models/errors/GetLibrarySectionsAllErrors.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryErrors +# GetLibrarySectionsAllErrors ## Fields diff --git a/docs/models/errors/GetAllMediaLibraryLibraryErrors.md b/docs/models/errors/GetLibrarySectionsAllLibraryErrors.md similarity index 95% rename from docs/models/errors/GetAllMediaLibraryLibraryErrors.md rename to docs/models/errors/GetLibrarySectionsAllLibraryErrors.md index 750d1230..6a1714a5 100644 --- a/docs/models/errors/GetAllMediaLibraryLibraryErrors.md +++ b/docs/models/errors/GetLibrarySectionsAllLibraryErrors.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryLibraryErrors +# GetLibrarySectionsAllLibraryErrors ## Fields diff --git a/docs/models/errors/GetAllMediaLibraryUnauthorized.md b/docs/models/errors/GetLibrarySectionsAllUnauthorized.md similarity index 92% rename from docs/models/errors/GetAllMediaLibraryUnauthorized.md rename to docs/models/errors/GetLibrarySectionsAllUnauthorized.md index 3e7c8179..c2438998 100644 --- a/docs/models/errors/GetAllMediaLibraryUnauthorized.md +++ b/docs/models/errors/GetLibrarySectionsAllUnauthorized.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryUnauthorized +# GetLibrarySectionsAllUnauthorized Unauthorized - Returned if the X-Plex-Token is missing from the header or query. @@ -7,5 +7,5 @@ Unauthorized - Returned if the X-Plex-Token is missing from the header or query. | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `errors` | List\<[GetAllMediaLibraryLibraryErrors](../../models/errors/GetAllMediaLibraryLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `errors` | List\<[GetLibrarySectionsAllLibraryErrors](../../models/errors/GetLibrarySectionsAllLibraryErrors.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/Country.md b/docs/models/operations/Country.md index b9eb5637..bf817852 100644 --- a/docs/models/operations/Country.md +++ b/docs/models/operations/Country.md @@ -5,8 +5,8 @@ The filter query string for country media items. ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| `id` | *int* | :heavy_check_mark: | N/A | 259 | -| `tag` | *String* | :heavy_check_mark: | The country of origin of this media item | United States of America | -| `filter` | *Optional\* | :heavy_minus_sign: | N/A | country=19 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique identifier for the country.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `tag` | *String* | :heavy_check_mark: | The country of origin of this media item | United States of America | +| `filter` | *String* | :heavy_check_mark: | N/A | country=19 | \ No newline at end of file diff --git a/docs/models/operations/Director.md b/docs/models/operations/Director.md index 151f575d..f0043665 100644 --- a/docs/models/operations/Director.md +++ b/docs/models/operations/Director.md @@ -3,6 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | -| `tag` | *String* | :heavy_check_mark: | The role of Director | Danny Boyle | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique identifier for the director. | 126522 | +| `filter` | *String* | :heavy_check_mark: | The filter string used to query this director. | director=235876 | +| `tag` | *String* | :heavy_check_mark: | The role of Director | Danny Boyle | +| `tagKey` | *String* | :heavy_check_mark: | A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. | 5d776831151a60001f24d031 | +| `thumb` | *Optional\* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the director. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file diff --git a/docs/models/operations/Genre.md b/docs/models/operations/Genre.md index 69d2d297..d275aaa1 100644 --- a/docs/models/operations/Genre.md +++ b/docs/models/operations/Genre.md @@ -5,8 +5,8 @@ The filter query string for similar items. ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | -| `id` | *long* | :heavy_check_mark: | N/A | 259 | -| `filter` | *String* | :heavy_check_mark: | N/A | genre=19 | -| `tag` | *String* | :heavy_check_mark: | The genre name of this media-item
| Crime | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique identifier for the genre.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `filter` | *String* | :heavy_check_mark: | N/A | genre=19 | +| `tag` | *String* | :heavy_check_mark: | The genre name of this media-item
| Crime | \ No newline at end of file diff --git a/docs/models/operations/GetActorsLibraryQueryParamType.md b/docs/models/operations/GetActorsLibraryQueryParamType.md index c3709620..54c839f2 100644 --- a/docs/models/operations/GetActorsLibraryQueryParamType.md +++ b/docs/models/operations/GetActorsLibraryQueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetAllLibrariesType.md b/docs/models/operations/GetAllLibrariesType.md index d484421d..432e0446 100644 --- a/docs/models/operations/GetAllLibrariesType.md +++ b/docs/models/operations/GetAllLibrariesType.md @@ -5,11 +5,15 @@ The library type ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | -| `Artist` | artist | -| `Album` | album | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | +| `Artist` | artist | +| `Album` | album | +| `Track` | track | +| `PhotoAlbum` | photoalbum | +| `Photo` | photo | +| `Collection` | collection | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryFieldType.md b/docs/models/operations/GetAllMediaLibraryFieldType.md deleted file mode 100644 index 58d7c05e..00000000 --- a/docs/models/operations/GetAllMediaLibraryFieldType.md +++ /dev/null @@ -1,9 +0,0 @@ -# GetAllMediaLibraryFieldType - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `type` | *String* | :heavy_check_mark: | N/A | tag | -| `operator` | List\<[GetAllMediaLibraryOperator](../../models/operations/GetAllMediaLibraryOperator.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryGuids.md b/docs/models/operations/GetAllMediaLibraryGuids.md deleted file mode 100644 index 12e35011..00000000 --- a/docs/models/operations/GetAllMediaLibraryGuids.md +++ /dev/null @@ -1,8 +0,0 @@ -# GetAllMediaLibraryGuids - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `id` | *Optional\* | :heavy_minus_sign: | The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337
| tvdb://2337 | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryImage.md b/docs/models/operations/GetAllMediaLibraryImage.md deleted file mode 100644 index 909ee45f..00000000 --- a/docs/models/operations/GetAllMediaLibraryImage.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetAllMediaLibraryImage - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `alt` | *String* | :heavy_check_mark: | N/A | Episode 1 | -| `type` | [GetAllMediaLibraryLibraryResponseType](../../models/operations/GetAllMediaLibraryLibraryResponseType.md) | :heavy_check_mark: | N/A | background | -| `url` | *String* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryLibraryType.md b/docs/models/operations/GetAllMediaLibraryLibraryType.md deleted file mode 100644 index 31fa60ec..00000000 --- a/docs/models/operations/GetAllMediaLibraryLibraryType.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetAllMediaLibraryLibraryType - -The type of media content - - - -## Values - -| Name | Value | -| --------- | --------- | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | -| `Artist` | artist | -| `Album` | album | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryMedia.md b/docs/models/operations/GetAllMediaLibraryMedia.md deleted file mode 100644 index d403e15a..00000000 --- a/docs/models/operations/GetAllMediaLibraryMedia.md +++ /dev/null @@ -1,26 +0,0 @@ -# GetAllMediaLibraryMedia - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `id` | *long* | :heavy_check_mark: | Unique media identifier. | 387322 | -| `duration` | *Optional\* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | -| `bitrate` | *Optional\* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | -| `width` | *Optional\* | :heavy_minus_sign: | Video width in pixels. | 3840 | -| `height` | *Optional\* | :heavy_minus_sign: | Video height in pixels. | 1602 | -| `aspectRatio` | *Optional\* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | -| `audioChannels` | *Optional\* | :heavy_minus_sign: | Number of audio channels. | 6 | -| `displayOffset` | *Optional\* | :heavy_minus_sign: | N/A | 50 | -| `audioCodec` | *Optional\* | :heavy_minus_sign: | Audio codec used. | eac3 | -| `videoCodec` | *Optional\* | :heavy_minus_sign: | Video codec used. | hevc | -| `videoResolution` | *Optional\* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | -| `container` | *Optional\* | :heavy_minus_sign: | File container type. | mkv | -| `videoFrameRate` | *Optional\* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | -| `videoProfile` | *Optional\* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | -| `hasVoiceActivity` | *Optional\* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | -| `audioProfile` | *Optional\* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | -| `optimizedForStreaming` | [Optional\](../../models/operations/GetAllMediaLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | -| `has64bitOffsets` | *Optional\* | :heavy_minus_sign: | N/A | false | -| `part` | List\<[GetAllMediaLibraryPart](../../models/operations/GetAllMediaLibraryPart.md)> | :heavy_minus_sign: | An array of parts for this media item. | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryMediaContainer.md b/docs/models/operations/GetAllMediaLibraryMediaContainer.md deleted file mode 100644 index 02be5c04..00000000 --- a/docs/models/operations/GetAllMediaLibraryMediaContainer.md +++ /dev/null @@ -1,26 +0,0 @@ -# GetAllMediaLibraryMediaContainer - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| `size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 | -| `totalSize` | *int* | :heavy_check_mark: | Total number of media items in the library. | 50 | -| `offset` | *long* | :heavy_check_mark: | Offset value for pagination. | 0 | -| `allowSync` | *boolean* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | -| `art` | *String* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg | -| `content` | *String* | :heavy_check_mark: | The content type or mode. | secondary | -| `identifier` | *String* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | -| `librarySectionID` | *long* | :heavy_check_mark: | The unique identifier for the library section. | 2 | -| `librarySectionTitle` | *String* | :heavy_check_mark: | The title of the library section. | TV Series | -| `librarySectionUUID` | *Optional\* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 | -| `mediaTagPrefix` | *String* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | -| `mediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 | -| `thumb` | *String* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png | -| `nocache` | *boolean* | :heavy_check_mark: | Specifies whether caching is disabled. | true | -| `title1` | *String* | :heavy_check_mark: | The primary title of the media container. | TV Series | -| `title2` | *String* | :heavy_check_mark: | The secondary title of the media container. | By Starring Actor | -| `viewGroup` | *String* | :heavy_check_mark: | Identifier for the view group layout. | secondary | -| `meta` | [Optional\](../../models/operations/GetAllMediaLibraryMeta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
| | -| `metadata` | List\<[GetAllMediaLibraryMetadata](../../models/operations/GetAllMediaLibraryMetadata.md)> | :heavy_minus_sign: | An array of metadata items. | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryMeta.md b/docs/models/operations/GetAllMediaLibraryMeta.md deleted file mode 100644 index 71541e25..00000000 --- a/docs/models/operations/GetAllMediaLibraryMeta.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetAllMediaLibraryMeta - -The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. - - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `type` | List\<[GetAllMediaLibraryType](../../models/operations/GetAllMediaLibraryType.md)> | :heavy_minus_sign: | N/A | -| `fieldType` | List\<[GetAllMediaLibraryFieldType](../../models/operations/GetAllMediaLibraryFieldType.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryPart.md b/docs/models/operations/GetAllMediaLibraryPart.md deleted file mode 100644 index f9be9a08..00000000 --- a/docs/models/operations/GetAllMediaLibraryPart.md +++ /dev/null @@ -1,23 +0,0 @@ -# GetAllMediaLibraryPart - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -| `accessible` | *Optional\* | :heavy_minus_sign: | Indicates if the part is accessible. | true | -| `exists` | *Optional\* | :heavy_minus_sign: | Indicates if the part exists. | true | -| `id` | *long* | :heavy_check_mark: | Unique part identifier. | 418385 | -| `key` | *String* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | -| `indexes` | *Optional\* | :heavy_minus_sign: | N/A | sd | -| `duration` | *Optional\* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | -| `file` | *String* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | -| `size` | *long* | :heavy_check_mark: | File size in bytes. | 30649952104 | -| `packetLength` | *Optional\* | :heavy_minus_sign: | N/A | 188 | -| `container` | *Optional\* | :heavy_minus_sign: | Container format of the part. | mkv | -| `videoProfile` | *Optional\* | :heavy_minus_sign: | Video profile for the part. | main 10 | -| `audioProfile` | *Optional\* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | -| `has64bitOffsets` | *Optional\* | :heavy_minus_sign: | N/A | false | -| `optimizedForStreaming` | [Optional\](../../models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | -| `hasThumbnail` | [Optional\](../../models/operations/GetAllMediaLibraryHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | -| `stream` | List\<[GetAllMediaLibraryStream](../../models/operations/GetAllMediaLibraryStream.md)> | :heavy_minus_sign: | An array of streams for this part. | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryQueryParamType.md b/docs/models/operations/GetAllMediaLibraryQueryParamType.md deleted file mode 100644 index 9cddd84c..00000000 --- a/docs/models/operations/GetAllMediaLibraryQueryParamType.md +++ /dev/null @@ -1,22 +0,0 @@ -# GetAllMediaLibraryQueryParamType - -The type of media to retrieve or filter by. -1 = movie -2 = show -3 = season -4 = episode -E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries - - - -## Values - -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryResponseBody.md b/docs/models/operations/GetAllMediaLibraryResponseBody.md deleted file mode 100644 index 17664328..00000000 --- a/docs/models/operations/GetAllMediaLibraryResponseBody.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetAllMediaLibraryResponseBody - -Successful response containing media container data. - - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `mediaContainer` | [Optional\](../../models/operations/GetAllMediaLibraryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibrarySort.md b/docs/models/operations/GetAllMediaLibrarySort.md deleted file mode 100644 index f0b3b274..00000000 --- a/docs/models/operations/GetAllMediaLibrarySort.md +++ /dev/null @@ -1,15 +0,0 @@ -# GetAllMediaLibrarySort - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `default_` | *Optional\* | :heavy_minus_sign: | N/A | asc | -| `active` | *Optional\* | :heavy_minus_sign: | N/A | false | -| `activeDirection` | [Optional\](../../models/operations/GetAllMediaLibraryActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | -| `defaultDirection` | [Optional\](../../models/operations/GetAllMediaLibraryDefaultDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | -| `descKey` | *Optional\* | :heavy_minus_sign: | N/A | titleSort:desc | -| `firstCharacterKey` | *Optional\* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | -| `key` | *String* | :heavy_check_mark: | N/A | titleSort | -| `title` | *String* | :heavy_check_mark: | N/A | Title | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryStream.md b/docs/models/operations/GetAllMediaLibraryStream.md deleted file mode 100644 index 29baa179..00000000 --- a/docs/models/operations/GetAllMediaLibraryStream.md +++ /dev/null @@ -1,58 +0,0 @@ -# GetAllMediaLibraryStream - - -## Fields - -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `id` | *long* | :heavy_check_mark: | Unique stream identifier. | 1002625 | -| `streamType` | [GetAllMediaLibraryStreamType](../../models/operations/GetAllMediaLibraryStreamType.md) | :heavy_check_mark: | Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
| 1 | -| `format` | *Optional\* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt | -| `default_` | *Optional\* | :heavy_minus_sign: | Indicates if this stream is default. | true | -| `codec` | *String* | :heavy_check_mark: | Codec used by the stream. | hevc | -| `index` | *Optional\* | :heavy_minus_sign: | Index of the stream. | 0 | -| `bitrate` | *Optional\* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | -| `language` | *Optional\* | :heavy_minus_sign: | Language of the stream. | English | -| `languageTag` | *Optional\* | :heavy_minus_sign: | Language tag (e.g., en). | en | -| `languageCode` | *Optional\* | :heavy_minus_sign: | ISO language code. | eng | -| `headerCompression` | *Optional\* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | -| `doviblCompatID` | *Optional\* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | -| `doviblPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | -| `dovielPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | -| `doviLevel` | *Optional\* | :heavy_minus_sign: | Dolby Vision level. | 6 | -| `doviPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | -| `doviProfile` | *Optional\* | :heavy_minus_sign: | Dolby Vision profile. | 8 | -| `dovirpuPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | -| `doviVersion` | *Optional\* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | -| `bitDepth` | *Optional\* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | -| `chromaLocation` | *Optional\* | :heavy_minus_sign: | Chroma sample location. | topleft | -| `chromaSubsampling` | *Optional\* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | -| `codedHeight` | *Optional\* | :heavy_minus_sign: | Coded video height. | 1608 | -| `codedWidth` | *Optional\* | :heavy_minus_sign: | Coded video width. | 3840 | -| `closedCaptions` | *Optional\* | :heavy_minus_sign: | N/A | true | -| `colorPrimaries` | *Optional\* | :heavy_minus_sign: | Color primaries used. | bt2020 | -| `colorRange` | *Optional\* | :heavy_minus_sign: | Color range (e.g., tv). | tv | -| `colorSpace` | *Optional\* | :heavy_minus_sign: | Color space. | bt2020nc | -| `colorTrc` | *Optional\* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | -| `frameRate` | *Optional\* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | -| `key` | *Optional\* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 | -| `height` | *Optional\* | :heavy_minus_sign: | Height of the video stream. | 1602 | -| `level` | *Optional\* | :heavy_minus_sign: | Video level. | 150 | -| `original` | *Optional\* | :heavy_minus_sign: | Indicates if this is the original stream. | true | -| `hasScalingMatrix` | *Optional\* | :heavy_minus_sign: | N/A | false | -| `profile` | *Optional\* | :heavy_minus_sign: | Video profile. | main 10 | -| `scanType` | *Optional\* | :heavy_minus_sign: | N/A | progressive | -| `embeddedInVideo` | *Optional\* | :heavy_minus_sign: | N/A | progressive | -| `refFrames` | *Optional\* | :heavy_minus_sign: | Number of reference frames. | 1 | -| `width` | *Optional\* | :heavy_minus_sign: | Width of the video stream. | 3840 | -| `displayTitle` | *String* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | -| `extendedDisplayTitle` | *String* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | -| `selected` | *Optional\* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | -| `forced` | *Optional\* | :heavy_minus_sign: | N/A | true | -| `channels` | *Optional\* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | -| `audioChannelLayout` | *Optional\* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | -| `samplingRate` | *Optional\* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | -| `canAutoSync` | *Optional\* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | -| `hearingImpaired` | *Optional\* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | -| `dub` | *Optional\* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | -| `title` | *Optional\* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryType.md b/docs/models/operations/GetAllMediaLibraryType.md deleted file mode 100644 index ec1382a1..00000000 --- a/docs/models/operations/GetAllMediaLibraryType.md +++ /dev/null @@ -1,15 +0,0 @@ -# GetAllMediaLibraryType - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `key` | *String* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 | -| `type` | *String* | :heavy_check_mark: | N/A | filter | -| `subtype` | *Optional\* | :heavy_minus_sign: | N/A | clip | -| `title` | *String* | :heavy_check_mark: | N/A | TV Shows | -| `active` | *boolean* | :heavy_check_mark: | N/A | false | -| `filter` | List\<[GetAllMediaLibraryFilter](../../models/operations/GetAllMediaLibraryFilter.md)> | :heavy_minus_sign: | N/A | | -| `sort` | List\<[GetAllMediaLibrarySort](../../models/operations/GetAllMediaLibrarySort.md)> | :heavy_minus_sign: | N/A | | -| `field` | List\<[GetAllMediaLibraryField](../../models/operations/GetAllMediaLibraryField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetCountriesLibraryQueryParamType.md b/docs/models/operations/GetCountriesLibraryQueryParamType.md index 722cb197..d29a551a 100644 --- a/docs/models/operations/GetCountriesLibraryQueryParamType.md +++ b/docs/models/operations/GetCountriesLibraryQueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetGenresLibraryQueryParamType.md b/docs/models/operations/GetGenresLibraryQueryParamType.md index 4ef877ed..9f1c2190 100644 --- a/docs/models/operations/GetGenresLibraryQueryParamType.md +++ b/docs/models/operations/GetGenresLibraryQueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsLibraryType.md b/docs/models/operations/GetLibraryItemsLibraryType.md index eae5ecb3..0f6999d8 100644 --- a/docs/models/operations/GetLibraryItemsLibraryType.md +++ b/docs/models/operations/GetLibraryItemsLibraryType.md @@ -1,16 +1,20 @@ # GetLibraryItemsLibraryType -The type of media content +The type of media content in the Plex library. This can represent videos, music, or photos. ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | -| `Artist` | artist | -| `Album` | album | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | +| `Artist` | artist | +| `Album` | album | +| `Track` | track | +| `PhotoAlbum` | photoalbum | +| `Photo` | photo | +| `Collection` | collection | \ No newline at end of file diff --git a/docs/models/operations/GetLibraryItemsMetadata.md b/docs/models/operations/GetLibraryItemsMetadata.md index 04fe9dc4..c565f0e1 100644 --- a/docs/models/operations/GetLibraryItemsMetadata.md +++ b/docs/models/operations/GetLibraryItemsMetadata.md @@ -13,7 +13,7 @@ | `librarySectionID` | *Optional\* | :heavy_minus_sign: | N/A | 1 | | `librarySectionTitle` | *Optional\* | :heavy_minus_sign: | N/A | Movies | | `librarySectionKey` | *Optional\* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `type` | [GetLibraryItemsLibraryType](../../models/operations/GetLibraryItemsLibraryType.md) | :heavy_check_mark: | The type of media content
| movie | +| `type` | [GetLibraryItemsLibraryType](../../models/operations/GetLibraryItemsLibraryType.md) | :heavy_check_mark: | The type of media content in the Plex library. This can represent videos, music, or photos.
| movie | | `title` | *String* | :heavy_check_mark: | N/A | Avatar: The Way of Water | | `slug` | *Optional\* | :heavy_minus_sign: | N/A | 4-for-texas | | `contentRating` | *Optional\* | :heavy_minus_sign: | N/A | PG-13 | diff --git a/docs/models/operations/GetLibraryItemsQueryParamType.md b/docs/models/operations/GetLibraryItemsQueryParamType.md index 2aa19a35..02791eae 100644 --- a/docs/models/operations/GetLibraryItemsQueryParamType.md +++ b/docs/models/operations/GetLibraryItemsQueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryActiveDirection.md b/docs/models/operations/GetLibrarySectionsAllActiveDirection.md similarity index 83% rename from docs/models/operations/GetAllMediaLibraryActiveDirection.md rename to docs/models/operations/GetLibrarySectionsAllActiveDirection.md index 459c02ec..ad9278ae 100644 --- a/docs/models/operations/GetAllMediaLibraryActiveDirection.md +++ b/docs/models/operations/GetLibrarySectionsAllActiveDirection.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryActiveDirection +# GetLibrarySectionsAllActiveDirection The direction of the sort. Can be either `asc` or `desc`. diff --git a/docs/models/operations/GetAllMediaLibraryCollection.md b/docs/models/operations/GetLibrarySectionsAllCollection.md similarity index 96% rename from docs/models/operations/GetAllMediaLibraryCollection.md rename to docs/models/operations/GetLibrarySectionsAllCollection.md index 8703942b..6a2db8f8 100644 --- a/docs/models/operations/GetAllMediaLibraryCollection.md +++ b/docs/models/operations/GetLibrarySectionsAllCollection.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryCollection +# GetLibrarySectionsAllCollection ## Fields diff --git a/docs/models/operations/GetAllMediaLibraryCountry.md b/docs/models/operations/GetLibrarySectionsAllCountry.md similarity index 95% rename from docs/models/operations/GetAllMediaLibraryCountry.md rename to docs/models/operations/GetLibrarySectionsAllCountry.md index 7c7f2342..8a7ea694 100644 --- a/docs/models/operations/GetAllMediaLibraryCountry.md +++ b/docs/models/operations/GetLibrarySectionsAllCountry.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryCountry +# GetLibrarySectionsAllCountry ## Fields diff --git a/docs/models/operations/GetAllMediaLibraryDefaultDirection.md b/docs/models/operations/GetLibrarySectionsAllDefaultDirection.md similarity index 83% rename from docs/models/operations/GetAllMediaLibraryDefaultDirection.md rename to docs/models/operations/GetLibrarySectionsAllDefaultDirection.md index 555c7c0b..3f423636 100644 --- a/docs/models/operations/GetAllMediaLibraryDefaultDirection.md +++ b/docs/models/operations/GetLibrarySectionsAllDefaultDirection.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryDefaultDirection +# GetLibrarySectionsAllDefaultDirection The direction of the sort. Can be either `asc` or `desc`. diff --git a/docs/models/operations/GetAllMediaLibraryDirector.md b/docs/models/operations/GetLibrarySectionsAllDirector.md similarity index 91% rename from docs/models/operations/GetAllMediaLibraryDirector.md rename to docs/models/operations/GetLibrarySectionsAllDirector.md index 0df1cf1b..0617247f 100644 --- a/docs/models/operations/GetAllMediaLibraryDirector.md +++ b/docs/models/operations/GetLibrarySectionsAllDirector.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryDirector +# GetLibrarySectionsAllDirector ## Fields diff --git a/docs/models/operations/GetAllMediaLibraryField.md b/docs/models/operations/GetLibrarySectionsAllField.md similarity index 95% rename from docs/models/operations/GetAllMediaLibraryField.md rename to docs/models/operations/GetLibrarySectionsAllField.md index bc2914a3..8dd30e5d 100644 --- a/docs/models/operations/GetAllMediaLibraryField.md +++ b/docs/models/operations/GetLibrarySectionsAllField.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryField +# GetLibrarySectionsAllField ## Fields diff --git a/docs/models/operations/GetLibrarySectionsAllFieldType.md b/docs/models/operations/GetLibrarySectionsAllFieldType.md new file mode 100644 index 00000000..55e629b9 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllFieldType.md @@ -0,0 +1,9 @@ +# GetLibrarySectionsAllFieldType + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `type` | *String* | :heavy_check_mark: | N/A | tag | +| `operator` | List\<[GetLibrarySectionsAllOperator](../../models/operations/GetLibrarySectionsAllOperator.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryFilter.md b/docs/models/operations/GetLibrarySectionsAllFilter.md similarity index 97% rename from docs/models/operations/GetAllMediaLibraryFilter.md rename to docs/models/operations/GetLibrarySectionsAllFilter.md index d9e53240..21288ace 100644 --- a/docs/models/operations/GetAllMediaLibraryFilter.md +++ b/docs/models/operations/GetLibrarySectionsAllFilter.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryFilter +# GetLibrarySectionsAllFilter ## Fields diff --git a/docs/models/operations/GetAllMediaLibraryGenre.md b/docs/models/operations/GetLibrarySectionsAllGenre.md similarity index 95% rename from docs/models/operations/GetAllMediaLibraryGenre.md rename to docs/models/operations/GetLibrarySectionsAllGenre.md index 574bd588..8b1e439a 100644 --- a/docs/models/operations/GetAllMediaLibraryGenre.md +++ b/docs/models/operations/GetLibrarySectionsAllGenre.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryGenre +# GetLibrarySectionsAllGenre ## Fields diff --git a/docs/models/operations/GetLibrarySectionsAllGuids.md b/docs/models/operations/GetLibrarySectionsAllGuids.md new file mode 100644 index 00000000..5f03536c --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllGuids.md @@ -0,0 +1,8 @@ +# GetLibrarySectionsAllGuids + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *String* | :heavy_check_mark: | The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
| {
"imdbExample": {
"summary": "IMDB example",
"value": "imdb://tt13015952"
},
"tmdbExample": {
"summary": "TMDB example",
"value": "tmdb://2434012"
},
"tvdbExample": {
"summary": "TVDB example",
"value": "tvdb://7945991"
}
} | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryHasThumbnail.md b/docs/models/operations/GetLibrarySectionsAllHasThumbnail.md similarity index 79% rename from docs/models/operations/GetAllMediaLibraryHasThumbnail.md rename to docs/models/operations/GetLibrarySectionsAllHasThumbnail.md index 7fd371e7..327600d2 100644 --- a/docs/models/operations/GetAllMediaLibraryHasThumbnail.md +++ b/docs/models/operations/GetLibrarySectionsAllHasThumbnail.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryHasThumbnail +# GetLibrarySectionsAllHasThumbnail Indicates if the part has a thumbnail. diff --git a/docs/models/operations/GetLibrarySectionsAllImage.md b/docs/models/operations/GetLibrarySectionsAllImage.md new file mode 100644 index 00000000..83896223 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllImage.md @@ -0,0 +1,10 @@ +# GetLibrarySectionsAllImage + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `alt` | *String* | :heavy_check_mark: | N/A | Episode 1 | +| `type` | [GetLibrarySectionsAllLibraryResponseType](../../models/operations/GetLibrarySectionsAllLibraryResponseType.md) | :heavy_check_mark: | N/A | background | +| `url` | *String* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.md b/docs/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.md similarity index 62% rename from docs/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.md rename to docs/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.md index 71356bca..dfad8eb2 100644 --- a/docs/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.md +++ b/docs/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryLibraryOptimizedForStreaming +# GetLibrarySectionsAllLibraryOptimizedForStreaming Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true diff --git a/docs/models/operations/GetAllMediaLibraryLibraryResponseType.md b/docs/models/operations/GetLibrarySectionsAllLibraryResponseType.md similarity index 84% rename from docs/models/operations/GetAllMediaLibraryLibraryResponseType.md rename to docs/models/operations/GetLibrarySectionsAllLibraryResponseType.md index effaf1c1..ce9af2ef 100644 --- a/docs/models/operations/GetAllMediaLibraryLibraryResponseType.md +++ b/docs/models/operations/GetLibrarySectionsAllLibraryResponseType.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryLibraryResponseType +# GetLibrarySectionsAllLibraryResponseType ## Values diff --git a/docs/models/operations/GetLibrarySectionsAllLibraryType.md b/docs/models/operations/GetLibrarySectionsAllLibraryType.md new file mode 100644 index 00000000..5b9c6fb0 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllLibraryType.md @@ -0,0 +1,20 @@ +# GetLibrarySectionsAllLibraryType + +The type of media content in the Plex library. This can represent videos, music, or photos. + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | +| `Artist` | artist | +| `Album` | album | +| `Track` | track | +| `PhotoAlbum` | photoalbum | +| `Photo` | photo | +| `Collection` | collection | \ No newline at end of file diff --git a/docs/models/operations/GetLibrarySectionsAllMedia.md b/docs/models/operations/GetLibrarySectionsAllMedia.md new file mode 100644 index 00000000..f168b277 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllMedia.md @@ -0,0 +1,26 @@ +# GetLibrarySectionsAllMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *long* | :heavy_check_mark: | Unique media identifier. | 387322 | +| `duration` | *Optional\* | :heavy_minus_sign: | Duration of the media in milliseconds. | 9610350 | +| `bitrate` | *Optional\* | :heavy_minus_sign: | Bitrate in bits per second. | 25512 | +| `width` | *Optional\* | :heavy_minus_sign: | Video width in pixels. | 3840 | +| `height` | *Optional\* | :heavy_minus_sign: | Video height in pixels. | 1602 | +| `aspectRatio` | *Optional\* | :heavy_minus_sign: | Aspect ratio of the video. | 2.35 | +| `audioChannels` | *Optional\* | :heavy_minus_sign: | Number of audio channels. | 6 | +| `displayOffset` | *Optional\* | :heavy_minus_sign: | N/A | 50 | +| `audioCodec` | *Optional\* | :heavy_minus_sign: | Audio codec used. | eac3 | +| `videoCodec` | *Optional\* | :heavy_minus_sign: | Video codec used. | hevc | +| `videoResolution` | *Optional\* | :heavy_minus_sign: | Video resolution (e.g., 4k). | 4k | +| `container` | *Optional\* | :heavy_minus_sign: | File container type. | mkv | +| `videoFrameRate` | *Optional\* | :heavy_minus_sign: | Frame rate of the video. Values found include NTSC, PAL, 24p
| 24p | +| `videoProfile` | *Optional\* | :heavy_minus_sign: | Video profile (e.g., main 10). | main 10 | +| `hasVoiceActivity` | *Optional\* | :heavy_minus_sign: | Indicates whether voice activity is detected. | false | +| `audioProfile` | *Optional\* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `optimizedForStreaming` | [Optional\](../../models/operations/GetLibrarySectionsAllOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `has64bitOffsets` | *Optional\* | :heavy_minus_sign: | N/A | false | +| `part` | List\<[GetLibrarySectionsAllPart](../../models/operations/GetLibrarySectionsAllPart.md)> | :heavy_minus_sign: | An array of parts for this media item. | | \ No newline at end of file diff --git a/docs/models/operations/GetLibrarySectionsAllMediaContainer.md b/docs/models/operations/GetLibrarySectionsAllMediaContainer.md new file mode 100644 index 00000000..92d3eb00 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllMediaContainer.md @@ -0,0 +1,26 @@ +# GetLibrarySectionsAllMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `totalSize` | *int* | :heavy_check_mark: | Total number of media items in the library. | 50 | +| `offset` | *long* | :heavy_check_mark: | Offset value for pagination. | 0 | +| `allowSync` | *boolean* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | +| `art` | *String* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg | +| `content` | *String* | :heavy_check_mark: | The content type or mode. | secondary | +| `identifier` | *String* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `librarySectionID` | *long* | :heavy_check_mark: | The unique identifier for the library section. | 2 | +| `librarySectionTitle` | *String* | :heavy_check_mark: | The title of the library section. | TV Series | +| `librarySectionUUID` | *Optional\* | :heavy_minus_sign: | The universally unique identifier for the library section. | e69655a2-ef48-4aba-bb19-0cc34d1e7d36 | +| `mediaTagPrefix` | *String* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `mediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 | +| `thumb` | *String* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png | +| `nocache` | *boolean* | :heavy_check_mark: | Specifies whether caching is disabled. | true | +| `title1` | *String* | :heavy_check_mark: | The primary title of the media container. | TV Series | +| `title2` | *String* | :heavy_check_mark: | The secondary title of the media container. | By Starring Actor | +| `viewGroup` | *String* | :heavy_check_mark: | Identifier for the view group layout. | secondary | +| `meta` | [Optional\](../../models/operations/GetLibrarySectionsAllMeta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
| | +| `metadata` | List\<[GetLibrarySectionsAllMetadata](../../models/operations/GetLibrarySectionsAllMetadata.md)> | :heavy_minus_sign: | An array of metadata items. | | \ No newline at end of file diff --git a/docs/models/operations/GetLibrarySectionsAllMeta.md b/docs/models/operations/GetLibrarySectionsAllMeta.md new file mode 100644 index 00000000..f98c2ebf --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllMeta.md @@ -0,0 +1,12 @@ +# GetLibrarySectionsAllMeta + +The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. + + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `type` | List\<[GetLibrarySectionsAllType](../../models/operations/GetLibrarySectionsAllType.md)> | :heavy_minus_sign: | N/A | +| `fieldType` | List\<[GetLibrarySectionsAllFieldType](../../models/operations/GetLibrarySectionsAllFieldType.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryMetadata.md b/docs/models/operations/GetLibrarySectionsAllMetadata.md similarity index 97% rename from docs/models/operations/GetAllMediaLibraryMetadata.md rename to docs/models/operations/GetLibrarySectionsAllMetadata.md index 9314b09f..c116bb2f 100644 --- a/docs/models/operations/GetAllMediaLibraryMetadata.md +++ b/docs/models/operations/GetLibrarySectionsAllMetadata.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryMetadata +# GetLibrarySectionsAllMetadata Unknown @@ -13,7 +13,7 @@ Unknown | `guid` | *String* | :heavy_check_mark: | The globally unique identifier for the media item. | plex://movie/5d7768ba96b655001fdc0408 | | `slug` | *String* | :heavy_check_mark: | A URL‐friendly version of the media title. | 4-for-texas | | `studio` | *Optional\* | :heavy_minus_sign: | The studio that produced the media item. | 20th Century Studios | -| `type` | [GetAllMediaLibraryLibraryType](../../models/operations/GetAllMediaLibraryLibraryType.md) | :heavy_check_mark: | N/A | movie | +| `type` | [GetLibrarySectionsAllLibraryType](../../models/operations/GetLibrarySectionsAllLibraryType.md) | :heavy_check_mark: | N/A | movie | | `title` | *String* | :heavy_check_mark: | The title of the media item. | Avatar: The Way of Water | | `titleSort` | *String* | :heavy_check_mark: | The sort title used for ordering media items. | Whale | | `contentRating` | *Optional\* | :heavy_minus_sign: | The content rating for the media item. | PG-13 | @@ -62,13 +62,13 @@ Unknown | `createdAtTZOffset` | *Optional\* | :heavy_minus_sign: | The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. | 0 | | `lastViewedAt` | *Optional\* | :heavy_minus_sign: | Unix timestamp for when the media item was last viewed. | 1682752242 | | `userRating` | *Optional\* | :heavy_minus_sign: | The rating provided by a user for the item. This value is expressed as a decimal number. | 10 | -| `image` | List\<[GetAllMediaLibraryImage](../../models/operations/GetAllMediaLibraryImage.md)> | :heavy_minus_sign: | N/A | | -| `ultraBlurColors` | [Optional\](../../models/operations/GetAllMediaLibraryUltraBlurColors.md) | :heavy_minus_sign: | N/A | | -| `media` | List\<[GetAllMediaLibraryMedia](../../models/operations/GetAllMediaLibraryMedia.md)> | :heavy_minus_sign: | N/A | | -| `genre` | List\<[GetAllMediaLibraryGenre](../../models/operations/GetAllMediaLibraryGenre.md)> | :heavy_minus_sign: | N/A | | -| `country` | List\<[GetAllMediaLibraryCountry](../../models/operations/GetAllMediaLibraryCountry.md)> | :heavy_minus_sign: | N/A | | -| `director` | List\<[GetAllMediaLibraryDirector](../../models/operations/GetAllMediaLibraryDirector.md)> | :heavy_minus_sign: | N/A | | -| `writer` | List\<[GetAllMediaLibraryWriter](../../models/operations/GetAllMediaLibraryWriter.md)> | :heavy_minus_sign: | N/A | | -| `role` | List\<[GetAllMediaLibraryRole](../../models/operations/GetAllMediaLibraryRole.md)> | :heavy_minus_sign: | N/A | | -| `guids` | List\<[GetAllMediaLibraryGuids](../../models/operations/GetAllMediaLibraryGuids.md)> | :heavy_minus_sign: | N/A | | -| `collection` | List\<[GetAllMediaLibraryCollection](../../models/operations/GetAllMediaLibraryCollection.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `image` | List\<[GetLibrarySectionsAllImage](../../models/operations/GetLibrarySectionsAllImage.md)> | :heavy_minus_sign: | N/A | | +| `ultraBlurColors` | [Optional\](../../models/operations/GetLibrarySectionsAllUltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `guids` | List\<[GetLibrarySectionsAllGuids](../../models/operations/GetLibrarySectionsAllGuids.md)> | :heavy_minus_sign: | N/A | | +| `media` | List\<[GetLibrarySectionsAllMedia](../../models/operations/GetLibrarySectionsAllMedia.md)> | :heavy_minus_sign: | N/A | | +| `genre` | List\<[GetLibrarySectionsAllGenre](../../models/operations/GetLibrarySectionsAllGenre.md)> | :heavy_minus_sign: | N/A | | +| `country` | List\<[GetLibrarySectionsAllCountry](../../models/operations/GetLibrarySectionsAllCountry.md)> | :heavy_minus_sign: | N/A | | +| `director` | List\<[GetLibrarySectionsAllDirector](../../models/operations/GetLibrarySectionsAllDirector.md)> | :heavy_minus_sign: | N/A | | +| `writer` | List\<[GetLibrarySectionsAllWriter](../../models/operations/GetLibrarySectionsAllWriter.md)> | :heavy_minus_sign: | N/A | | +| `role` | List\<[GetLibrarySectionsAllRole](../../models/operations/GetLibrarySectionsAllRole.md)> | :heavy_minus_sign: | N/A | | +| `collection` | List\<[GetLibrarySectionsAllCollection](../../models/operations/GetLibrarySectionsAllCollection.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryOperator.md b/docs/models/operations/GetLibrarySectionsAllOperator.md similarity index 93% rename from docs/models/operations/GetAllMediaLibraryOperator.md rename to docs/models/operations/GetLibrarySectionsAllOperator.md index 835cdd79..f5e0cea5 100644 --- a/docs/models/operations/GetAllMediaLibraryOperator.md +++ b/docs/models/operations/GetLibrarySectionsAllOperator.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryOperator +# GetLibrarySectionsAllOperator ## Fields diff --git a/docs/models/operations/GetAllMediaLibraryOptimizedForStreaming.md b/docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming.md similarity index 65% rename from docs/models/operations/GetAllMediaLibraryOptimizedForStreaming.md rename to docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming.md index a5138177..d06675ca 100644 --- a/docs/models/operations/GetAllMediaLibraryOptimizedForStreaming.md +++ b/docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryOptimizedForStreaming +# GetLibrarySectionsAllOptimizedForStreaming Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true diff --git a/docs/models/operations/GetAllMediaLibraryOptimizedForStreaming1.md b/docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.md similarity index 66% rename from docs/models/operations/GetAllMediaLibraryOptimizedForStreaming1.md rename to docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.md index 1779b091..75916606 100644 --- a/docs/models/operations/GetAllMediaLibraryOptimizedForStreaming1.md +++ b/docs/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryOptimizedForStreaming1 +# GetLibrarySectionsAllOptimizedForStreaming1 ## Values diff --git a/docs/models/operations/GetLibrarySectionsAllPart.md b/docs/models/operations/GetLibrarySectionsAllPart.md new file mode 100644 index 00000000..695f45f8 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllPart.md @@ -0,0 +1,23 @@ +# GetLibrarySectionsAllPart + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `accessible` | *Optional\* | :heavy_minus_sign: | Indicates if the part is accessible. | true | +| `exists` | *Optional\* | :heavy_minus_sign: | Indicates if the part exists. | true | +| `id` | *long* | :heavy_check_mark: | Unique part identifier. | 418385 | +| `key` | *String* | :heavy_check_mark: | Key to access this part. | /library/parts/418385/1735864239/file.mkv | +| `indexes` | *Optional\* | :heavy_minus_sign: | N/A | sd | +| `duration` | *Optional\* | :heavy_minus_sign: | Duration of the part in milliseconds. | 9610350 | +| `file` | *String* | :heavy_check_mark: | File path for the part. | /mnt/Movies_1/W/Wicked (2024).mkv | +| `size` | *long* | :heavy_check_mark: | File size in bytes. | 30649952104 | +| `packetLength` | *Optional\* | :heavy_minus_sign: | N/A | 188 | +| `container` | *Optional\* | :heavy_minus_sign: | Container format of the part. | mkv | +| `videoProfile` | *Optional\* | :heavy_minus_sign: | Video profile for the part. | main 10 | +| `audioProfile` | *Optional\* | :heavy_minus_sign: | The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). | dts | +| `has64bitOffsets` | *Optional\* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | [Optional\](../../models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.md) | :heavy_minus_sign: | Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true | | +| `hasThumbnail` | [Optional\](../../models/operations/GetLibrarySectionsAllHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | +| `stream` | List\<[GetLibrarySectionsAllStream](../../models/operations/GetLibrarySectionsAllStream.md)> | :heavy_minus_sign: | An array of streams for this part. | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.md b/docs/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.md similarity index 77% rename from docs/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.md rename to docs/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.md index 7991b444..7f157732 100644 --- a/docs/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.md +++ b/docs/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryQueryParamIncludeMeta +# GetLibrarySectionsAllQueryParamIncludeMeta Adds the Meta object to the response diff --git a/docs/models/operations/GetLibrarySectionsAllQueryParamType.md b/docs/models/operations/GetLibrarySectionsAllQueryParamType.md new file mode 100644 index 00000000..7e859e6a --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllQueryParamType.md @@ -0,0 +1,24 @@ +# GetLibrarySectionsAllQueryParamType + +The type of media to retrieve or filter by. +1 = movie +2 = show +3 = season +4 = episode +E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryRequest.md b/docs/models/operations/GetLibrarySectionsAllRequest.md similarity index 97% rename from docs/models/operations/GetAllMediaLibraryRequest.md rename to docs/models/operations/GetLibrarySectionsAllRequest.md index b10f3333..38dfe987 100644 --- a/docs/models/operations/GetAllMediaLibraryRequest.md +++ b/docs/models/operations/GetLibrarySectionsAllRequest.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryRequest +# GetLibrarySectionsAllRequest ## Fields @@ -6,8 +6,8 @@ | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | -| `type` | [GetAllMediaLibraryQueryParamType](../../models/operations/GetAllMediaLibraryQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | -| `includeMeta` | [Optional\](../../models/operations/GetAllMediaLibraryQueryParamIncludeMeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | +| `type` | [GetLibrarySectionsAllQueryParamType](../../models/operations/GetLibrarySectionsAllQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `includeMeta` | [Optional\](../../models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | | `includeGuids` | [Optional\](../../models/operations/QueryParamIncludeGuids.md) | :heavy_minus_sign: | Adds the Guid object to the response
| 1 | | `includeAdvanced` | [Optional\](../../models/operations/IncludeAdvanced.md) | :heavy_minus_sign: | N/A | 1 | | `includeCollections` | [Optional\](../../models/operations/QueryParamIncludeCollections.md) | :heavy_minus_sign: | N/A | 1 | diff --git a/docs/models/operations/GetAllMediaLibraryResponse.md b/docs/models/operations/GetLibrarySectionsAllResponse.md similarity index 94% rename from docs/models/operations/GetAllMediaLibraryResponse.md rename to docs/models/operations/GetLibrarySectionsAllResponse.md index a7308fa6..0f3c8f6e 100644 --- a/docs/models/operations/GetAllMediaLibraryResponse.md +++ b/docs/models/operations/GetLibrarySectionsAllResponse.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryResponse +# GetLibrarySectionsAllResponse ## Fields @@ -8,4 +8,4 @@ | `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\](../../models/operations/GetAllMediaLibraryResponseBody.md) | :heavy_minus_sign: | Successful response containing media container data. | \ No newline at end of file +| `object` | [Optional\](../../models/operations/GetLibrarySectionsAllResponseBody.md) | :heavy_minus_sign: | Successful response containing media container data. | \ No newline at end of file diff --git a/docs/models/operations/GetLibrarySectionsAllResponseBody.md b/docs/models/operations/GetLibrarySectionsAllResponseBody.md new file mode 100644 index 00000000..aa2b87e6 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllResponseBody.md @@ -0,0 +1,10 @@ +# GetLibrarySectionsAllResponseBody + +Successful response containing media container data. + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [Optional\](../../models/operations/GetLibrarySectionsAllMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryRole.md b/docs/models/operations/GetLibrarySectionsAllRole.md similarity index 97% rename from docs/models/operations/GetAllMediaLibraryRole.md rename to docs/models/operations/GetLibrarySectionsAllRole.md index 967a66af..1fab2205 100644 --- a/docs/models/operations/GetAllMediaLibraryRole.md +++ b/docs/models/operations/GetLibrarySectionsAllRole.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryRole +# GetLibrarySectionsAllRole ## Fields diff --git a/docs/models/operations/GetLibrarySectionsAllSort.md b/docs/models/operations/GetLibrarySectionsAllSort.md new file mode 100644 index 00000000..c98a497d --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllSort.md @@ -0,0 +1,15 @@ +# GetLibrarySectionsAllSort + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `default_` | *Optional\* | :heavy_minus_sign: | N/A | asc | +| `active` | *Optional\* | :heavy_minus_sign: | N/A | false | +| `activeDirection` | [Optional\](../../models/operations/GetLibrarySectionsAllActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `defaultDirection` | [Optional\](../../models/operations/GetLibrarySectionsAllDefaultDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `descKey` | *Optional\* | :heavy_minus_sign: | N/A | titleSort:desc | +| `firstCharacterKey` | *Optional\* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | +| `key` | *String* | :heavy_check_mark: | N/A | titleSort | +| `title` | *String* | :heavy_check_mark: | N/A | Title | \ No newline at end of file diff --git a/docs/models/operations/GetLibrarySectionsAllStream.md b/docs/models/operations/GetLibrarySectionsAllStream.md new file mode 100644 index 00000000..737ccf18 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllStream.md @@ -0,0 +1,58 @@ +# GetLibrarySectionsAllStream + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `id` | *long* | :heavy_check_mark: | Unique stream identifier. | 1002625 | +| `streamType` | [GetLibrarySectionsAllStreamType](../../models/operations/GetLibrarySectionsAllStreamType.md) | :heavy_check_mark: | Stream type:
- 1 = video
- 2 = audio
- 3 = subtitle
| 1 | +| `format` | *Optional\* | :heavy_minus_sign: | Format of the stream (e.g., srt). | srt | +| `default_` | *Optional\* | :heavy_minus_sign: | Indicates if this stream is default. | true | +| `codec` | *String* | :heavy_check_mark: | Codec used by the stream. | hevc | +| `index` | *Optional\* | :heavy_minus_sign: | Index of the stream. | 0 | +| `bitrate` | *Optional\* | :heavy_minus_sign: | Bitrate of the stream. | 24743 | +| `language` | *Optional\* | :heavy_minus_sign: | Language of the stream. | English | +| `languageTag` | *Optional\* | :heavy_minus_sign: | Language tag (e.g., en). | en | +| `languageCode` | *Optional\* | :heavy_minus_sign: | ISO language code. | eng | +| `headerCompression` | *Optional\* | :heavy_minus_sign: | Indicates whether header compression is enabled. | true | +| `doviblCompatID` | *Optional\* | :heavy_minus_sign: | Dolby Vision BL compatibility ID. | 1 | +| `doviblPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision BL is present. | true | +| `dovielPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision EL is present. | false | +| `doviLevel` | *Optional\* | :heavy_minus_sign: | Dolby Vision level. | 6 | +| `doviPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision is present. | true | +| `doviProfile` | *Optional\* | :heavy_minus_sign: | Dolby Vision profile. | 8 | +| `dovirpuPresent` | *Optional\* | :heavy_minus_sign: | Indicates if Dolby Vision RPU is present. | true | +| `doviVersion` | *Optional\* | :heavy_minus_sign: | Dolby Vision version. | 1.0 | +| `bitDepth` | *Optional\* | :heavy_minus_sign: | Bit depth of the video stream. | 10 | +| `chromaLocation` | *Optional\* | :heavy_minus_sign: | Chroma sample location. | topleft | +| `chromaSubsampling` | *Optional\* | :heavy_minus_sign: | Chroma subsampling format. | 4:2:0 | +| `codedHeight` | *Optional\* | :heavy_minus_sign: | Coded video height. | 1608 | +| `codedWidth` | *Optional\* | :heavy_minus_sign: | Coded video width. | 3840 | +| `closedCaptions` | *Optional\* | :heavy_minus_sign: | N/A | true | +| `colorPrimaries` | *Optional\* | :heavy_minus_sign: | Color primaries used. | bt2020 | +| `colorRange` | *Optional\* | :heavy_minus_sign: | Color range (e.g., tv). | tv | +| `colorSpace` | *Optional\* | :heavy_minus_sign: | Color space. | bt2020nc | +| `colorTrc` | *Optional\* | :heavy_minus_sign: | Color transfer characteristics. | smpte2084 | +| `frameRate` | *Optional\* | :heavy_minus_sign: | Frame rate of the stream. | 23.976 | +| `key` | *Optional\* | :heavy_minus_sign: | Key to access this stream part. | /library/streams/216389 | +| `height` | *Optional\* | :heavy_minus_sign: | Height of the video stream. | 1602 | +| `level` | *Optional\* | :heavy_minus_sign: | Video level. | 150 | +| `original` | *Optional\* | :heavy_minus_sign: | Indicates if this is the original stream. | true | +| `hasScalingMatrix` | *Optional\* | :heavy_minus_sign: | N/A | false | +| `profile` | *Optional\* | :heavy_minus_sign: | Video profile. | main 10 | +| `scanType` | *Optional\* | :heavy_minus_sign: | N/A | progressive | +| `embeddedInVideo` | *Optional\* | :heavy_minus_sign: | N/A | progressive | +| `refFrames` | *Optional\* | :heavy_minus_sign: | Number of reference frames. | 1 | +| `width` | *Optional\* | :heavy_minus_sign: | Width of the video stream. | 3840 | +| `displayTitle` | *String* | :heavy_check_mark: | Display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `extendedDisplayTitle` | *String* | :heavy_check_mark: | Extended display title for the stream. | 4K DoVi/HDR10 (HEVC Main 10) | +| `selected` | *Optional\* | :heavy_minus_sign: | Indicates if this stream is selected (applicable for audio streams). | true | +| `forced` | *Optional\* | :heavy_minus_sign: | N/A | true | +| `channels` | *Optional\* | :heavy_minus_sign: | Number of audio channels (for audio streams). | 6 | +| `audioChannelLayout` | *Optional\* | :heavy_minus_sign: | Audio channel layout. | 5.1(side) | +| `samplingRate` | *Optional\* | :heavy_minus_sign: | Sampling rate for the audio stream. | 48000 | +| `canAutoSync` | *Optional\* | :heavy_minus_sign: | Indicates if the stream can auto-sync. | false | +| `hearingImpaired` | *Optional\* | :heavy_minus_sign: | Indicates if the stream is for the hearing impaired. | true | +| `dub` | *Optional\* | :heavy_minus_sign: | Indicates if the stream is a dub. | true | +| `title` | *Optional\* | :heavy_minus_sign: | Optional title for the stream (e.g., language variant). | SDH | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryStreamType.md b/docs/models/operations/GetLibrarySectionsAllStreamType.md similarity index 86% rename from docs/models/operations/GetAllMediaLibraryStreamType.md rename to docs/models/operations/GetLibrarySectionsAllStreamType.md index 9156115f..07e53458 100644 --- a/docs/models/operations/GetAllMediaLibraryStreamType.md +++ b/docs/models/operations/GetLibrarySectionsAllStreamType.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryStreamType +# GetLibrarySectionsAllStreamType Stream type: - 1 = video diff --git a/docs/models/operations/GetLibrarySectionsAllType.md b/docs/models/operations/GetLibrarySectionsAllType.md new file mode 100644 index 00000000..c2377113 --- /dev/null +++ b/docs/models/operations/GetLibrarySectionsAllType.md @@ -0,0 +1,15 @@ +# GetLibrarySectionsAllType + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `key` | *String* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 | +| `type` | *String* | :heavy_check_mark: | N/A | filter | +| `subtype` | *Optional\* | :heavy_minus_sign: | N/A | clip | +| `title` | *String* | :heavy_check_mark: | N/A | TV Shows | +| `active` | *boolean* | :heavy_check_mark: | N/A | false | +| `filter` | List\<[GetLibrarySectionsAllFilter](../../models/operations/GetLibrarySectionsAllFilter.md)> | :heavy_minus_sign: | N/A | | +| `sort` | List\<[GetLibrarySectionsAllSort](../../models/operations/GetLibrarySectionsAllSort.md)> | :heavy_minus_sign: | N/A | | +| `field` | List\<[GetLibrarySectionsAllField](../../models/operations/GetLibrarySectionsAllField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetAllMediaLibraryUltraBlurColors.md b/docs/models/operations/GetLibrarySectionsAllUltraBlurColors.md similarity index 94% rename from docs/models/operations/GetAllMediaLibraryUltraBlurColors.md rename to docs/models/operations/GetLibrarySectionsAllUltraBlurColors.md index 0ab198f4..a2fca66e 100644 --- a/docs/models/operations/GetAllMediaLibraryUltraBlurColors.md +++ b/docs/models/operations/GetLibrarySectionsAllUltraBlurColors.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryUltraBlurColors +# GetLibrarySectionsAllUltraBlurColors ## Fields diff --git a/docs/models/operations/GetAllMediaLibraryWriter.md b/docs/models/operations/GetLibrarySectionsAllWriter.md similarity index 91% rename from docs/models/operations/GetAllMediaLibraryWriter.md rename to docs/models/operations/GetLibrarySectionsAllWriter.md index 86b344ee..2b631e3b 100644 --- a/docs/models/operations/GetAllMediaLibraryWriter.md +++ b/docs/models/operations/GetLibrarySectionsAllWriter.md @@ -1,4 +1,4 @@ -# GetAllMediaLibraryWriter +# GetLibrarySectionsAllWriter ## Fields diff --git a/docs/models/operations/GetMediaMetaDataCountry.md b/docs/models/operations/GetMediaMetaDataCountry.md index f93290be..69a85c79 100644 --- a/docs/models/operations/GetMediaMetaDataCountry.md +++ b/docs/models/operations/GetMediaMetaDataCountry.md @@ -5,8 +5,8 @@ The filter query string for country media items. ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -| `id` | *int* | :heavy_check_mark: | N/A | 259 | -| `tag` | *String* | :heavy_check_mark: | The country of origin of this media item | United States of America | -| `filter` | *Optional\* | :heavy_minus_sign: | N/A | country=19 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique identifier for the country.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `tag` | *String* | :heavy_check_mark: | The country of origin of this media item | United States of America | +| `filter` | *String* | :heavy_check_mark: | N/A | country=19 | \ No newline at end of file diff --git a/docs/models/operations/GetMediaMetaDataDirector.md b/docs/models/operations/GetMediaMetaDataDirector.md index 2a8b3a5f..caa01eb0 100644 --- a/docs/models/operations/GetMediaMetaDataDirector.md +++ b/docs/models/operations/GetMediaMetaDataDirector.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | Unique identifier for the director. | 126522 | -| `tag` | *String* | :heavy_check_mark: | The role of Director | Danny Boyle | -| `filter` | *String* | :heavy_check_mark: | The filter string used to query this director. | director=235876 | -| `tagKey` | *Optional\* | :heavy_minus_sign: | A unique key associated with the director's tag, used for internal identification. | 5d776831151a60001f24d031 | -| `thumb` | *Optional\* | :heavy_minus_sign: | The URL of the thumbnail image for the director. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique identifier for the director. | 126522 | +| `tag` | *String* | :heavy_check_mark: | The role of Director | Danny Boyle | +| `filter` | *String* | :heavy_check_mark: | The filter string used to query this director. | director=235876 | +| `tagKey` | *String* | :heavy_check_mark: | A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. | 5d776831151a60001f24d031 | +| `thumb` | *Optional\* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the director. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file diff --git a/docs/models/operations/GetMediaMetaDataGenre.md b/docs/models/operations/GetMediaMetaDataGenre.md index cbf5cff5..a0d5ddf3 100644 --- a/docs/models/operations/GetMediaMetaDataGenre.md +++ b/docs/models/operations/GetMediaMetaDataGenre.md @@ -5,8 +5,8 @@ The filter query string for similar items. ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | -| `id` | *long* | :heavy_check_mark: | N/A | 259 | -| `tag` | *String* | :heavy_check_mark: | The genre name of this media-item
| Crime | -| `filter` | *String* | :heavy_check_mark: | N/A | genre=19 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique identifier for the genre.
NOTE: This is different for each Plex server and is not globally unique.
| 259 | +| `tag` | *String* | :heavy_check_mark: | The genre name of this media-item
| Crime | +| `filter` | *String* | :heavy_check_mark: | N/A | genre=19 | \ No newline at end of file diff --git a/docs/models/operations/GetMediaMetaDataGuids.md b/docs/models/operations/GetMediaMetaDataGuids.md index aba75acb..e0ca4eb0 100644 --- a/docs/models/operations/GetMediaMetaDataGuids.md +++ b/docs/models/operations/GetMediaMetaDataGuids.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *String* | :heavy_check_mark: | The GUID value. | imdb://tt3032476 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *String* | :heavy_check_mark: | The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
| {
"imdbExample": {
"summary": "IMDB example",
"value": "imdb://tt13015952"
},
"tmdbExample": {
"summary": "TMDB example",
"value": "tmdb://2434012"
},
"tvdbExample": {
"summary": "TVDB example",
"value": "tvdb://7945991"
}
} | \ No newline at end of file diff --git a/docs/models/operations/GetMediaMetaDataMetadata.md b/docs/models/operations/GetMediaMetaDataMetadata.md index ce8071e1..8a2708e7 100644 --- a/docs/models/operations/GetMediaMetaDataMetadata.md +++ b/docs/models/operations/GetMediaMetaDataMetadata.md @@ -67,6 +67,7 @@ Unknown | `librarySectionID` | *long* | :heavy_check_mark: | The identifier for the library section. | 1 | | `librarySectionTitle` | *String* | :heavy_check_mark: | The title of the library section. | Movies | | `librarySectionKey` | *String* | :heavy_check_mark: | The key corresponding to the library section. | /library/sections/1 | +| `guids` | List\<[GetMediaMetaDataGuids](../../models/operations/GetMediaMetaDataGuids.md)> | :heavy_minus_sign: | N/A | | | `media` | List\<[GetMediaMetaDataMedia](../../models/operations/GetMediaMetaDataMedia.md)> | :heavy_minus_sign: | N/A | | | `genre` | List\<[GetMediaMetaDataGenre](../../models/operations/GetMediaMetaDataGenre.md)> | :heavy_minus_sign: | N/A | | | `country` | List\<[GetMediaMetaDataCountry](../../models/operations/GetMediaMetaDataCountry.md)> | :heavy_minus_sign: | N/A | | @@ -74,7 +75,6 @@ Unknown | `writer` | List\<[GetMediaMetaDataWriter](../../models/operations/GetMediaMetaDataWriter.md)> | :heavy_minus_sign: | N/A | | | `producer` | List\<[GetMediaMetaDataProducer](../../models/operations/GetMediaMetaDataProducer.md)> | :heavy_minus_sign: | N/A | | | `role` | List\<[GetMediaMetaDataRole](../../models/operations/GetMediaMetaDataRole.md)> | :heavy_minus_sign: | N/A | | -| `guids` | List\<[GetMediaMetaDataGuids](../../models/operations/GetMediaMetaDataGuids.md)> | :heavy_minus_sign: | N/A | | | `ratings` | List\<[Ratings](../../models/operations/Ratings.md)> | :heavy_minus_sign: | N/A | | | `similar` | List\<[GetMediaMetaDataSimilar](../../models/operations/GetMediaMetaDataSimilar.md)> | :heavy_minus_sign: | N/A | | | `location` | List\<[GetMediaMetaDataLocation](../../models/operations/GetMediaMetaDataLocation.md)> | :heavy_minus_sign: | N/A | | diff --git a/docs/models/operations/GetMediaMetaDataRequest.md b/docs/models/operations/GetMediaMetaDataRequest.md index 4f56f787..fb3ec4e9 100644 --- a/docs/models/operations/GetMediaMetaDataRequest.md +++ b/docs/models/operations/GetMediaMetaDataRequest.md @@ -3,19 +3,19 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `ratingKey` | *long* | :heavy_check_mark: | the id of the library item to return the children of. | 9518 | -| `includeConcerts` | *Optional\* | :heavy_minus_sign: | Include concerts data if set to true. | true | -| `includeExtras` | *Optional\* | :heavy_minus_sign: | Include extra content (e.g. bonus features). | true | -| `includeOnDeck` | *Optional\* | :heavy_minus_sign: | Include on-deck items. | true | -| `includePopularLeaves` | *Optional\* | :heavy_minus_sign: | Include popular leaves (episodes/chapters). | true | -| `includePreferences` | *Optional\* | :heavy_minus_sign: | Include preferences information. | true | -| `includeReviews` | *Optional\* | :heavy_minus_sign: | Include reviews for the content. | true | -| `includeChapters` | *Optional\* | :heavy_minus_sign: | Include chapter details. | true | -| `includeStations` | *Optional\* | :heavy_minus_sign: | Include station data. | true | -| `includeExternalMedia` | *Optional\* | :heavy_minus_sign: | Include external media data. | true | -| `asyncAugmentMetadata` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous metadata augmentation. | true | -| `asyncCheckFiles` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous file checking. | true | -| `asyncRefreshAnalysis` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous refresh of analysis. | true | -| `asyncRefreshLocalMediaAgent` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous refresh of the local media agent. | true | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `ratingKey` | *String* | :heavy_check_mark: | The id(s) of the library item(s) to return metadata for. Can be a single ID or comma-separated list of IDs. | 21119,21617 | +| `includeConcerts` | *Optional\* | :heavy_minus_sign: | Include concerts data if set to true. | true | +| `includeExtras` | *Optional\* | :heavy_minus_sign: | Include extra content (e.g. bonus features). | true | +| `includeOnDeck` | *Optional\* | :heavy_minus_sign: | Include on-deck items. | true | +| `includePopularLeaves` | *Optional\* | :heavy_minus_sign: | Include popular leaves (episodes/chapters). | true | +| `includePreferences` | *Optional\* | :heavy_minus_sign: | Include preferences information. | true | +| `includeReviews` | *Optional\* | :heavy_minus_sign: | Include reviews for the content. | true | +| `includeChapters` | *Optional\* | :heavy_minus_sign: | Include chapter details. | true | +| `includeStations` | *Optional\* | :heavy_minus_sign: | Include station data. | true | +| `includeExternalMedia` | *Optional\* | :heavy_minus_sign: | Include external media data. | true | +| `asyncAugmentMetadata` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous metadata augmentation. | true | +| `asyncCheckFiles` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous file checking. | true | +| `asyncRefreshAnalysis` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous refresh of analysis. | true | +| `asyncRefreshLocalMediaAgent` | *Optional\* | :heavy_minus_sign: | Trigger asynchronous refresh of the local media agent. | true | \ No newline at end of file diff --git a/docs/models/operations/GetMediaMetaDataRole.md b/docs/models/operations/GetMediaMetaDataRole.md index 85a07f35..ae44ed18 100644 --- a/docs/models/operations/GetMediaMetaDataRole.md +++ b/docs/models/operations/GetMediaMetaDataRole.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `id` | *long* | :heavy_check_mark: | Unique identifier for the actor or role. | 126522 | -| `tag` | *String* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | -| `role` | *Optional\* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | -| `filter` | *String* | :heavy_check_mark: | The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. | actor=126522 | -| `tagKey` | *Optional\* | :heavy_minus_sign: | A unique key associated with the actor's tag, used for internal identification. | 5d77683d85719b001f3a535e | -| `thumb` | *Optional\* | :heavy_minus_sign: | The URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique identifier for the role.
NOTE: This is different for each Plex server and is not globally unique.
| 126522 | +| `tag` | *String* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | +| `role` | *Optional\* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | +| `filter` | *String* | :heavy_check_mark: | The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. | actor=126522 | +| `tagKey` | *String* | :heavy_check_mark: | A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification.
NOTE: This is globally unique across all Plex Servers.
| 5d77683d85719b001f3a535e | +| `thumb` | *Optional\* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file diff --git a/docs/models/operations/GetMediaMetaDataType.md b/docs/models/operations/GetMediaMetaDataType.md index 02105f92..415e437d 100644 --- a/docs/models/operations/GetMediaMetaDataType.md +++ b/docs/models/operations/GetMediaMetaDataType.md @@ -1,16 +1,20 @@ # GetMediaMetaDataType -The type of media content +The type of media content in the Plex library. This can represent videos, music, or photos. ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | -| `Artist` | artist | -| `Album` | album | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | +| `Artist` | artist | +| `Album` | album | +| `Track` | track | +| `PhotoAlbum` | photoalbum | +| `Photo` | photo | +| `Collection` | collection | \ No newline at end of file diff --git a/docs/models/operations/GetMediaMetaDataWriter.md b/docs/models/operations/GetMediaMetaDataWriter.md index 3cab12fc..678e0986 100644 --- a/docs/models/operations/GetMediaMetaDataWriter.md +++ b/docs/models/operations/GetMediaMetaDataWriter.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | -| `tag` | *String* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | -| `filter` | *String* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 | -| `thumb` | *Optional\* | :heavy_minus_sign: | The URL of the thumbnail image for the writer. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | -| `tagKey` | *Optional\* | :heavy_minus_sign: | A unique key associated with the writers tag, used for internal identification. | 5d77683d85719b001f3a535e | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | +| `tag` | *String* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | +| `filter` | *String* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 | +| `thumb` | *Optional\* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the writer. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | +| `tagKey` | *Optional\* | :heavy_minus_sign: | A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. | 5d77683d85719b001f3a535e | \ No newline at end of file diff --git a/docs/models/operations/GetPlaylistContentsQueryParamType.md b/docs/models/operations/GetPlaylistContentsQueryParamType.md index 7d477fb1..fc52d53c 100644 --- a/docs/models/operations/GetPlaylistContentsQueryParamType.md +++ b/docs/models/operations/GetPlaylistContentsQueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedHubsType.md b/docs/models/operations/GetRecentlyAddedHubsType.md index 750ece05..4d903e95 100644 --- a/docs/models/operations/GetRecentlyAddedHubsType.md +++ b/docs/models/operations/GetRecentlyAddedHubsType.md @@ -1,16 +1,20 @@ # GetRecentlyAddedHubsType -The type of media content +The type of media content in the Plex library. This can represent videos, music, or photos. ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | -| `Artist` | artist | -| `Album` | album | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | +| `Artist` | artist | +| `Album` | album | +| `Track` | track | +| `PhotoAlbum` | photoalbum | +| `Photo` | photo | +| `Collection` | collection | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedMetadata.md b/docs/models/operations/GetRecentlyAddedMetadata.md index cdde6a5d..f86d4d9e 100644 --- a/docs/models/operations/GetRecentlyAddedMetadata.md +++ b/docs/models/operations/GetRecentlyAddedMetadata.md @@ -71,6 +71,7 @@ Unknown | `year` | *Optional\* | :heavy_minus_sign: | The release year of the media item. | 2022 | | `image` | List\<[GetRecentlyAddedImage](../../models/operations/GetRecentlyAddedImage.md)> | :heavy_minus_sign: | N/A | | | `ultraBlurColors` | [Optional\](../../models/operations/UltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `guids` | List\<[Guids](../../models/operations/Guids.md)> | :heavy_minus_sign: | N/A | | | `media` | List\<[Media](../../models/operations/Media.md)> | :heavy_minus_sign: | N/A | | | `genre` | List\<[Genre](../../models/operations/Genre.md)> | :heavy_minus_sign: | N/A | | | `country` | List\<[Country](../../models/operations/Country.md)> | :heavy_minus_sign: | N/A | | @@ -81,5 +82,4 @@ Unknown | `rating1` | List\<[Rating](../../models/operations/Rating.md)> | :heavy_minus_sign: | N/A | | | `similar` | List\<[Similar](../../models/operations/Similar.md)> | :heavy_minus_sign: | N/A | | | `location` | List\<[Location](../../models/operations/Location.md)> | :heavy_minus_sign: | N/A | | -| `guids` | List\<[Guids](../../models/operations/Guids.md)> | :heavy_minus_sign: | N/A | | | `collection` | List\<[Collection](../../models/operations/Collection.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetSearchAllLibrariesMetadata.md b/docs/models/operations/GetSearchAllLibrariesMetadata.md index 709b2395..3e3858a8 100644 --- a/docs/models/operations/GetSearchAllLibrariesMetadata.md +++ b/docs/models/operations/GetSearchAllLibrariesMetadata.md @@ -13,7 +13,7 @@ | `librarySectionID` | *Optional\* | :heavy_minus_sign: | N/A | 1 | | `librarySectionTitle` | *Optional\* | :heavy_minus_sign: | N/A | Movies | | `librarySectionKey` | *Optional\* | :heavy_minus_sign: | N/A | /library/sections/1 | -| `type` | [GetSearchAllLibrariesType](../../models/operations/GetSearchAllLibrariesType.md) | :heavy_check_mark: | The type of media content
| movie | +| `type` | [GetSearchAllLibrariesType](../../models/operations/GetSearchAllLibrariesType.md) | :heavy_check_mark: | The type of media content in the Plex library. This can represent videos, music, or photos.
| movie | | `title` | *String* | :heavy_check_mark: | N/A | Avatar: The Way of Water | | `slug` | *Optional\* | :heavy_minus_sign: | N/A | 4-for-texas | | `contentRating` | *Optional\* | :heavy_minus_sign: | N/A | PG-13 | diff --git a/docs/models/operations/GetSearchAllLibrariesType.md b/docs/models/operations/GetSearchAllLibrariesType.md index 427226fd..289c76f2 100644 --- a/docs/models/operations/GetSearchAllLibrariesType.md +++ b/docs/models/operations/GetSearchAllLibrariesType.md @@ -1,16 +1,20 @@ # GetSearchAllLibrariesType -The type of media content +The type of media content in the Plex library. This can represent videos, music, or photos. ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | -| `Artist` | artist | -| `Album` | album | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | +| `Artist` | artist | +| `Album` | album | +| `Track` | track | +| `PhotoAlbum` | photoalbum | +| `Photo` | photo | +| `Collection` | collection | \ No newline at end of file diff --git a/docs/models/operations/GetSearchLibraryQueryParamType.md b/docs/models/operations/GetSearchLibraryQueryParamType.md index 38b26848..698cb533 100644 --- a/docs/models/operations/GetSearchLibraryQueryParamType.md +++ b/docs/models/operations/GetSearchLibraryQueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetTopWatchedContentMediaContainer.md b/docs/models/operations/GetTopWatchedContentMediaContainer.md index b09c09c5..f22a63e7 100644 --- a/docs/models/operations/GetTopWatchedContentMediaContainer.md +++ b/docs/models/operations/GetTopWatchedContentMediaContainer.md @@ -5,9 +5,9 @@ | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `size` | *Optional\* | :heavy_minus_sign: | N/A | 1 | -| `allowSync` | *Optional\* | :heavy_minus_sign: | N/A | true | -| `identifier` | *Optional\* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `mediaTagPrefix` | *Optional\* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | -| `mediaTagVersion` | *Optional\* | :heavy_minus_sign: | N/A | 1698860922 | +| `size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 | +| `allowSync` | *boolean* | :heavy_check_mark: | Indicates whether syncing is allowed. | false | +| `identifier` | *String* | :heavy_check_mark: | An plugin identifier for the media container. | com.plexapp.plugins.library | +| `mediaTagPrefix` | *String* | :heavy_check_mark: | The prefix used for media tag resource paths. | /system/bundle/media/flags/ | +| `mediaTagVersion` | *long* | :heavy_check_mark: | The version number for media tags. | 1734362201 | | `metadata` | List\<[GetTopWatchedContentMetadata](../../models/operations/GetTopWatchedContentMetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetTopWatchedContentQueryParamIncludeGuids.md b/docs/models/operations/GetTopWatchedContentQueryParamIncludeGuids.md new file mode 100644 index 00000000..22fb318b --- /dev/null +++ b/docs/models/operations/GetTopWatchedContentQueryParamIncludeGuids.md @@ -0,0 +1,12 @@ +# GetTopWatchedContentQueryParamIncludeGuids + +Adds the Guid object to the response + + + +## Values + +| Name | Value | +| --------- | --------- | +| `Disable` | 0 | +| `Enable` | 1 | \ No newline at end of file diff --git a/docs/models/operations/GetTopWatchedContentQueryParamType.md b/docs/models/operations/GetTopWatchedContentQueryParamType.md index ada3d481..a2fedd2c 100644 --- a/docs/models/operations/GetTopWatchedContentQueryParamType.md +++ b/docs/models/operations/GetTopWatchedContentQueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/GetTopWatchedContentRequest.md b/docs/models/operations/GetTopWatchedContentRequest.md index d2bca25f..dc4de2fc 100644 --- a/docs/models/operations/GetTopWatchedContentRequest.md +++ b/docs/models/operations/GetTopWatchedContentRequest.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `includeGuids` | *Optional\* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | -| `type` | [GetTopWatchedContentQueryParamType](../../models/operations/GetTopWatchedContentQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | \ No newline at end of file +| `type` | [GetTopWatchedContentQueryParamType](../../models/operations/GetTopWatchedContentQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `includeGuids` | [Optional\](../../models/operations/GetTopWatchedContentQueryParamIncludeGuids.md) | :heavy_minus_sign: | Adds the Guid object to the response
| 1 | \ No newline at end of file diff --git a/docs/models/operations/Guids.md b/docs/models/operations/Guids.md index a182b2c9..cd6b0ff7 100644 --- a/docs/models/operations/Guids.md +++ b/docs/models/operations/Guids.md @@ -3,6 +3,6 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `id` | *Optional\* | :heavy_minus_sign: | The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337
| tvdb://2337 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *String* | :heavy_check_mark: | The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
| {
"imdbExample": {
"summary": "IMDB example",
"value": "imdb://tt13015952"
},
"tmdbExample": {
"summary": "TMDB example",
"value": "tmdb://2434012"
},
"tvdbExample": {
"summary": "TVDB example",
"value": "tvdb://7945991"
}
} | \ No newline at end of file diff --git a/docs/models/operations/Producer.md b/docs/models/operations/Producer.md index bbfc5b2f..ce96a71c 100644 --- a/docs/models/operations/Producer.md +++ b/docs/models/operations/Producer.md @@ -3,10 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | Unique identifier for the producer. | 126522 | -| `filter` | *String* | :heavy_check_mark: | The filter string used to query this producer. | producer=126522 | -| `tag` | *String* | :heavy_check_mark: | The name of the producer | Amelia Knapp | -| `tagKey` | *Optional\* | :heavy_minus_sign: | A unique key associated with the producer's tag, used for internal identification. | 5d77683d85719b001f3a535e | -| `thumb` | *Optional\* | :heavy_minus_sign: | The URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `id` | *int* | :heavy_check_mark: | Unique identifier for the producer. | 126522 | +| `filter` | *String* | :heavy_check_mark: | The filter string used to query this producer. | producer=126522 | +| `tag` | *String* | :heavy_check_mark: | The name of the producer | Amelia Knapp | +| `tagKey` | *String* | :heavy_check_mark: | A 24-character hexadecimal unique key associated with the producer's tag, used for internal identification.
| 5d77683d85719b001f3a535e | +| `thumb` | *Optional\* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the producer. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file diff --git a/docs/models/operations/QueryParamType.md b/docs/models/operations/QueryParamType.md index cfaf2bd3..6a256b32 100644 --- a/docs/models/operations/QueryParamType.md +++ b/docs/models/operations/QueryParamType.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/Rating.md b/docs/models/operations/Rating.md index 6086c732..22d6febc 100644 --- a/docs/models/operations/Rating.md +++ b/docs/models/operations/Rating.md @@ -5,8 +5,8 @@ The type of rating, for example 'audience' or 'critic'. ## Fields -| Field | Type | Required | Description | Example | -| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- | -| `image` | *String* | :heavy_check_mark: | N/A | imdb://image.rating | -| `value` | *double* | :heavy_check_mark: | N/A | 5.1 | -| `type` | *String* | :heavy_check_mark: | N/A | audience | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `image` | *String* | :heavy_check_mark: | The URL for the rating image, for example from IMDb. | imdb://image.rating | +| `value` | *float* | :heavy_check_mark: | N/A | 5.1 | +| `type` | *String* | :heavy_check_mark: | N/A | audience | \ No newline at end of file diff --git a/docs/models/operations/Role.md b/docs/models/operations/Role.md index e14588cb..f03c8cfb 100644 --- a/docs/models/operations/Role.md +++ b/docs/models/operations/Role.md @@ -3,11 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `id` | *long* | :heavy_check_mark: | Unique identifier for the actor or role. | 126522 | -| `filter` | *String* | :heavy_check_mark: | The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. | actor=126522 | -| `tag` | *String* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | -| `tagKey` | *Optional\* | :heavy_minus_sign: | A unique key associated with the actor's tag, used for internal identification. | 5d77683d85719b001f3a535e | -| `role` | *Optional\* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | -| `thumb` | *Optional\* | :heavy_minus_sign: | The URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | The unique identifier for the role.
NOTE: This is different for each Plex server and is not globally unique.
| 126522 | +| `filter` | *String* | :heavy_check_mark: | The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. | actor=126522 | +| `tag` | *String* | :heavy_check_mark: | The display tag for the actor (typically the actor's name). | Teller | +| `tagKey` | *String* | :heavy_check_mark: | A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification.
NOTE: This is globally unique across all Plex Servers.
| 5d77683d85719b001f3a535e | +| `role` | *Optional\* | :heavy_minus_sign: | The role played by the actor in the media item. | Self - Judge | +| `thumb` | *Optional\* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the actor. | https://metadata-static.plex.tv/7/people/708568fd018d7aa8b1032dcf867747e8.jpg | \ No newline at end of file diff --git a/docs/models/operations/Similar.md b/docs/models/operations/Similar.md index b7673023..29326165 100644 --- a/docs/models/operations/Similar.md +++ b/docs/models/operations/Similar.md @@ -7,6 +7,6 @@ The display tag for the similar item, typically the title. | Field | Type | Required | Description | Example | | --------------------- | --------------------- | --------------------- | --------------------- | --------------------- | -| `id` | *long* | :heavy_check_mark: | N/A | 259 | +| `id` | *int* | :heavy_check_mark: | N/A | 259 | | `filter` | *String* | :heavy_check_mark: | N/A | similar=259 | | `tag` | *String* | :heavy_check_mark: | N/A | Criss Angel Mindfreak | \ No newline at end of file diff --git a/docs/models/operations/Type.md b/docs/models/operations/Type.md index db3f9b7e..e353fcf8 100644 --- a/docs/models/operations/Type.md +++ b/docs/models/operations/Type.md @@ -11,12 +11,14 @@ E.g. A movie library will not return anything with type 3 as there are no season ## Values -| Name | Value | -| --------- | --------- | -| `Movie` | 1 | -| `TvShow` | 2 | -| `Season` | 3 | -| `Episode` | 4 | -| `Audio` | 8 | -| `Album` | 9 | -| `Track` | 10 | \ No newline at end of file +| Name | Value | +| ------------ | ------------ | +| `Movie` | 1 | +| `TvShow` | 2 | +| `Season` | 3 | +| `Episode` | 4 | +| `Artist` | 5 | +| `Album` | 6 | +| `Track` | 7 | +| `PhotoAlbum` | 8 | +| `Photo` | 9 | \ No newline at end of file diff --git a/docs/models/operations/Writer.md b/docs/models/operations/Writer.md index b070b9e1..4ece1c6e 100644 --- a/docs/models/operations/Writer.md +++ b/docs/models/operations/Writer.md @@ -3,9 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | -| `filter` | *String* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 | -| `tag` | *String* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | -| `tagKey` | *Optional\* | :heavy_minus_sign: | A unique key associated with the writers tag, used for internal identification. | 5d77683d85719b001f3a535e | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | Unique identifier for the writer. | 126522 | +| `filter` | *String* | :heavy_check_mark: | The filter string used to query this writer. | writer=126522 | +| `tag` | *String* | :heavy_check_mark: | The role of Writer | Jamie P. Hanson | +| `tagKey` | *Optional\* | :heavy_minus_sign: | A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. | 5d77683d85719b001f3a535e | +| `thumb` | *Optional\* | :heavy_minus_sign: | The absolute URL of the thumbnail image for the writer. | https://metadata-static.plex.tv/8/people/8d65fa96804802e08f2de09fe014408e.jpg | \ No newline at end of file diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index 9e7b8567..6c4c7deb 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -92,7 +92,7 @@ public class Application { .build(); GetSourceConnectionInformationResponse res = sdk.authentication().getSourceConnectionInformation() - .source("provider://provider-identifier") + .source("server://client-identifier") .call(); // handle response diff --git a/docs/sdks/butler/README.md b/docs/sdks/butler/README.md index 72e172b0..e24c4105 100644 --- a/docs/sdks/butler/README.md +++ b/docs/sdks/butler/README.md @@ -181,7 +181,7 @@ public class Application { .build(); StartTaskResponse res = sdk.butler().startTask() - .taskName(TaskName.CLEAN_OLD_BUNDLES) + .taskName(TaskName.REFRESH_PERIODIC_METADATA) .call(); // handle response @@ -233,7 +233,7 @@ public class Application { .build(); StopTaskResponse res = sdk.butler().stopTask() - .taskName(PathParamTaskName.BACKUP_DATABASE) + .taskName(PathParamTaskName.CLEAN_OLD_CACHE_FILES) .call(); // handle response diff --git a/docs/sdks/hubs/README.md b/docs/sdks/hubs/README.md index ff62672c..47f0a6cc 100644 --- a/docs/sdks/hubs/README.md +++ b/docs/sdks/hubs/README.md @@ -87,9 +87,10 @@ public class Application { .build(); GetRecentlyAddedRequest req = GetRecentlyAddedRequest.builder() - .contentDirectoryID(470161L) + .contentDirectoryID(39486L) .type(Type.TvShow) .sectionID(2L) + .includeMeta(IncludeMeta.Enable) .build(); GetRecentlyAddedResponse res = sdk.hubs().getRecentlyAdded() @@ -144,7 +145,7 @@ public class Application { .build(); GetLibraryHubsResponse res = sdk.hubs().getLibraryHubs() - .sectionId(6728.76) + .sectionId(492.74) .call(); if (res.object().isPresent()) { diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index 2037639a..09a263be 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -14,7 +14,7 @@ API Calls interacting with Plex Media Server Libraries * [getLibraryDetails](#getlibrarydetails) - Get Library Details * [deleteLibrary](#deletelibrary) - Delete Library Section * [getLibraryItems](#getlibraryitems) - Get Library Items -* [getAllMediaLibrary](#getallmedialibrary) - Get all media of library +* [getLibrarySectionsAll](#getlibrarysectionsall) - Get Library section media by tag ALL * [getRefreshLibraryMetadata](#getrefreshlibrarymetadata) - Refresh Metadata Of The Library * [getSearchLibrary](#getsearchlibrary) - Search Library * [getGenresLibrary](#getgenreslibrary) - Get Genres of library media @@ -122,6 +122,7 @@ public class Application { 16L, 17L)) .sectionID(2L) + .includeMeta(QueryParamIncludeMeta.Enable) .build(); GetRecentlyAddedLibraryResponse res = sdk.library().getRecentlyAddedLibrary() @@ -256,6 +257,7 @@ import dev.plexapi.sdk.PlexAPI; import dev.plexapi.sdk.models.errors.GetLibraryDetailsBadRequest; import dev.plexapi.sdk.models.errors.GetLibraryDetailsUnauthorized; import dev.plexapi.sdk.models.operations.GetLibraryDetailsResponse; +import dev.plexapi.sdk.models.operations.IncludeDetails; import java.lang.Exception; public class Application { @@ -267,6 +269,7 @@ public class Application { .build(); GetLibraryDetailsResponse res = sdk.library().getLibraryDetails() + .includeDetails(IncludeDetails.ZERO) .sectionKey(9518) .call(); @@ -391,9 +394,11 @@ public class Application { .build(); GetLibraryItemsRequest req = GetLibraryItemsRequest.builder() - .tag(Tag.EDITION) + .tag(Tag.NEWEST) .type(GetLibraryItemsQueryParamType.TvShow) .sectionKey(9518) + .includeGuids(IncludeGuids.Enable) + .includeMeta(GetLibraryItemsQueryParamIncludeMeta.Enable) .build(); GetLibraryItemsResponse res = sdk.library().getLibraryItems() @@ -425,7 +430,7 @@ public class Application { | models/errors/GetLibraryItemsUnauthorized | 401 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | -## getAllMediaLibrary +## getLibrarySectionsAll Retrieves a list of all general media data for this library. @@ -436,25 +441,30 @@ Retrieves a list of all general media data for this library. package hello.world; import dev.plexapi.sdk.PlexAPI; -import dev.plexapi.sdk.models.errors.GetAllMediaLibraryBadRequest; -import dev.plexapi.sdk.models.errors.GetAllMediaLibraryUnauthorized; +import dev.plexapi.sdk.models.errors.GetLibrarySectionsAllBadRequest; +import dev.plexapi.sdk.models.errors.GetLibrarySectionsAllUnauthorized; import dev.plexapi.sdk.models.operations.*; import java.lang.Exception; public class Application { - public static void main(String[] args) throws GetAllMediaLibraryBadRequest, GetAllMediaLibraryUnauthorized, Exception { + public static void main(String[] args) throws GetLibrarySectionsAllBadRequest, GetLibrarySectionsAllUnauthorized, Exception { PlexAPI sdk = PlexAPI.builder() .accessToken("") .build(); - GetAllMediaLibraryRequest req = GetAllMediaLibraryRequest.builder() + GetLibrarySectionsAllRequest req = GetLibrarySectionsAllRequest.builder() .sectionKey(9518) - .type(GetAllMediaLibraryQueryParamType.TvShow) + .type(GetLibrarySectionsAllQueryParamType.TvShow) + .includeMeta(GetLibrarySectionsAllQueryParamIncludeMeta.Enable) + .includeGuids(QueryParamIncludeGuids.Enable) + .includeAdvanced(IncludeAdvanced.Enable) + .includeCollections(QueryParamIncludeCollections.Enable) + .includeExternalMedia(QueryParamIncludeExternalMedia.Enable) .build(); - GetAllMediaLibraryResponse res = sdk.library().getAllMediaLibrary() + GetLibrarySectionsAllResponse res = sdk.library().getLibrarySectionsAll() .request(req) .call(); @@ -467,21 +477,21 @@ public class Application { ### Parameters -| Parameter | Type | Required | Description | -| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `request` | [GetAllMediaLibraryRequest](../../models/operations/GetAllMediaLibraryRequest.md) | :heavy_check_mark: | The request object to use for the request. | +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `request` | [GetLibrarySectionsAllRequest](../../models/operations/GetLibrarySectionsAllRequest.md) | :heavy_check_mark: | The request object to use for the request. | ### Response -**[GetAllMediaLibraryResponse](../../models/operations/GetAllMediaLibraryResponse.md)** +**[GetLibrarySectionsAllResponse](../../models/operations/GetLibrarySectionsAllResponse.md)** ### Errors -| Error Type | Status Code | Content Type | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| models/errors/GetAllMediaLibraryBadRequest | 400 | application/json | -| models/errors/GetAllMediaLibraryUnauthorized | 401 | application/json | -| models/errors/SDKError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| models/errors/GetLibrarySectionsAllBadRequest | 400 | application/json | +| models/errors/GetLibrarySectionsAllUnauthorized | 401 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | ## getRefreshLibraryMetadata @@ -509,7 +519,7 @@ public class Application { .build(); GetRefreshLibraryMetadataResponse res = sdk.library().getRefreshLibraryMetadata() - .force(Force.ONE) + .force(Force.ZERO) .sectionKey(9518) .call(); @@ -808,6 +818,8 @@ public class Application { .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .searchTypes(List.of( SearchTypes.PEOPLE)) + .includeCollections(GetSearchAllLibrariesQueryParamIncludeCollections.Enable) + .includeExternalMedia(GetSearchAllLibrariesQueryParamIncludeExternalMedia.Enable) .build(); GetSearchAllLibrariesResponse res = sdk.library().getSearchAllLibraries() @@ -841,7 +853,8 @@ public class Application { ## getMediaMetaData -This endpoint will return all the (meta)data of a library item specified with by the ratingKey. +This endpoint will return all the (meta)data of one or more library items specified by the ratingKey. +Multiple rating keys can be provided as a comma-separated list (e.g., "21119,21617"). ### Example Usage @@ -865,7 +878,7 @@ public class Application { .build(); GetMediaMetaDataRequest req = GetMediaMetaDataRequest.builder() - .ratingKey(9518L) + .ratingKey("21119,21617") .includeConcerts(true) .includeExtras(true) .includeOnDeck(true) @@ -1129,7 +1142,7 @@ public class Application { .build(); GetMetadataChildrenResponse res = sdk.library().getMetadataChildren() - .ratingKey(1539.14) + .ratingKey(2403.67) .includeElements("Stream") .call(); @@ -1172,8 +1185,7 @@ package hello.world; import dev.plexapi.sdk.PlexAPI; import dev.plexapi.sdk.models.errors.GetTopWatchedContentBadRequest; import dev.plexapi.sdk.models.errors.GetTopWatchedContentUnauthorized; -import dev.plexapi.sdk.models.operations.GetTopWatchedContentQueryParamType; -import dev.plexapi.sdk.models.operations.GetTopWatchedContentResponse; +import dev.plexapi.sdk.models.operations.*; import java.lang.Exception; public class Application { @@ -1185,8 +1197,8 @@ public class Application { .build(); GetTopWatchedContentResponse res = sdk.library().getTopWatchedContent() - .includeGuids(1L) .type(GetTopWatchedContentQueryParamType.TvShow) + .includeGuids(GetTopWatchedContentQueryParamIncludeGuids.Enable) .call(); if (res.object().isPresent()) { @@ -1200,8 +1212,8 @@ public class Application { | Parameter | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `includeGuids` | *Optional\* | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | | `type` | [GetTopWatchedContentQueryParamType](../../models/operations/GetTopWatchedContentQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve or filter by.
1 = movie
2 = show
3 = season
4 = episode
E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
| 2 | +| `includeGuids` | [Optional\](../../models/operations/GetTopWatchedContentQueryParamIncludeGuids.md) | :heavy_minus_sign: | Adds the Guid object to the response
| 1 | ### Response diff --git a/docs/sdks/playlists/README.md b/docs/sdks/playlists/README.md index 6917ff15..297b3f34 100644 --- a/docs/sdks/playlists/README.md +++ b/docs/sdks/playlists/README.md @@ -49,9 +49,9 @@ public class Application { CreatePlaylistRequest req = CreatePlaylistRequest.builder() .title("") - .type(CreatePlaylistQueryParamType.PHOTO) + .type(CreatePlaylistQueryParamType.AUDIO) .smart(Smart.ONE) - .uri("https://hoarse-testing.info/") + .uri("https://short-term-disconnection.name/") .build(); CreatePlaylistResponse res = sdk.playlists().createPlaylist() @@ -161,7 +161,7 @@ public class Application { .build(); GetPlaylistResponse res = sdk.playlists().getPlaylist() - .playlistID(4109.48) + .playlistID(8419.53) .call(); if (res.object().isPresent()) { @@ -214,7 +214,7 @@ public class Application { .build(); DeletePlaylistResponse res = sdk.playlists().deletePlaylist() - .playlistID(216.22) + .playlistID(3432.93) .call(); // handle response @@ -265,7 +265,7 @@ public class Application { .build(); UpdatePlaylistResponse res = sdk.playlists().updatePlaylist() - .playlistID(3915) + .playlistID(1579.66) .call(); // handle response @@ -322,7 +322,7 @@ public class Application { .build(); GetPlaylistContentsResponse res = sdk.playlists().getPlaylistContents() - .playlistID(5004.46) + .playlistID(5535.42) .type(GetPlaylistContentsQueryParamType.TvShow) .call(); @@ -377,7 +377,7 @@ public class Application { .build(); ClearPlaylistContentsResponse res = sdk.playlists().clearPlaylistContents() - .playlistID(1893.18) + .playlistID(4137.37) .call(); // handle response @@ -429,7 +429,7 @@ public class Application { .build(); AddPlaylistContentsResponse res = sdk.playlists().addPlaylistContents() - .playlistID(8502.01) + .playlistID(7013.44) .uri("server://12345/com.plexapp.plugins.library/library/metadata/1") .playQueueID(123) .call(); @@ -488,7 +488,7 @@ public class Application { UploadPlaylistResponse res = sdk.playlists().uploadPlaylist() .path("/home/barkley/playlist.m3u") - .force(QueryParamForce.ZERO) + .force(QueryParamForce.ONE) .sectionID(1L) .call(); diff --git a/docs/sdks/plex/README.md b/docs/sdks/plex/README.md index 3455106a..f1412602 100644 --- a/docs/sdks/plex/README.md +++ b/docs/sdks/plex/README.md @@ -225,7 +225,7 @@ package hello.world; import dev.plexapi.sdk.PlexAPI; import dev.plexapi.sdk.models.errors.GetServerResourcesBadRequest; import dev.plexapi.sdk.models.errors.GetServerResourcesUnauthorized; -import dev.plexapi.sdk.models.operations.GetServerResourcesResponse; +import dev.plexapi.sdk.models.operations.*; import java.lang.Exception; public class Application { @@ -237,6 +237,9 @@ public class Application { .build(); GetServerResourcesResponse res = sdk.plex().getServerResources() + .includeHttps(IncludeHttps.Enable) + .includeRelay(IncludeRelay.Enable) + .includeIPv6(IncludeIPv6.Enable) .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .call(); @@ -352,7 +355,7 @@ public class Application { .build(); GetTokenByPinIdRequest req = GetTokenByPinIdRequest.builder() - .pinID(408895L) + .pinID(232248L) .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .clientName("Plex for Roku") .deviceNickname("Roku 3") diff --git a/docs/sdks/search/README.md b/docs/sdks/search/README.md index 7636279c..88dd3f2a 100644 --- a/docs/sdks/search/README.md +++ b/docs/sdks/search/README.md @@ -48,7 +48,8 @@ public class Application { .build(); PerformSearchResponse res = sdk.search().performSearch() - .query("dylan") + .query("arnold") + .limit(5) .call(); // handle response @@ -105,6 +106,7 @@ public class Application { PerformVoiceSearchResponse res = sdk.search().performVoiceSearch() .query("dead+poop") + .limit(5) .call(); // handle response diff --git a/docs/sdks/server/README.md b/docs/sdks/server/README.md index c892151c..be685243 100644 --- a/docs/sdks/server/README.md +++ b/docs/sdks/server/README.md @@ -314,8 +314,8 @@ public class Application { .height(165) .opacity(100L) .blur(0) - .minSize(MinSize.ONE) - .upscale(Upscale.ONE) + .minSize(MinSize.ZERO) + .upscale(Upscale.ZERO) .url("/library/metadata/49564/thumb/1654258204") .build(); diff --git a/docs/sdks/watchlist/README.md b/docs/sdks/watchlist/README.md index a6b4d848..999b97d7 100644 --- a/docs/sdks/watchlist/README.md +++ b/docs/sdks/watchlist/README.md @@ -34,7 +34,7 @@ public class Application { .build(); GetWatchListRequest req = GetWatchListRequest.builder() - .filter(Filter.AVAILABLE) + .filter(Filter.RELEASED) .xPlexToken("CV5xoxjTpFKUzBTShsaf") .build(); diff --git a/gradle.properties b/gradle.properties index 39e5d980..83715b57 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ groupId=dev.plexapi artifactId=plexapi -version=0.16.2 \ No newline at end of file +version=0.17.0 \ No newline at end of file diff --git a/src/main/java/dev/plexapi/sdk/Activities.java b/src/main/java/dev/plexapi/sdk/Activities.java index c23a2bf2..a759b9c8 100644 --- a/src/main/java/dev/plexapi/sdk/Activities.java +++ b/src/main/java/dev/plexapi/sdk/Activities.java @@ -71,7 +71,7 @@ public class Activities implements */ public GetServerActivitiesResponse getServerActivitiesDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/activities"); @@ -81,14 +81,15 @@ public class Activities implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getServerActivities", Optional.of(List.of()), @@ -101,6 +102,7 @@ public class Activities implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerActivities", Optional.of(List.of()), @@ -111,6 +113,7 @@ public class Activities implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getServerActivities", Optional.of(List.of()), @@ -121,6 +124,7 @@ public class Activities implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerActivities", Optional.of(List.of()), @@ -242,7 +246,7 @@ public class Activities implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( CancelServerActivitiesRequest.class, _baseUrl, @@ -254,14 +258,15 @@ public class Activities implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "cancelServerActivities", Optional.of(List.of()), @@ -274,6 +279,7 @@ public class Activities implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "cancelServerActivities", Optional.of(List.of()), @@ -284,6 +290,7 @@ public class Activities implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "cancelServerActivities", Optional.of(List.of()), @@ -294,6 +301,7 @@ public class Activities implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "cancelServerActivities", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Authentication.java b/src/main/java/dev/plexapi/sdk/Authentication.java index de12e185..835c996f 100644 --- a/src/main/java/dev/plexapi/sdk/Authentication.java +++ b/src/main/java/dev/plexapi/sdk/Authentication.java @@ -109,7 +109,7 @@ public class Authentication implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/security/token"); @@ -124,14 +124,15 @@ public class Authentication implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getTransientToken", Optional.of(List.of()), @@ -144,6 +145,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTransientToken", Optional.of(List.of()), @@ -154,6 +156,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getTransientToken", Optional.of(List.of()), @@ -164,6 +167,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTransientToken", Optional.of(List.of()), @@ -276,7 +280,7 @@ public class Authentication implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/security/resources"); @@ -291,14 +295,15 @@ public class Authentication implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getSourceConnectionInformation", Optional.of(List.of()), @@ -311,6 +316,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSourceConnectionInformation", Optional.of(List.of()), @@ -321,6 +327,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getSourceConnectionInformation", Optional.of(List.of()), @@ -331,6 +338,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSourceConnectionInformation", Optional.of(List.of()), @@ -461,14 +469,15 @@ public class Authentication implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenDetails", Optional.of(List.of()), @@ -481,6 +490,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenDetails", Optional.of(List.of()), @@ -491,6 +501,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenDetails", Optional.of(List.of()), @@ -501,6 +512,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenDetails", Optional.of(List.of()), @@ -657,11 +669,12 @@ public class Authentication implements SDKConfiguration.USER_AGENT); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); Optional _hookSecuritySource = Optional.empty(); - HTTPClient _client = this.sdkConfiguration.defaultClient; + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "post-users-sign-in-data", Optional.of(List.of()), @@ -674,6 +687,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "post-users-sign-in-data", Optional.of(List.of()), @@ -684,6 +698,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "post-users-sign-in-data", Optional.of(List.of()), @@ -694,6 +709,7 @@ public class Authentication implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "post-users-sign-in-data", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Butler.java b/src/main/java/dev/plexapi/sdk/Butler.java index eb33357f..6e6622e5 100644 --- a/src/main/java/dev/plexapi/sdk/Butler.java +++ b/src/main/java/dev/plexapi/sdk/Butler.java @@ -83,7 +83,7 @@ public class Butler implements */ public GetButlerTasksResponse getButlerTasksDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/butler"); @@ -93,14 +93,15 @@ public class Butler implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getButlerTasks", Optional.of(List.of()), @@ -113,6 +114,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getButlerTasks", Optional.of(List.of()), @@ -123,6 +125,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getButlerTasks", Optional.of(List.of()), @@ -133,6 +136,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getButlerTasks", Optional.of(List.of()), @@ -254,7 +258,7 @@ public class Butler implements */ public StartAllTasksResponse startAllTasksDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/butler"); @@ -264,14 +268,15 @@ public class Butler implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "startAllTasks", Optional.of(List.of()), @@ -284,6 +289,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "startAllTasks", Optional.of(List.of()), @@ -294,6 +300,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "startAllTasks", Optional.of(List.of()), @@ -304,6 +311,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "startAllTasks", Optional.of(List.of()), @@ -406,7 +414,7 @@ public class Butler implements */ public StopAllTasksResponse stopAllTasksDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/butler"); @@ -416,14 +424,15 @@ public class Butler implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "stopAllTasks", Optional.of(List.of()), @@ -436,6 +445,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "stopAllTasks", Optional.of(List.of()), @@ -446,6 +456,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "stopAllTasks", Optional.of(List.of()), @@ -456,6 +467,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "stopAllTasks", Optional.of(List.of()), @@ -574,7 +586,7 @@ public class Butler implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( StartTaskRequest.class, _baseUrl, @@ -586,14 +598,15 @@ public class Butler implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "startTask", Optional.of(List.of()), @@ -606,6 +619,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "startTask", Optional.of(List.of()), @@ -616,6 +630,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "startTask", Optional.of(List.of()), @@ -626,6 +641,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "startTask", Optional.of(List.of()), @@ -736,7 +752,7 @@ public class Butler implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( StopTaskRequest.class, _baseUrl, @@ -748,14 +764,15 @@ public class Butler implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "stopTask", Optional.of(List.of()), @@ -768,6 +785,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "stopTask", Optional.of(List.of()), @@ -778,6 +796,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "stopTask", Optional.of(List.of()), @@ -788,6 +807,7 @@ public class Butler implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "stopTask", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Hubs.java b/src/main/java/dev/plexapi/sdk/Hubs.java index a4c61cab..85fa7a6c 100644 --- a/src/main/java/dev/plexapi/sdk/Hubs.java +++ b/src/main/java/dev/plexapi/sdk/Hubs.java @@ -98,7 +98,7 @@ public class Hubs implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/hubs"); @@ -113,14 +113,15 @@ public class Hubs implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getGlobalHubs", Optional.of(List.of()), @@ -133,6 +134,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getGlobalHubs", Optional.of(List.of()), @@ -143,6 +145,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getGlobalHubs", Optional.of(List.of()), @@ -153,6 +156,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getGlobalHubs", Optional.of(List.of()), @@ -268,7 +272,7 @@ public class Hubs implements public GetRecentlyAddedResponse getRecentlyAdded( GetRecentlyAddedRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/hubs/home/recentlyAdded"); @@ -283,14 +287,15 @@ public class Hubs implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added", Optional.of(List.of()), @@ -303,6 +308,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added", Optional.of(List.of()), @@ -313,6 +319,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added", Optional.of(List.of()), @@ -323,6 +330,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added", Optional.of(List.of()), @@ -432,7 +440,7 @@ public class Hubs implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetLibraryHubsRequest.class, _baseUrl, @@ -449,14 +457,15 @@ public class Hubs implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getLibraryHubs", Optional.of(List.of()), @@ -469,6 +478,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getLibraryHubs", Optional.of(List.of()), @@ -479,6 +489,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getLibraryHubs", Optional.of(List.of()), @@ -489,6 +500,7 @@ public class Hubs implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getLibraryHubs", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Library.java b/src/main/java/dev/plexapi/sdk/Library.java index c55276d2..d8951f7c 100644 --- a/src/main/java/dev/plexapi/sdk/Library.java +++ b/src/main/java/dev/plexapi/sdk/Library.java @@ -10,8 +10,6 @@ import dev.plexapi.sdk.models.errors.GetActorsLibraryBadRequest; import dev.plexapi.sdk.models.errors.GetActorsLibraryUnauthorized; import dev.plexapi.sdk.models.errors.GetAllLibrariesBadRequest; import dev.plexapi.sdk.models.errors.GetAllLibrariesUnauthorized; -import dev.plexapi.sdk.models.errors.GetAllMediaLibraryBadRequest; -import dev.plexapi.sdk.models.errors.GetAllMediaLibraryUnauthorized; import dev.plexapi.sdk.models.errors.GetCountriesLibraryBadRequest; import dev.plexapi.sdk.models.errors.GetCountriesLibraryUnauthorized; import dev.plexapi.sdk.models.errors.GetFileHashBadRequest; @@ -22,6 +20,8 @@ import dev.plexapi.sdk.models.errors.GetLibraryDetailsBadRequest; import dev.plexapi.sdk.models.errors.GetLibraryDetailsUnauthorized; import dev.plexapi.sdk.models.errors.GetLibraryItemsBadRequest; import dev.plexapi.sdk.models.errors.GetLibraryItemsUnauthorized; +import dev.plexapi.sdk.models.errors.GetLibrarySectionsAllBadRequest; +import dev.plexapi.sdk.models.errors.GetLibrarySectionsAllUnauthorized; import dev.plexapi.sdk.models.errors.GetMediaMetaDataBadRequest; import dev.plexapi.sdk.models.errors.GetMediaMetaDataUnauthorized; import dev.plexapi.sdk.models.errors.GetMetadataChildrenBadRequest; @@ -49,10 +49,6 @@ import dev.plexapi.sdk.models.operations.GetActorsLibraryResponseBody; import dev.plexapi.sdk.models.operations.GetAllLibrariesRequestBuilder; import dev.plexapi.sdk.models.operations.GetAllLibrariesResponse; import dev.plexapi.sdk.models.operations.GetAllLibrariesResponseBody; -import dev.plexapi.sdk.models.operations.GetAllMediaLibraryRequest; -import dev.plexapi.sdk.models.operations.GetAllMediaLibraryRequestBuilder; -import dev.plexapi.sdk.models.operations.GetAllMediaLibraryResponse; -import dev.plexapi.sdk.models.operations.GetAllMediaLibraryResponseBody; import dev.plexapi.sdk.models.operations.GetCountriesLibraryQueryParamType; import dev.plexapi.sdk.models.operations.GetCountriesLibraryRequest; import dev.plexapi.sdk.models.operations.GetCountriesLibraryRequestBuilder; @@ -74,6 +70,10 @@ import dev.plexapi.sdk.models.operations.GetLibraryItemsRequest; import dev.plexapi.sdk.models.operations.GetLibraryItemsRequestBuilder; import dev.plexapi.sdk.models.operations.GetLibraryItemsResponse; import dev.plexapi.sdk.models.operations.GetLibraryItemsResponseBody; +import dev.plexapi.sdk.models.operations.GetLibrarySectionsAllRequest; +import dev.plexapi.sdk.models.operations.GetLibrarySectionsAllRequestBuilder; +import dev.plexapi.sdk.models.operations.GetLibrarySectionsAllResponse; +import dev.plexapi.sdk.models.operations.GetLibrarySectionsAllResponseBody; import dev.plexapi.sdk.models.operations.GetMediaArtsRequest; import dev.plexapi.sdk.models.operations.GetMediaArtsRequestBuilder; import dev.plexapi.sdk.models.operations.GetMediaArtsResponse; @@ -106,6 +106,7 @@ import dev.plexapi.sdk.models.operations.GetSearchLibraryRequest; import dev.plexapi.sdk.models.operations.GetSearchLibraryRequestBuilder; import dev.plexapi.sdk.models.operations.GetSearchLibraryResponse; import dev.plexapi.sdk.models.operations.GetSearchLibraryResponseBody; +import dev.plexapi.sdk.models.operations.GetTopWatchedContentQueryParamIncludeGuids; import dev.plexapi.sdk.models.operations.GetTopWatchedContentQueryParamType; import dev.plexapi.sdk.models.operations.GetTopWatchedContentRequest; import dev.plexapi.sdk.models.operations.GetTopWatchedContentRequestBuilder; @@ -130,7 +131,6 @@ import dev.plexapi.sdk.utils.Utils; import java.io.InputStream; import java.lang.Double; import java.lang.Exception; -import java.lang.Long; import java.lang.Object; import java.lang.String; import java.net.http.HttpRequest; @@ -148,7 +148,7 @@ public class Library implements MethodCallGetLibraryDetails, MethodCallDeleteLibrary, MethodCallGetLibraryItems, - MethodCallGetAllMediaLibrary, + MethodCallGetLibrarySectionsAll, MethodCallGetRefreshLibraryMetadata, MethodCallGetSearchLibrary, MethodCallGetGenresLibrary, @@ -216,7 +216,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/library/hashes"); @@ -231,14 +231,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getFileHash", Optional.of(List.of()), @@ -251,6 +252,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getFileHash", Optional.of(List.of()), @@ -261,6 +263,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getFileHash", Optional.of(List.of()), @@ -271,6 +274,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getFileHash", Optional.of(List.of()), @@ -375,7 +379,7 @@ public class Library implements public GetRecentlyAddedLibraryResponse getRecentlyAddedLibrary( GetRecentlyAddedLibraryRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/library/recentlyAdded"); @@ -390,14 +394,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added-library", Optional.of(List.of()), @@ -410,6 +415,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added-library", Optional.of(List.of()), @@ -420,6 +426,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added-library", Optional.of(List.of()), @@ -430,6 +437,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-recently-added-library", Optional.of(List.of()), @@ -553,7 +561,7 @@ public class Library implements */ public GetAllLibrariesResponse getAllLibrariesDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/library/sections"); @@ -563,14 +571,15 @@ public class Library implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-all-libraries", Optional.of(List.of()), @@ -583,6 +592,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-all-libraries", Optional.of(List.of()), @@ -593,6 +603,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-all-libraries", Optional.of(List.of()), @@ -603,6 +614,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-all-libraries", Optional.of(List.of()), @@ -861,7 +873,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetLibraryDetailsRequest.class, _baseUrl, @@ -878,14 +890,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-details", Optional.of(List.of()), @@ -898,6 +911,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-details", Optional.of(List.of()), @@ -908,6 +922,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-details", Optional.of(List.of()), @@ -918,6 +933,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-details", Optional.of(List.of()), @@ -1041,7 +1057,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( DeleteLibraryRequest.class, _baseUrl, @@ -1053,14 +1069,15 @@ public class Library implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "deleteLibrary", Optional.of(List.of()), @@ -1073,6 +1090,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "deleteLibrary", Optional.of(List.of()), @@ -1083,6 +1101,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "deleteLibrary", Optional.of(List.of()), @@ -1093,6 +1112,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "deleteLibrary", Optional.of(List.of()), @@ -1237,7 +1257,7 @@ public class Library implements public GetLibraryItemsResponse getLibraryItems( GetLibraryItemsRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetLibraryItemsRequest.class, _baseUrl, @@ -1254,14 +1274,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-items", Optional.of(List.of()), @@ -1274,6 +1295,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-items", Optional.of(List.of()), @@ -1284,6 +1306,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-items", Optional.of(List.of()), @@ -1294,6 +1317,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-library-items", Optional.of(List.of()), @@ -1387,18 +1411,18 @@ public class Library implements /** - * Get all media of library + * Get Library section media by tag ALL * *

Retrieves a list of all general media data for this library. * * @return The call builder */ - public GetAllMediaLibraryRequestBuilder getAllMediaLibrary() { - return new GetAllMediaLibraryRequestBuilder(this); + public GetLibrarySectionsAllRequestBuilder getLibrarySectionsAll() { + return new GetLibrarySectionsAllRequestBuilder(this); } /** - * Get all media of library + * Get Library section media by tag ALL * *

Retrieves a list of all general media data for this library. * @@ -1406,12 +1430,12 @@ public class Library implements * @return The response from the API call * @throws Exception if the API call fails */ - public GetAllMediaLibraryResponse getAllMediaLibrary( - GetAllMediaLibraryRequest request) throws Exception { + public GetLibrarySectionsAllResponse getLibrarySectionsAll( + GetLibrarySectionsAllRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( - GetAllMediaLibraryRequest.class, + GetLibrarySectionsAllRequest.class, _baseUrl, "/library/sections/{sectionKey}/all", request, null); @@ -1422,20 +1446,21 @@ public class Library implements SDKConfiguration.USER_AGENT); _req.addQueryParams(Utils.getQueryParams( - GetAllMediaLibraryRequest.class, + GetLibrarySectionsAllRequest.class, request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, - "get-all-media-library", + "get-library-sections-all", Optional.of(List.of()), _hookSecuritySource), _req.build()); @@ -1446,8 +1471,9 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, - "get-all-media-library", + "get-library-sections-all", Optional.of(List.of()), _hookSecuritySource), Optional.of(_httpRes), @@ -1456,8 +1482,9 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, - "get-all-media-library", + "get-library-sections-all", Optional.of(List.of()), _hookSecuritySource), _httpRes); @@ -1466,8 +1493,9 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, - "get-all-media-library", + "get-library-sections-all", Optional.of(List.of()), _hookSecuritySource), Optional.empty(), @@ -1477,20 +1505,20 @@ public class Library implements .headers() .firstValue("Content-Type") .orElse("application/octet-stream"); - GetAllMediaLibraryResponse.Builder _resBuilder = - GetAllMediaLibraryResponse + GetLibrarySectionsAllResponse.Builder _resBuilder = + GetLibrarySectionsAllResponse .builder() .contentType(_contentType) .statusCode(_httpRes.statusCode()) .rawResponse(_httpRes); - GetAllMediaLibraryResponse _res = _resBuilder.build(); + GetLibrarySectionsAllResponse _res = _resBuilder.build(); if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) { if (Utils.contentTypeMatches(_contentType, "application/json")) { - GetAllMediaLibraryResponseBody _out = Utils.mapper().readValue( + GetLibrarySectionsAllResponseBody _out = Utils.mapper().readValue( Utils.toUtf8AndClose(_httpRes.body()), - new TypeReference() {}); + new TypeReference() {}); _res.withObject(Optional.ofNullable(_out)); return _res; } else { @@ -1503,9 +1531,9 @@ public class Library implements } if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) { if (Utils.contentTypeMatches(_contentType, "application/json")) { - GetAllMediaLibraryBadRequest _out = Utils.mapper().readValue( + GetLibrarySectionsAllBadRequest _out = Utils.mapper().readValue( Utils.toUtf8AndClose(_httpRes.body()), - new TypeReference() {}); + new TypeReference() {}); _out.withRawResponse(Optional.ofNullable(_httpRes)); throw _out; @@ -1519,9 +1547,9 @@ public class Library implements } if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) { if (Utils.contentTypeMatches(_contentType, "application/json")) { - GetAllMediaLibraryUnauthorized _out = Utils.mapper().readValue( + GetLibrarySectionsAllUnauthorized _out = Utils.mapper().readValue( Utils.toUtf8AndClose(_httpRes.body()), - new TypeReference() {}); + new TypeReference() {}); _out.withRawResponse(Optional.ofNullable(_httpRes)); throw _out; @@ -1608,7 +1636,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetRefreshLibraryMetadataRequest.class, _baseUrl, @@ -1625,14 +1653,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-refresh-library-metadata", Optional.of(List.of()), @@ -1645,6 +1674,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-refresh-library-metadata", Optional.of(List.of()), @@ -1655,6 +1685,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-refresh-library-metadata", Optional.of(List.of()), @@ -1665,6 +1696,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-refresh-library-metadata", Optional.of(List.of()), @@ -1820,7 +1852,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetSearchLibraryRequest.class, _baseUrl, @@ -1837,14 +1869,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-library", Optional.of(List.of()), @@ -1857,6 +1890,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-library", Optional.of(List.of()), @@ -1867,6 +1901,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-library", Optional.of(List.of()), @@ -1877,6 +1912,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-library", Optional.of(List.of()), @@ -2009,7 +2045,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetGenresLibraryRequest.class, _baseUrl, @@ -2026,14 +2062,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-genres-library", Optional.of(List.of()), @@ -2046,6 +2083,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-genres-library", Optional.of(List.of()), @@ -2056,6 +2094,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-genres-library", Optional.of(List.of()), @@ -2066,6 +2105,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-genres-library", Optional.of(List.of()), @@ -2198,7 +2238,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetCountriesLibraryRequest.class, _baseUrl, @@ -2215,14 +2255,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-countries-library", Optional.of(List.of()), @@ -2235,6 +2276,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-countries-library", Optional.of(List.of()), @@ -2245,6 +2287,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-countries-library", Optional.of(List.of()), @@ -2255,6 +2298,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-countries-library", Optional.of(List.of()), @@ -2387,7 +2431,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetActorsLibraryRequest.class, _baseUrl, @@ -2404,14 +2448,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-actors-library", Optional.of(List.of()), @@ -2424,6 +2469,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-actors-library", Optional.of(List.of()), @@ -2434,6 +2480,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-actors-library", Optional.of(List.of()), @@ -2444,6 +2491,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-actors-library", Optional.of(List.of()), @@ -2559,7 +2607,7 @@ public class Library implements public GetSearchAllLibrariesResponse getSearchAllLibraries( GetSearchAllLibrariesRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/library/search"); @@ -2575,14 +2623,15 @@ public class Library implements null)); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-all-libraries", Optional.of(List.of()), @@ -2595,6 +2644,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-all-libraries", Optional.of(List.of()), @@ -2605,6 +2655,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-all-libraries", Optional.of(List.of()), @@ -2615,6 +2666,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-search-all-libraries", Optional.of(List.of()), @@ -2710,7 +2762,8 @@ public class Library implements /** * Get Media Metadata * - *

This endpoint will return all the (meta)data of a library item specified with by the ratingKey. + *

This endpoint will return all the (meta)data of one or more library items specified by the ratingKey. + * Multiple rating keys can be provided as a comma-separated list (e.g., "21119,21617"). * * @return The call builder */ @@ -2721,7 +2774,8 @@ public class Library implements /** * Get Media Metadata * - *

This endpoint will return all the (meta)data of a library item specified with by the ratingKey. + *

This endpoint will return all the (meta)data of one or more library items specified by the ratingKey. + * Multiple rating keys can be provided as a comma-separated list (e.g., "21119,21617"). * * @param request The request object containing all of the parameters for the API call. * @return The response from the API call @@ -2730,7 +2784,7 @@ public class Library implements public GetMediaMetaDataResponse getMediaMetaData( GetMediaMetaDataRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetMediaMetaDataRequest.class, _baseUrl, @@ -2747,14 +2801,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-meta-data", Optional.of(List.of()), @@ -2767,6 +2822,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-meta-data", Optional.of(List.of()), @@ -2777,6 +2833,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-meta-data", Optional.of(List.of()), @@ -2787,6 +2844,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-meta-data", Optional.of(List.of()), @@ -2908,7 +2966,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetMediaArtsRequest.class, _baseUrl, @@ -2920,14 +2978,15 @@ public class Library implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-arts", Optional.of(List.of()), @@ -2940,6 +2999,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-arts", Optional.of(List.of()), @@ -2950,6 +3010,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-arts", Optional.of(List.of()), @@ -2960,6 +3021,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-arts", Optional.of(List.of()), @@ -3069,7 +3131,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( PostMediaArtsRequest.class, _baseUrl, @@ -3096,14 +3158,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-arts", Optional.of(List.of()), @@ -3116,6 +3179,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-arts", Optional.of(List.of()), @@ -3126,6 +3190,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-arts", Optional.of(List.of()), @@ -3136,6 +3201,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-arts", Optional.of(List.of()), @@ -3214,7 +3280,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetMediaPostersRequest.class, _baseUrl, @@ -3226,14 +3292,15 @@ public class Library implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-posters", Optional.of(List.of()), @@ -3246,6 +3313,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-posters", Optional.of(List.of()), @@ -3256,6 +3324,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-posters", Optional.of(List.of()), @@ -3266,6 +3335,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-posters", Optional.of(List.of()), @@ -3375,7 +3445,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( PostMediaPosterRequest.class, _baseUrl, @@ -3402,14 +3472,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-poster", Optional.of(List.of()), @@ -3422,6 +3493,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-poster", Optional.of(List.of()), @@ -3432,6 +3504,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-poster", Optional.of(List.of()), @@ -3442,6 +3515,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "post-media-poster", Optional.of(List.of()), @@ -3538,7 +3612,7 @@ public class Library implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetMetadataChildrenRequest.class, _baseUrl, @@ -3555,14 +3629,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getMetadataChildren", Optional.of(List.of()), @@ -3575,6 +3650,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getMetadataChildren", Optional.of(List.of()), @@ -3585,6 +3661,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getMetadataChildren", Optional.of(List.of()), @@ -3595,6 +3672,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getMetadataChildren", Optional.of(List.of()), @@ -3715,7 +3793,7 @@ public class Library implements */ public GetTopWatchedContentResponse getTopWatchedContent( GetTopWatchedContentQueryParamType type) throws Exception { - return getTopWatchedContent(Optional.empty(), type); + return getTopWatchedContent(type, Optional.empty()); } /** @@ -3723,8 +3801,6 @@ public class Library implements * *

This endpoint will return the top watched content from libraries of a certain type * - * @param includeGuids Adds the Guids object to the response - * * @param type The type of media to retrieve or filter by. * 1 = movie * 2 = show @@ -3732,21 +3808,23 @@ public class Library implements * 4 = episode * E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries * + * @param includeGuids Adds the Guid object to the response + * * @return The response from the API call * @throws Exception if the API call fails */ public GetTopWatchedContentResponse getTopWatchedContent( - Optional includeGuids, - GetTopWatchedContentQueryParamType type) throws Exception { + GetTopWatchedContentQueryParamType type, + Optional includeGuids) throws Exception { GetTopWatchedContentRequest request = GetTopWatchedContentRequest .builder() - .includeGuids(includeGuids) .type(type) + .includeGuids(includeGuids) .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/library/all/top"); @@ -3761,14 +3839,15 @@ public class Library implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getTopWatchedContent", Optional.of(List.of()), @@ -3781,6 +3860,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTopWatchedContent", Optional.of(List.of()), @@ -3791,6 +3871,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getTopWatchedContent", Optional.of(List.of()), @@ -3801,6 +3882,7 @@ public class Library implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTopWatchedContent", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Log.java b/src/main/java/dev/plexapi/sdk/Log.java index 6292cd92..1bf76d80 100644 --- a/src/main/java/dev/plexapi/sdk/Log.java +++ b/src/main/java/dev/plexapi/sdk/Log.java @@ -93,7 +93,7 @@ public class Log implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/log"); @@ -108,14 +108,15 @@ public class Log implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "logLine", Optional.of(List.of()), @@ -128,6 +129,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "logLine", Optional.of(List.of()), @@ -138,6 +140,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "logLine", Optional.of(List.of()), @@ -148,6 +151,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "logLine", Optional.of(List.of()), @@ -292,7 +296,7 @@ public class Log implements public LogMultiLineResponse logMultiLine( String request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/log"); @@ -315,14 +319,15 @@ public class Log implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "logMultiLine", Optional.of(List.of()), @@ -335,6 +340,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "logMultiLine", Optional.of(List.of()), @@ -345,6 +351,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "logMultiLine", Optional.of(List.of()), @@ -355,6 +362,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "logMultiLine", Optional.of(List.of()), @@ -457,7 +465,7 @@ public class Log implements */ public EnablePaperTrailResponse enablePaperTrailDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/log/networked"); @@ -467,14 +475,15 @@ public class Log implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "enablePaperTrail", Optional.of(List.of()), @@ -487,6 +496,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "enablePaperTrail", Optional.of(List.of()), @@ -497,6 +507,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "enablePaperTrail", Optional.of(List.of()), @@ -507,6 +518,7 @@ public class Log implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "enablePaperTrail", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Media.java b/src/main/java/dev/plexapi/sdk/Media.java index a6c758cc..0337b9e4 100644 --- a/src/main/java/dev/plexapi/sdk/Media.java +++ b/src/main/java/dev/plexapi/sdk/Media.java @@ -91,7 +91,7 @@ public class Media implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/:/scrobble"); @@ -106,14 +106,15 @@ public class Media implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "markPlayed", Optional.of(List.of()), @@ -126,6 +127,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "markPlayed", Optional.of(List.of()), @@ -136,6 +138,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "markPlayed", Optional.of(List.of()), @@ -146,6 +149,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "markPlayed", Optional.of(List.of()), @@ -256,7 +260,7 @@ public class Media implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/:/unscrobble"); @@ -271,14 +275,15 @@ public class Media implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "markUnplayed", Optional.of(List.of()), @@ -291,6 +296,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "markUnplayed", Optional.of(List.of()), @@ -301,6 +307,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "markUnplayed", Optional.of(List.of()), @@ -311,6 +318,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "markUnplayed", Optional.of(List.of()), @@ -427,7 +435,7 @@ public class Media implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/:/progress"); @@ -442,14 +450,15 @@ public class Media implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlayProgress", Optional.of(List.of()), @@ -462,6 +471,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlayProgress", Optional.of(List.of()), @@ -472,6 +482,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlayProgress", Optional.of(List.of()), @@ -482,6 +493,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlayProgress", Optional.of(List.of()), @@ -586,7 +598,7 @@ public class Media implements public GetBannerImageResponse getBannerImage( GetBannerImageRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetBannerImageRequest.class, _baseUrl, @@ -604,14 +616,15 @@ public class Media implements null)); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-banner-image", Optional.of(List.of()), @@ -624,6 +637,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-banner-image", Optional.of(List.of()), @@ -634,6 +648,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-banner-image", Optional.of(List.of()), @@ -644,6 +659,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-banner-image", Optional.of(List.of()), @@ -759,7 +775,7 @@ public class Media implements public GetThumbImageResponse getThumbImage( GetThumbImageRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetThumbImageRequest.class, _baseUrl, @@ -777,14 +793,15 @@ public class Media implements null)); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-thumb-image", Optional.of(List.of()), @@ -797,6 +814,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-thumb-image", Optional.of(List.of()), @@ -807,6 +825,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-thumb-image", Optional.of(List.of()), @@ -817,6 +836,7 @@ public class Media implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-thumb-image", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Playlists.java b/src/main/java/dev/plexapi/sdk/Playlists.java index fe2f3200..a8a3776f 100644 --- a/src/main/java/dev/plexapi/sdk/Playlists.java +++ b/src/main/java/dev/plexapi/sdk/Playlists.java @@ -126,7 +126,7 @@ public class Playlists implements public CreatePlaylistResponse createPlaylist( CreatePlaylistRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/playlists"); @@ -141,14 +141,15 @@ public class Playlists implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "createPlaylist", Optional.of(List.of()), @@ -161,6 +162,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "createPlaylist", Optional.of(List.of()), @@ -171,6 +173,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "createPlaylist", Optional.of(List.of()), @@ -181,6 +184,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "createPlaylist", Optional.of(List.of()), @@ -317,7 +321,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/playlists"); @@ -332,14 +336,15 @@ public class Playlists implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylists", Optional.of(List.of()), @@ -352,6 +357,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylists", Optional.of(List.of()), @@ -362,6 +368,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylists", Optional.of(List.of()), @@ -372,6 +379,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylists", Optional.of(List.of()), @@ -495,7 +503,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetPlaylistRequest.class, _baseUrl, @@ -507,14 +515,15 @@ public class Playlists implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylist", Optional.of(List.of()), @@ -527,6 +536,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylist", Optional.of(List.of()), @@ -537,6 +547,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylist", Optional.of(List.of()), @@ -547,6 +558,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylist", Optional.of(List.of()), @@ -668,7 +680,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( DeletePlaylistRequest.class, _baseUrl, @@ -680,14 +692,15 @@ public class Playlists implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "deletePlaylist", Optional.of(List.of()), @@ -700,6 +713,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "deletePlaylist", Optional.of(List.of()), @@ -710,6 +724,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "deletePlaylist", Optional.of(List.of()), @@ -720,6 +735,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "deletePlaylist", Optional.of(List.of()), @@ -850,7 +866,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( UpdatePlaylistRequest.class, _baseUrl, @@ -867,14 +883,15 @@ public class Playlists implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlaylist", Optional.of(List.of()), @@ -887,6 +904,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlaylist", Optional.of(List.of()), @@ -897,6 +915,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlaylist", Optional.of(List.of()), @@ -907,6 +926,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "updatePlaylist", Optional.of(List.of()), @@ -1032,7 +1052,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( GetPlaylistContentsRequest.class, _baseUrl, @@ -1049,14 +1069,15 @@ public class Playlists implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylistContents", Optional.of(List.of()), @@ -1069,6 +1090,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylistContents", Optional.of(List.of()), @@ -1079,6 +1101,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylistContents", Optional.of(List.of()), @@ -1089,6 +1112,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPlaylistContents", Optional.of(List.of()), @@ -1210,7 +1234,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( ClearPlaylistContentsRequest.class, _baseUrl, @@ -1222,14 +1246,15 @@ public class Playlists implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "clearPlaylistContents", Optional.of(List.of()), @@ -1242,6 +1267,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "clearPlaylistContents", Optional.of(List.of()), @@ -1252,6 +1278,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "clearPlaylistContents", Optional.of(List.of()), @@ -1262,6 +1289,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "clearPlaylistContents", Optional.of(List.of()), @@ -1397,7 +1425,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( AddPlaylistContentsRequest.class, _baseUrl, @@ -1414,14 +1442,15 @@ public class Playlists implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "addPlaylistContents", Optional.of(List.of()), @@ -1434,6 +1463,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "addPlaylistContents", Optional.of(List.of()), @@ -1444,6 +1474,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "addPlaylistContents", Optional.of(List.of()), @@ -1454,6 +1485,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "addPlaylistContents", Optional.of(List.of()), @@ -1591,7 +1623,7 @@ public class Playlists implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/playlists/upload"); @@ -1606,14 +1638,15 @@ public class Playlists implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "uploadPlaylist", Optional.of(List.of()), @@ -1626,6 +1659,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "uploadPlaylist", Optional.of(List.of()), @@ -1636,6 +1670,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "uploadPlaylist", Optional.of(List.of()), @@ -1646,6 +1681,7 @@ public class Playlists implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "uploadPlaylist", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Plex.java b/src/main/java/dev/plexapi/sdk/Plex.java index e017d6d6..eb39c3cc 100644 --- a/src/main/java/dev/plexapi/sdk/Plex.java +++ b/src/main/java/dev/plexapi/sdk/Plex.java @@ -171,14 +171,15 @@ public class Plex implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getCompanionsData", Optional.of(List.of()), @@ -191,6 +192,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getCompanionsData", Optional.of(List.of()), @@ -201,6 +203,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getCompanionsData", Optional.of(List.of()), @@ -211,6 +214,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getCompanionsData", Optional.of(List.of()), @@ -352,14 +356,15 @@ public class Plex implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getUserFriends", Optional.of(List.of()), @@ -372,6 +377,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getUserFriends", Optional.of(List.of()), @@ -382,6 +388,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getUserFriends", Optional.of(List.of()), @@ -392,6 +399,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getUserFriends", Optional.of(List.of()), @@ -533,11 +541,12 @@ public class Plex implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); Optional _hookSecuritySource = Optional.empty(); - HTTPClient _client = this.sdkConfiguration.defaultClient; + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getGeoData", Optional.of(List.of()), @@ -550,6 +559,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getGeoData", Optional.of(List.of()), @@ -560,6 +570,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getGeoData", Optional.of(List.of()), @@ -570,6 +581,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getGeoData", Optional.of(List.of()), @@ -683,7 +695,7 @@ public class Plex implements */ public GetHomeDataResponse getHomeDataDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/home"); @@ -693,14 +705,15 @@ public class Plex implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getHomeData", Optional.of(List.of()), @@ -713,6 +726,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getHomeData", Optional.of(List.of()), @@ -723,6 +737,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getHomeData", Optional.of(List.of()), @@ -733,6 +748,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getHomeData", Optional.of(List.of()), @@ -901,14 +917,15 @@ public class Plex implements null)); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-resources", Optional.of(List.of()), @@ -921,6 +938,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-resources", Optional.of(List.of()), @@ -931,6 +949,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-resources", Optional.of(List.of()), @@ -941,6 +960,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-resources", Optional.of(List.of()), @@ -1092,11 +1112,12 @@ public class Plex implements null)); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); Optional _hookSecuritySource = Optional.empty(); - HTTPClient _client = this.sdkConfiguration.defaultClient; + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getPin", Optional.of(List.of()), @@ -1109,6 +1130,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPin", Optional.of(List.of()), @@ -1119,6 +1141,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getPin", Optional.of(List.of()), @@ -1129,6 +1152,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getPin", Optional.of(List.of()), @@ -1261,11 +1285,12 @@ public class Plex implements SDKConfiguration.USER_AGENT); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); Optional _hookSecuritySource = Optional.empty(); - HTTPClient _client = this.sdkConfiguration.defaultClient; + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenByPinId", Optional.of(List.of()), @@ -1278,6 +1303,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenByPinId", Optional.of(List.of()), @@ -1288,6 +1314,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenByPinId", Optional.of(List.of()), @@ -1298,6 +1325,7 @@ public class Plex implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTokenByPinId", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/PlexAPI.java b/src/main/java/dev/plexapi/sdk/PlexAPI.java index 7ece0143..15072e7b 100644 --- a/src/main/java/dev/plexapi/sdk/PlexAPI.java +++ b/src/main/java/dev/plexapi/sdk/PlexAPI.java @@ -5,8 +5,8 @@ package dev.plexapi.sdk; import com.fasterxml.jackson.annotation.JsonValue; import dev.plexapi.sdk.utils.HTTPClient; +import dev.plexapi.sdk.utils.Hook.SdkInitData; import dev.plexapi.sdk.utils.RetryConfig; -import dev.plexapi.sdk.utils.SpeakeasyHTTPClient; import dev.plexapi.sdk.utils.Utils; import java.lang.String; import java.util.Map; @@ -52,7 +52,7 @@ public class PlexAPI { /** * The full address of your Plex Server */ - "https://10.10.10.47:32400", + "{protocol}://{ip}:{port}", }; /** @@ -273,7 +273,7 @@ public class PlexAPI { return users; } - private final SDKConfiguration sdkConfiguration; + private SDKConfiguration sdkConfiguration; /** * The Builder class allows the configuration of a new instance of the SDK. @@ -281,6 +281,9 @@ public class PlexAPI { public static class Builder { private final SDKConfiguration sdkConfiguration = new SDKConfiguration(); + private String serverUrl; + private String server; + private Builder() { } @@ -292,7 +295,7 @@ public class PlexAPI { * @return The builder instance. */ public Builder client(HTTPClient client) { - this.sdkConfiguration.defaultClient = client; + this.sdkConfiguration.setClient(client); return this; } /** @@ -302,9 +305,9 @@ public class PlexAPI { * @return The builder instance. */ public Builder accessToken(String accessToken) { - this.sdkConfiguration.securitySource = SecuritySource.of(dev.plexapi.sdk.models.shared.Security.builder() + this.sdkConfiguration.setSecuritySource(SecuritySource.of(dev.plexapi.sdk.models.shared.Security.builder() .accessToken(accessToken) - .build()); + .build())); return this; } @@ -315,7 +318,8 @@ public class PlexAPI { * @return The builder instance. */ public Builder securitySource(SecuritySource securitySource) { - this.sdkConfiguration.securitySource = securitySource; + Utils.checkNotNull(securitySource, "securitySource"); + this.sdkConfiguration.setSecuritySource(securitySource); return this; } @@ -326,7 +330,7 @@ public class PlexAPI { * @return The builder instance. */ public Builder serverURL(String serverUrl) { - this.sdkConfiguration.serverUrl = serverUrl; + this.serverUrl = serverUrl; return this; } @@ -338,7 +342,7 @@ public class PlexAPI { * @return The builder instance. */ public Builder serverURL(String serverUrl, Map params) { - this.sdkConfiguration.serverUrl = Utils.templateUrl(serverUrl, params); + this.serverUrl = Utils.templateUrl(serverUrl, params); return this; } @@ -349,8 +353,8 @@ public class PlexAPI { * @return The builder instance. */ public Builder serverIndex(int serverIdx) { - this.sdkConfiguration.serverIdx = serverIdx; - this.sdkConfiguration.serverUrl = SERVERS[serverIdx]; + this.sdkConfiguration.setServerIdx(serverIdx); + this.serverUrl= SERVERS[serverIdx]; return this; } @@ -361,7 +365,7 @@ public class PlexAPI { * @return The builder instance. */ public Builder retryConfig(RetryConfig retryConfig) { - this.sdkConfiguration.retryConfig = Optional.of(retryConfig); + this.sdkConfiguration.setRetryConfig(Optional.of(retryConfig)); return this; } /** @@ -400,7 +404,7 @@ public class PlexAPI { * @return The builder instance. */ public Builder protocol(ServerProtocol protocol) { - for (Map server : this.sdkConfiguration.serverDefaults) { + for (Map server : this.sdkConfiguration.serverVariables()) { if (!server.containsKey("protocol")) { continue; } @@ -417,7 +421,7 @@ public class PlexAPI { * @return The builder instance. */ public Builder ip(String ip) { - for (Map server : this.sdkConfiguration.serverDefaults) { + for (Map server : this.sdkConfiguration.serverVariables()) { if (!server.containsKey("ip")) { continue; } @@ -434,7 +438,7 @@ public class PlexAPI { * @return The builder instance. */ public Builder port(String port) { - for (Map server : this.sdkConfiguration.serverDefaults) { + for (Map server : this.sdkConfiguration.serverVariables()) { if (!server.containsKey("port")) { continue; } @@ -462,19 +466,11 @@ public class PlexAPI { * @return The SDK instance. */ public PlexAPI build() { - if (sdkConfiguration.defaultClient == null) { - sdkConfiguration.defaultClient = new SpeakeasyHTTPClient(); - } - if (sdkConfiguration.securitySource == null) { - sdkConfiguration.securitySource = SecuritySource.of(null); - } - if (sdkConfiguration.serverUrl == null || sdkConfiguration.serverUrl.isBlank()) { - sdkConfiguration.serverUrl = SERVERS[0]; - sdkConfiguration.serverIdx = 0; - } - if (sdkConfiguration.serverUrl.endsWith("/")) { - sdkConfiguration.serverUrl = sdkConfiguration.serverUrl.substring(0, sdkConfiguration.serverUrl.length() - 1); + if (serverUrl == null || serverUrl.isBlank()) { + serverUrl = SERVERS[0]; + sdkConfiguration.setServerIdx(0); } + sdkConfiguration.setServerUrl(serverUrl); return new PlexAPI(sdkConfiguration); } } @@ -490,6 +486,7 @@ public class PlexAPI { private PlexAPI(SDKConfiguration sdkConfiguration) { this.sdkConfiguration = sdkConfiguration; + this.sdkConfiguration.initialize(); this.server = new Server(sdkConfiguration); this.media = new Media(sdkConfiguration); this.video = new Video(sdkConfiguration); @@ -507,6 +504,9 @@ public class PlexAPI { this.sessions = new Sessions(sdkConfiguration); this.updater = new Updater(sdkConfiguration); this.users = new Users(sdkConfiguration); - this.sdkConfiguration.initialize(); + + SdkInitData data = this.sdkConfiguration.hooks().sdkInit(new SdkInitData(this.sdkConfiguration.resolvedServerUrl(), this.sdkConfiguration.client())); + this.sdkConfiguration.setServerUrl(data.baseUrl()); + this.sdkConfiguration.setClient(data.client()); } } diff --git a/src/main/java/dev/plexapi/sdk/SDKConfiguration.java b/src/main/java/dev/plexapi/sdk/SDKConfiguration.java index 6f414fad..c6b3439a 100644 --- a/src/main/java/dev/plexapi/sdk/SDKConfiguration.java +++ b/src/main/java/dev/plexapi/sdk/SDKConfiguration.java @@ -5,9 +5,9 @@ package dev.plexapi.sdk; import dev.plexapi.sdk.hooks.SDKHooks; import dev.plexapi.sdk.utils.HTTPClient; -import dev.plexapi.sdk.utils.Hook.SdkInitData; import dev.plexapi.sdk.utils.Hooks; import dev.plexapi.sdk.utils.RetryConfig; +import dev.plexapi.sdk.utils.SpeakeasyHTTPClient; import dev.plexapi.sdk.utils.Utils; import java.lang.String; import java.lang.SuppressWarnings; @@ -17,38 +17,87 @@ import java.util.List; import java.util.Map; import java.util.Optional; -class SDKConfiguration { - public SecuritySource securitySource; +public class SDKConfiguration { + + private static final String LANGUAGE = "java"; + public static final String OPENAPI_DOC_VERSION = "0.0.3"; + public static final String SDK_VERSION = "0.17.0"; + public static final String GEN_VERSION = "2.620.2"; + private static final String BASE_PACKAGE = "dev.plexapi.sdk"; + public static final String USER_AGENT = + String.format("speakeasy-sdk/%s %s %s %s %s", + LANGUAGE, SDK_VERSION, GEN_VERSION, OPENAPI_DOC_VERSION, BASE_PACKAGE); + + private SecuritySource securitySource = SecuritySource.of(null); - public Optional securitySource() { - return Optional.ofNullable(securitySource); + public SecuritySource securitySource() { + return securitySource; } - public HTTPClient defaultClient; + public void setSecuritySource(SecuritySource securitySource) { + Utils.checkNotNull(securitySource, "securitySource"); + this.securitySource = securitySource; + } - public String serverUrl; + private HTTPClient client = new SpeakeasyHTTPClient(); + + public HTTPClient client() { + return client; + } + + public void setClient(HTTPClient client) { + Utils.checkNotNull(client, "client"); + this.client = client; + } + + private String serverUrl; + + public String serverUrl() { + return serverUrl; + } + + public void setServerUrl(String serverUrl) { + Utils.checkNotNull(serverUrl, "serverUrl"); + this.serverUrl = trimFinalSlash(serverUrl); + } + + private static String trimFinalSlash(String url) { + if (url == null) { + return null; + } else if (url.endsWith("/")) { + return url.substring(0, url.length() - 1); + } else { + return url; + } + } public String resolvedServerUrl() { return Utils.templateUrl(serverUrl, getServerVariableDefaults()); } - public int serverIdx = 0; + + private int serverIdx = 0; + + public void setServerIdx(int serverIdx) { + this.serverIdx = serverIdx; + } + + public int serverIdx() { + return serverIdx; + } + @SuppressWarnings("serial") - List> serverDefaults = new ArrayList<>(){ { + private List> serverVariables = new ArrayList<>(){ { add(new HashMap<>(){ { put("protocol", "https"); put("ip", "10.10.10.47"); put("port", "32400"); } }); } }; - private static final String LANGUAGE = "java"; - public static final String OPENAPI_DOC_VERSION = "0.0.3"; - public static final String SDK_VERSION = "0.16.2"; - public static final String GEN_VERSION = "2.597.9"; - private static final String BASE_PACKAGE = "dev.plexapi.sdk"; - public static final String USER_AGENT = - String.format("speakeasy-sdk/%s %s %s %s %s", - LANGUAGE, SDK_VERSION, GEN_VERSION, OPENAPI_DOC_VERSION, BASE_PACKAGE); - + + public List> serverVariables() { + return serverVariables; + } + private Hooks _hooks = createHooks(); private static Hooks createHooks() { @@ -69,16 +118,21 @@ class SDKConfiguration { **/ public void initialize() { SDKHooks.initialize(_hooks); - // apply the sdk init hook immediately - SdkInitData data = _hooks.sdkInit(new SdkInitData(resolvedServerUrl(), defaultClient)); - this.serverUrl = data.baseUrl(); - this.defaultClient = data.client(); } public Map getServerVariableDefaults() { - return serverDefaults.get(this.serverIdx); + return serverVariables.get(this.serverIdx); } - public Optional retryConfig = Optional.empty(); + private Optional retryConfig = Optional.empty(); + + public Optional retryConfig() { + return retryConfig; + } + + public void setRetryConfig(Optional retryConfig) { + Utils.checkNotNull(retryConfig, "retryConfig"); + this.retryConfig = retryConfig; + } } diff --git a/src/main/java/dev/plexapi/sdk/Search.java b/src/main/java/dev/plexapi/sdk/Search.java index 92c89930..b72665cc 100644 --- a/src/main/java/dev/plexapi/sdk/Search.java +++ b/src/main/java/dev/plexapi/sdk/Search.java @@ -134,7 +134,7 @@ public class Search implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/hubs/search"); @@ -149,14 +149,15 @@ public class Search implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "performSearch", Optional.of(List.of()), @@ -169,6 +170,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "performSearch", Optional.of(List.of()), @@ -179,6 +181,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "performSearch", Optional.of(List.of()), @@ -189,6 +192,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "performSearch", Optional.of(List.of()), @@ -328,7 +332,7 @@ public class Search implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/hubs/search/voice"); @@ -343,14 +347,15 @@ public class Search implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "performVoiceSearch", Optional.of(List.of()), @@ -363,6 +368,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "performVoiceSearch", Optional.of(List.of()), @@ -373,6 +379,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "performVoiceSearch", Optional.of(List.of()), @@ -383,6 +390,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "performVoiceSearch", Optional.of(List.of()), @@ -493,7 +501,7 @@ public class Search implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/search"); @@ -508,14 +516,15 @@ public class Search implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getSearchResults", Optional.of(List.of()), @@ -528,6 +537,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSearchResults", Optional.of(List.of()), @@ -538,6 +548,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getSearchResults", Optional.of(List.of()), @@ -548,6 +559,7 @@ public class Search implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSearchResults", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Server.java b/src/main/java/dev/plexapi/sdk/Server.java index b4e72bdb..4d12afdd 100644 --- a/src/main/java/dev/plexapi/sdk/Server.java +++ b/src/main/java/dev/plexapi/sdk/Server.java @@ -107,7 +107,7 @@ public class Server implements */ public GetServerCapabilitiesResponse getServerCapabilitiesDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/"); @@ -117,14 +117,15 @@ public class Server implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getServerCapabilities", Optional.of(List.of()), @@ -137,6 +138,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerCapabilities", Optional.of(List.of()), @@ -147,6 +149,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getServerCapabilities", Optional.of(List.of()), @@ -157,6 +160,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerCapabilities", Optional.of(List.of()), @@ -270,7 +274,7 @@ public class Server implements */ public GetServerPreferencesResponse getServerPreferencesDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/:/prefs"); @@ -280,14 +284,15 @@ public class Server implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getServerPreferences", Optional.of(List.of()), @@ -300,6 +305,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerPreferences", Optional.of(List.of()), @@ -310,6 +316,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getServerPreferences", Optional.of(List.of()), @@ -320,6 +327,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerPreferences", Optional.of(List.of()), @@ -433,7 +441,7 @@ public class Server implements */ public GetAvailableClientsResponse getAvailableClientsDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/clients"); @@ -443,14 +451,15 @@ public class Server implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getAvailableClients", Optional.of(List.of()), @@ -463,6 +472,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getAvailableClients", Optional.of(List.of()), @@ -473,6 +483,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getAvailableClients", Optional.of(List.of()), @@ -483,6 +494,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getAvailableClients", Optional.of(List.of()), @@ -596,7 +608,7 @@ public class Server implements */ public GetDevicesResponse getDevicesDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/devices"); @@ -606,14 +618,15 @@ public class Server implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getDevices", Optional.of(List.of()), @@ -626,6 +639,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getDevices", Optional.of(List.of()), @@ -636,6 +650,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getDevices", Optional.of(List.of()), @@ -646,6 +661,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getDevices", Optional.of(List.of()), @@ -759,7 +775,7 @@ public class Server implements */ public GetServerIdentityResponse getServerIdentityDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/identity"); @@ -769,11 +785,12 @@ public class Server implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); Optional _hookSecuritySource = Optional.empty(); - HTTPClient _client = this.sdkConfiguration.defaultClient; + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-identity", Optional.of(List.of()), @@ -786,6 +803,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-identity", Optional.of(List.of()), @@ -796,6 +814,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-identity", Optional.of(List.of()), @@ -806,6 +825,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-server-identity", Optional.of(List.of()), @@ -903,7 +923,7 @@ public class Server implements */ public GetMyPlexAccountResponse getMyPlexAccountDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/myplex/account"); @@ -913,14 +933,15 @@ public class Server implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getMyPlexAccount", Optional.of(List.of()), @@ -933,6 +954,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getMyPlexAccount", Optional.of(List.of()), @@ -943,6 +965,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getMyPlexAccount", Optional.of(List.of()), @@ -953,6 +976,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getMyPlexAccount", Optional.of(List.of()), @@ -1068,7 +1092,7 @@ public class Server implements public GetResizedPhotoResponse getResizedPhoto( GetResizedPhotoRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/photo/:/transcode"); @@ -1083,14 +1107,15 @@ public class Server implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getResizedPhoto", Optional.of(List.of()), @@ -1103,6 +1128,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getResizedPhoto", Optional.of(List.of()), @@ -1113,6 +1139,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getResizedPhoto", Optional.of(List.of()), @@ -1123,6 +1150,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getResizedPhoto", Optional.of(List.of()), @@ -1233,7 +1261,7 @@ public class Server implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/media/providers"); @@ -1244,14 +1272,15 @@ public class Server implements SDKConfiguration.USER_AGENT); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-providers", Optional.of(List.of()), @@ -1264,6 +1293,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-providers", Optional.of(List.of()), @@ -1274,6 +1304,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-providers", Optional.of(List.of()), @@ -1284,6 +1315,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-media-providers", Optional.of(List.of()), @@ -1397,7 +1429,7 @@ public class Server implements */ public GetServerListResponse getServerListDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/servers"); @@ -1407,14 +1439,15 @@ public class Server implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getServerList", Optional.of(List.of()), @@ -1427,6 +1460,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerList", Optional.of(List.of()), @@ -1437,6 +1471,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getServerList", Optional.of(List.of()), @@ -1447,6 +1482,7 @@ public class Server implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getServerList", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Sessions.java b/src/main/java/dev/plexapi/sdk/Sessions.java index 6657ebb7..9ad54a68 100644 --- a/src/main/java/dev/plexapi/sdk/Sessions.java +++ b/src/main/java/dev/plexapi/sdk/Sessions.java @@ -80,7 +80,7 @@ public class Sessions implements */ public GetSessionsResponse getSessionsDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/status/sessions"); @@ -90,14 +90,15 @@ public class Sessions implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getSessions", Optional.of(List.of()), @@ -110,6 +111,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSessions", Optional.of(List.of()), @@ -120,6 +122,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getSessions", Optional.of(List.of()), @@ -130,6 +133,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSessions", Optional.of(List.of()), @@ -277,7 +281,7 @@ public class Sessions implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/status/sessions/history/all"); @@ -292,14 +296,15 @@ public class Sessions implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getSessionHistory", Optional.of(List.of()), @@ -312,6 +317,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSessionHistory", Optional.of(List.of()), @@ -322,6 +328,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getSessionHistory", Optional.of(List.of()), @@ -332,6 +339,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getSessionHistory", Optional.of(List.of()), @@ -445,7 +453,7 @@ public class Sessions implements */ public GetTranscodeSessionsResponse getTranscodeSessionsDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/transcode/sessions"); @@ -455,14 +463,15 @@ public class Sessions implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getTranscodeSessions", Optional.of(List.of()), @@ -475,6 +484,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTranscodeSessions", Optional.of(List.of()), @@ -485,6 +495,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getTranscodeSessions", Optional.of(List.of()), @@ -495,6 +506,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTranscodeSessions", Optional.of(List.of()), @@ -616,7 +628,7 @@ public class Sessions implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( StopTranscodeSessionRequest.class, _baseUrl, @@ -628,14 +640,15 @@ public class Sessions implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "stopTranscodeSession", Optional.of(List.of()), @@ -648,6 +661,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "stopTranscodeSession", Optional.of(List.of()), @@ -658,6 +672,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "stopTranscodeSession", Optional.of(List.of()), @@ -668,6 +683,7 @@ public class Sessions implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "stopTranscodeSession", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Statistics.java b/src/main/java/dev/plexapi/sdk/Statistics.java index 04877d5b..2fb23e8d 100644 --- a/src/main/java/dev/plexapi/sdk/Statistics.java +++ b/src/main/java/dev/plexapi/sdk/Statistics.java @@ -97,7 +97,7 @@ public class Statistics implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/statistics/media"); @@ -112,14 +112,15 @@ public class Statistics implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getStatistics", Optional.of(List.of()), @@ -132,6 +133,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getStatistics", Optional.of(List.of()), @@ -142,6 +144,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getStatistics", Optional.of(List.of()), @@ -152,6 +155,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getStatistics", Optional.of(List.of()), @@ -287,7 +291,7 @@ public class Statistics implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/statistics/resources"); @@ -302,14 +306,15 @@ public class Statistics implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getResourcesStatistics", Optional.of(List.of()), @@ -322,6 +327,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getResourcesStatistics", Optional.of(List.of()), @@ -332,6 +338,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getResourcesStatistics", Optional.of(List.of()), @@ -342,6 +349,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getResourcesStatistics", Optional.of(List.of()), @@ -477,7 +485,7 @@ public class Statistics implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/statistics/bandwidth"); @@ -492,14 +500,15 @@ public class Statistics implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getBandwidthStatistics", Optional.of(List.of()), @@ -512,6 +521,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getBandwidthStatistics", Optional.of(List.of()), @@ -522,6 +532,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getBandwidthStatistics", Optional.of(List.of()), @@ -532,6 +543,7 @@ public class Statistics implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getBandwidthStatistics", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Updater.java b/src/main/java/dev/plexapi/sdk/Updater.java index 481c17f4..64acf8d6 100644 --- a/src/main/java/dev/plexapi/sdk/Updater.java +++ b/src/main/java/dev/plexapi/sdk/Updater.java @@ -75,7 +75,7 @@ public class Updater implements */ public GetUpdateStatusResponse getUpdateStatusDirect() throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/updater/status"); @@ -85,14 +85,15 @@ public class Updater implements .addHeader("user-agent", SDKConfiguration.USER_AGENT); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getUpdateStatus", Optional.of(List.of()), @@ -105,6 +106,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getUpdateStatus", Optional.of(List.of()), @@ -115,6 +117,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getUpdateStatus", Optional.of(List.of()), @@ -125,6 +128,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getUpdateStatus", Optional.of(List.of()), @@ -258,7 +262,7 @@ public class Updater implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/updater/check"); @@ -273,14 +277,15 @@ public class Updater implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "checkForUpdates", Optional.of(List.of()), @@ -293,6 +298,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "checkForUpdates", Optional.of(List.of()), @@ -303,6 +309,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "checkForUpdates", Optional.of(List.of()), @@ -313,6 +320,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "checkForUpdates", Optional.of(List.of()), @@ -438,7 +446,7 @@ public class Updater implements .build(); String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/updater/apply"); @@ -453,14 +461,15 @@ public class Updater implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "applyUpdates", Optional.of(List.of()), @@ -473,6 +482,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "applyUpdates", Optional.of(List.of()), @@ -483,6 +493,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "applyUpdates", Optional.of(List.of()), @@ -493,6 +504,7 @@ public class Updater implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "applyUpdates", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Users.java b/src/main/java/dev/plexapi/sdk/Users.java index 36d16de4..9dc67066 100644 --- a/src/main/java/dev/plexapi/sdk/Users.java +++ b/src/main/java/dev/plexapi/sdk/Users.java @@ -97,11 +97,12 @@ public class Users implements SDKConfiguration.USER_AGENT); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); Optional _hookSecuritySource = Optional.empty(); - HTTPClient _client = this.sdkConfiguration.defaultClient; + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-users", Optional.of(List.of()), @@ -114,6 +115,7 @@ public class Users implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-users", Optional.of(List.of()), @@ -124,6 +126,7 @@ public class Users implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-users", Optional.of(List.of()), @@ -134,6 +137,7 @@ public class Users implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-users", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Video.java b/src/main/java/dev/plexapi/sdk/Video.java index b49a6657..4a87e945 100644 --- a/src/main/java/dev/plexapi/sdk/Video.java +++ b/src/main/java/dev/plexapi/sdk/Video.java @@ -67,7 +67,7 @@ public class Video implements public GetTimelineResponse getTimeline( GetTimelineRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/:/timeline"); @@ -82,14 +82,15 @@ public class Video implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "getTimeline", Optional.of(List.of()), @@ -102,6 +103,7 @@ public class Video implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTimeline", Optional.of(List.of()), @@ -112,6 +114,7 @@ public class Video implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "getTimeline", Optional.of(List.of()), @@ -122,6 +125,7 @@ public class Video implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "getTimeline", Optional.of(List.of()), @@ -226,7 +230,7 @@ public class Video implements public StartUniversalTranscodeResponse startUniversalTranscode( StartUniversalTranscodeRequest request) throws Exception { String _baseUrl = Utils.templateUrl( - this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + this.sdkConfiguration.serverUrl(), this.sdkConfiguration.getServerVariableDefaults()); String _url = Utils.generateURL( _baseUrl, "/video/:/transcode/universal/start.mpd"); @@ -241,14 +245,15 @@ public class Video implements request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "startUniversalTranscode", Optional.of(List.of()), @@ -261,6 +266,7 @@ public class Video implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "startUniversalTranscode", Optional.of(List.of()), @@ -271,6 +277,7 @@ public class Video implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "startUniversalTranscode", Optional.of(List.of()), @@ -281,6 +288,7 @@ public class Video implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "startUniversalTranscode", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/Watchlist.java b/src/main/java/dev/plexapi/sdk/Watchlist.java index ddf9b1fa..5321eb00 100644 --- a/src/main/java/dev/plexapi/sdk/Watchlist.java +++ b/src/main/java/dev/plexapi/sdk/Watchlist.java @@ -111,14 +111,15 @@ public class Watchlist implements null)); _req.addHeaders(Utils.getHeadersFromMetadata(request, null)); - Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Optional _hookSecuritySource = Optional.of(this.sdkConfiguration.securitySource()); Utils.configureSecurity(_req, - this.sdkConfiguration.securitySource.getSecurity()); - HTTPClient _client = this.sdkConfiguration.defaultClient; + this.sdkConfiguration.securitySource().getSecurity()); + HTTPClient _client = this.sdkConfiguration.client(); HttpRequest _r = sdkConfiguration.hooks() .beforeRequest( new BeforeRequestContextImpl( + this.sdkConfiguration, _baseUrl, "get-watch-list", Optional.of(List.of()), @@ -131,6 +132,7 @@ public class Watchlist implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-watch-list", Optional.of(List.of()), @@ -141,6 +143,7 @@ public class Watchlist implements _httpRes = sdkConfiguration.hooks() .afterSuccess( new AfterSuccessContextImpl( + this.sdkConfiguration, _baseUrl, "get-watch-list", Optional.of(List.of()), @@ -151,6 +154,7 @@ public class Watchlist implements _httpRes = sdkConfiguration.hooks() .afterError( new AfterErrorContextImpl( + this.sdkConfiguration, _baseUrl, "get-watch-list", Optional.of(List.of()), diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryBadRequest.java b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllBadRequest.java similarity index 74% rename from src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryBadRequest.java rename to src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllBadRequest.java index 101fb369..f292cbfb 100644 --- a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryBadRequest.java +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllBadRequest.java @@ -20,16 +20,16 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryBadRequest + * GetLibrarySectionsAllBadRequest * *

Bad Request - A parameter was not specified, or was specified incorrectly. */ @SuppressWarnings("serial") -public class GetAllMediaLibraryBadRequest extends RuntimeException { +public class GetLibrarySectionsAllBadRequest extends RuntimeException { @JsonInclude(Include.NON_ABSENT) @JsonProperty("errors") - private Optional> errors; + private Optional> errors; /** * Raw HTTP response; suitable for custom response parsing @@ -39,8 +39,8 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { private Optional> rawResponse; @JsonCreator - public GetAllMediaLibraryBadRequest( - @JsonProperty("errors") Optional> errors, + public GetLibrarySectionsAllBadRequest( + @JsonProperty("errors") Optional> errors, @JsonProperty("RawResponse") Optional> rawResponse) { Utils.checkNotNull(errors, "errors"); Utils.checkNotNull(rawResponse, "rawResponse"); @@ -48,14 +48,14 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { this.rawResponse = rawResponse; } - public GetAllMediaLibraryBadRequest() { + public GetLibrarySectionsAllBadRequest() { this(Optional.empty(), Optional.empty()); } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> errors() { - return (Optional>) errors; + public Optional> errors() { + return (Optional>) errors; } /** @@ -71,13 +71,13 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { return new Builder(); } - public GetAllMediaLibraryBadRequest withErrors(List errors) { + public GetLibrarySectionsAllBadRequest withErrors(List errors) { Utils.checkNotNull(errors, "errors"); this.errors = Optional.ofNullable(errors); return this; } - public GetAllMediaLibraryBadRequest withErrors(Optional> errors) { + public GetLibrarySectionsAllBadRequest withErrors(Optional> errors) { Utils.checkNotNull(errors, "errors"); this.errors = errors; return this; @@ -86,7 +86,7 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { /** * Raw HTTP response; suitable for custom response parsing */ - public GetAllMediaLibraryBadRequest withRawResponse(HttpResponse rawResponse) { + public GetLibrarySectionsAllBadRequest withRawResponse(HttpResponse rawResponse) { Utils.checkNotNull(rawResponse, "rawResponse"); this.rawResponse = Optional.ofNullable(rawResponse); return this; @@ -95,7 +95,7 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { /** * Raw HTTP response; suitable for custom response parsing */ - public GetAllMediaLibraryBadRequest withRawResponse(Optional> rawResponse) { + public GetLibrarySectionsAllBadRequest withRawResponse(Optional> rawResponse) { Utils.checkNotNull(rawResponse, "rawResponse"); this.rawResponse = rawResponse; return this; @@ -110,7 +110,7 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryBadRequest other = (GetAllMediaLibraryBadRequest) o; + GetLibrarySectionsAllBadRequest other = (GetLibrarySectionsAllBadRequest) o; return Objects.deepEquals(this.errors, other.errors) && Objects.deepEquals(this.rawResponse, other.rawResponse); @@ -125,14 +125,14 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryBadRequest.class, + return Utils.toString(GetLibrarySectionsAllBadRequest.class, "errors", errors, "rawResponse", rawResponse); } public final static class Builder { - private Optional> errors = Optional.empty(); + private Optional> errors = Optional.empty(); private Optional> rawResponse; @@ -140,13 +140,13 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { // force use of static builder() method } - public Builder errors(List errors) { + public Builder errors(List errors) { Utils.checkNotNull(errors, "errors"); this.errors = Optional.ofNullable(errors); return this; } - public Builder errors(Optional> errors) { + public Builder errors(Optional> errors) { Utils.checkNotNull(errors, "errors"); this.errors = errors; return this; @@ -170,8 +170,8 @@ public class GetAllMediaLibraryBadRequest extends RuntimeException { return this; } - public GetAllMediaLibraryBadRequest build() { - return new GetAllMediaLibraryBadRequest( + public GetLibrarySectionsAllBadRequest build() { + return new GetLibrarySectionsAllBadRequest( errors, rawResponse); } diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryErrors.java b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllErrors.java similarity index 85% rename from src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryErrors.java rename to src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllErrors.java index a7ddb6ad..f18d37a3 100644 --- a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryErrors.java +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllErrors.java @@ -15,7 +15,7 @@ import java.lang.String; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryErrors { +public class GetLibrarySectionsAllErrors { @JsonInclude(Include.NON_ABSENT) @JsonProperty("code") @@ -30,7 +30,7 @@ public class GetAllMediaLibraryErrors { private Optional status; @JsonCreator - public GetAllMediaLibraryErrors( + public GetLibrarySectionsAllErrors( @JsonProperty("code") Optional code, @JsonProperty("message") Optional message, @JsonProperty("status") Optional status) { @@ -42,7 +42,7 @@ public class GetAllMediaLibraryErrors { this.status = status; } - public GetAllMediaLibraryErrors() { + public GetLibrarySectionsAllErrors() { this(Optional.empty(), Optional.empty(), Optional.empty()); } @@ -65,37 +65,37 @@ public class GetAllMediaLibraryErrors { return new Builder(); } - public GetAllMediaLibraryErrors withCode(int code) { + public GetLibrarySectionsAllErrors withCode(int code) { Utils.checkNotNull(code, "code"); this.code = Optional.ofNullable(code); return this; } - public GetAllMediaLibraryErrors withCode(Optional code) { + public GetLibrarySectionsAllErrors withCode(Optional code) { Utils.checkNotNull(code, "code"); this.code = code; return this; } - public GetAllMediaLibraryErrors withMessage(String message) { + public GetLibrarySectionsAllErrors withMessage(String message) { Utils.checkNotNull(message, "message"); this.message = Optional.ofNullable(message); return this; } - public GetAllMediaLibraryErrors withMessage(Optional message) { + public GetLibrarySectionsAllErrors withMessage(Optional message) { Utils.checkNotNull(message, "message"); this.message = message; return this; } - public GetAllMediaLibraryErrors withStatus(int status) { + public GetLibrarySectionsAllErrors withStatus(int status) { Utils.checkNotNull(status, "status"); this.status = Optional.ofNullable(status); return this; } - public GetAllMediaLibraryErrors withStatus(Optional status) { + public GetLibrarySectionsAllErrors withStatus(Optional status) { Utils.checkNotNull(status, "status"); this.status = status; return this; @@ -110,7 +110,7 @@ public class GetAllMediaLibraryErrors { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryErrors other = (GetAllMediaLibraryErrors) o; + GetLibrarySectionsAllErrors other = (GetLibrarySectionsAllErrors) o; return Objects.deepEquals(this.code, other.code) && Objects.deepEquals(this.message, other.message) && @@ -127,7 +127,7 @@ public class GetAllMediaLibraryErrors { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryErrors.class, + return Utils.toString(GetLibrarySectionsAllErrors.class, "code", code, "message", message, "status", status); @@ -181,8 +181,8 @@ public class GetAllMediaLibraryErrors { return this; } - public GetAllMediaLibraryErrors build() { - return new GetAllMediaLibraryErrors( + public GetLibrarySectionsAllErrors build() { + return new GetLibrarySectionsAllErrors( code, message, status); diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryLibraryErrors.java b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllLibraryErrors.java similarity index 83% rename from src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryLibraryErrors.java rename to src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllLibraryErrors.java index b416677d..1b786ebd 100644 --- a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryLibraryErrors.java +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllLibraryErrors.java @@ -15,7 +15,7 @@ import java.lang.String; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryLibraryErrors { +public class GetLibrarySectionsAllLibraryErrors { @JsonInclude(Include.NON_ABSENT) @JsonProperty("code") @@ -30,7 +30,7 @@ public class GetAllMediaLibraryLibraryErrors { private Optional status; @JsonCreator - public GetAllMediaLibraryLibraryErrors( + public GetLibrarySectionsAllLibraryErrors( @JsonProperty("code") Optional code, @JsonProperty("message") Optional message, @JsonProperty("status") Optional status) { @@ -42,7 +42,7 @@ public class GetAllMediaLibraryLibraryErrors { this.status = status; } - public GetAllMediaLibraryLibraryErrors() { + public GetLibrarySectionsAllLibraryErrors() { this(Optional.empty(), Optional.empty(), Optional.empty()); } @@ -65,37 +65,37 @@ public class GetAllMediaLibraryLibraryErrors { return new Builder(); } - public GetAllMediaLibraryLibraryErrors withCode(int code) { + public GetLibrarySectionsAllLibraryErrors withCode(int code) { Utils.checkNotNull(code, "code"); this.code = Optional.ofNullable(code); return this; } - public GetAllMediaLibraryLibraryErrors withCode(Optional code) { + public GetLibrarySectionsAllLibraryErrors withCode(Optional code) { Utils.checkNotNull(code, "code"); this.code = code; return this; } - public GetAllMediaLibraryLibraryErrors withMessage(String message) { + public GetLibrarySectionsAllLibraryErrors withMessage(String message) { Utils.checkNotNull(message, "message"); this.message = Optional.ofNullable(message); return this; } - public GetAllMediaLibraryLibraryErrors withMessage(Optional message) { + public GetLibrarySectionsAllLibraryErrors withMessage(Optional message) { Utils.checkNotNull(message, "message"); this.message = message; return this; } - public GetAllMediaLibraryLibraryErrors withStatus(int status) { + public GetLibrarySectionsAllLibraryErrors withStatus(int status) { Utils.checkNotNull(status, "status"); this.status = Optional.ofNullable(status); return this; } - public GetAllMediaLibraryLibraryErrors withStatus(Optional status) { + public GetLibrarySectionsAllLibraryErrors withStatus(Optional status) { Utils.checkNotNull(status, "status"); this.status = status; return this; @@ -110,7 +110,7 @@ public class GetAllMediaLibraryLibraryErrors { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryLibraryErrors other = (GetAllMediaLibraryLibraryErrors) o; + GetLibrarySectionsAllLibraryErrors other = (GetLibrarySectionsAllLibraryErrors) o; return Objects.deepEquals(this.code, other.code) && Objects.deepEquals(this.message, other.message) && @@ -127,7 +127,7 @@ public class GetAllMediaLibraryLibraryErrors { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryLibraryErrors.class, + return Utils.toString(GetLibrarySectionsAllLibraryErrors.class, "code", code, "message", message, "status", status); @@ -181,8 +181,8 @@ public class GetAllMediaLibraryLibraryErrors { return this; } - public GetAllMediaLibraryLibraryErrors build() { - return new GetAllMediaLibraryLibraryErrors( + public GetLibrarySectionsAllLibraryErrors build() { + return new GetLibrarySectionsAllLibraryErrors( code, message, status); diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryUnauthorized.java b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllUnauthorized.java similarity index 73% rename from src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryUnauthorized.java rename to src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllUnauthorized.java index c8dd2f6c..78cc129d 100644 --- a/src/main/java/dev/plexapi/sdk/models/errors/GetAllMediaLibraryUnauthorized.java +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetLibrarySectionsAllUnauthorized.java @@ -20,16 +20,16 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryUnauthorized + * GetLibrarySectionsAllUnauthorized * *

Unauthorized - Returned if the X-Plex-Token is missing from the header or query. */ @SuppressWarnings("serial") -public class GetAllMediaLibraryUnauthorized extends RuntimeException { +public class GetLibrarySectionsAllUnauthorized extends RuntimeException { @JsonInclude(Include.NON_ABSENT) @JsonProperty("errors") - private Optional> errors; + private Optional> errors; /** * Raw HTTP response; suitable for custom response parsing @@ -39,8 +39,8 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { private Optional> rawResponse; @JsonCreator - public GetAllMediaLibraryUnauthorized( - @JsonProperty("errors") Optional> errors, + public GetLibrarySectionsAllUnauthorized( + @JsonProperty("errors") Optional> errors, @JsonProperty("RawResponse") Optional> rawResponse) { Utils.checkNotNull(errors, "errors"); Utils.checkNotNull(rawResponse, "rawResponse"); @@ -48,14 +48,14 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { this.rawResponse = rawResponse; } - public GetAllMediaLibraryUnauthorized() { + public GetLibrarySectionsAllUnauthorized() { this(Optional.empty(), Optional.empty()); } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> errors() { - return (Optional>) errors; + public Optional> errors() { + return (Optional>) errors; } /** @@ -71,13 +71,13 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { return new Builder(); } - public GetAllMediaLibraryUnauthorized withErrors(List errors) { + public GetLibrarySectionsAllUnauthorized withErrors(List errors) { Utils.checkNotNull(errors, "errors"); this.errors = Optional.ofNullable(errors); return this; } - public GetAllMediaLibraryUnauthorized withErrors(Optional> errors) { + public GetLibrarySectionsAllUnauthorized withErrors(Optional> errors) { Utils.checkNotNull(errors, "errors"); this.errors = errors; return this; @@ -86,7 +86,7 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { /** * Raw HTTP response; suitable for custom response parsing */ - public GetAllMediaLibraryUnauthorized withRawResponse(HttpResponse rawResponse) { + public GetLibrarySectionsAllUnauthorized withRawResponse(HttpResponse rawResponse) { Utils.checkNotNull(rawResponse, "rawResponse"); this.rawResponse = Optional.ofNullable(rawResponse); return this; @@ -95,7 +95,7 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { /** * Raw HTTP response; suitable for custom response parsing */ - public GetAllMediaLibraryUnauthorized withRawResponse(Optional> rawResponse) { + public GetLibrarySectionsAllUnauthorized withRawResponse(Optional> rawResponse) { Utils.checkNotNull(rawResponse, "rawResponse"); this.rawResponse = rawResponse; return this; @@ -110,7 +110,7 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryUnauthorized other = (GetAllMediaLibraryUnauthorized) o; + GetLibrarySectionsAllUnauthorized other = (GetLibrarySectionsAllUnauthorized) o; return Objects.deepEquals(this.errors, other.errors) && Objects.deepEquals(this.rawResponse, other.rawResponse); @@ -125,14 +125,14 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryUnauthorized.class, + return Utils.toString(GetLibrarySectionsAllUnauthorized.class, "errors", errors, "rawResponse", rawResponse); } public final static class Builder { - private Optional> errors = Optional.empty(); + private Optional> errors = Optional.empty(); private Optional> rawResponse; @@ -140,13 +140,13 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { // force use of static builder() method } - public Builder errors(List errors) { + public Builder errors(List errors) { Utils.checkNotNull(errors, "errors"); this.errors = Optional.ofNullable(errors); return this; } - public Builder errors(Optional> errors) { + public Builder errors(Optional> errors) { Utils.checkNotNull(errors, "errors"); this.errors = errors; return this; @@ -170,8 +170,8 @@ public class GetAllMediaLibraryUnauthorized extends RuntimeException { return this; } - public GetAllMediaLibraryUnauthorized build() { - return new GetAllMediaLibraryUnauthorized( + public GetLibrarySectionsAllUnauthorized build() { + return new GetLibrarySectionsAllUnauthorized( errors, rawResponse); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Country.java b/src/main/java/dev/plexapi/sdk/models/operations/Country.java index 7622fc5e..0a692230 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Country.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Country.java @@ -5,15 +5,12 @@ package dev.plexapi.sdk.models.operations; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; -import java.util.Optional; /** * Country @@ -22,6 +19,10 @@ import java.util.Optional; */ public class Country { + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonProperty("id") private int id; @@ -31,15 +32,14 @@ public class Country { @JsonProperty("tag") private String tag; - @JsonInclude(Include.NON_ABSENT) @JsonProperty("filter") - private Optional filter; + private String filter; @JsonCreator public Country( @JsonProperty("id") int id, @JsonProperty("tag") String tag, - @JsonProperty("filter") Optional filter) { + @JsonProperty("filter") String filter) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(tag, "tag"); Utils.checkNotNull(filter, "filter"); @@ -47,13 +47,11 @@ public class Country { this.tag = tag; this.filter = filter; } - - public Country( - int id, - String tag) { - this(id, tag, Optional.empty()); - } + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonIgnore public int id() { return id; @@ -68,7 +66,7 @@ public class Country { } @JsonIgnore - public Optional filter() { + public String filter() { return filter; } @@ -76,6 +74,10 @@ public class Country { return new Builder(); } + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ public Country withId(int id) { Utils.checkNotNull(id, "id"); this.id = id; @@ -92,12 +94,6 @@ public class Country { } public Country withFilter(String filter) { - Utils.checkNotNull(filter, "filter"); - this.filter = Optional.ofNullable(filter); - return this; - } - - public Country withFilter(Optional filter) { Utils.checkNotNull(filter, "filter"); this.filter = filter; return this; @@ -141,12 +137,16 @@ public class Country { private String tag; - private Optional filter = Optional.empty(); + private String filter; private Builder() { // force use of static builder() method } + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ public Builder id(int id) { Utils.checkNotNull(id, "id"); this.id = id; @@ -163,12 +163,6 @@ public class Country { } public Builder filter(String filter) { - Utils.checkNotNull(filter, "filter"); - this.filter = Optional.ofNullable(filter); - return this; - } - - public Builder filter(Optional filter) { Utils.checkNotNull(filter, "filter"); this.filter = filter; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Director.java b/src/main/java/dev/plexapi/sdk/models/operations/Director.java index 68023e64..c16be627 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Director.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Director.java @@ -5,25 +5,90 @@ package dev.plexapi.sdk.models.operations; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; +import java.util.Optional; public class Director { + /** + * Unique identifier for the director. + */ + @JsonProperty("id") + private int id; + + /** + * The filter string used to query this director. + */ + @JsonProperty("filter") + private String filter; + /** * The role of Director */ @JsonProperty("tag") private String tag; + /** + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. + */ + @JsonProperty("tagKey") + private String tagKey; + + /** + * The absolute URL of the thumbnail image for the director. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + private Optional thumb; + @JsonCreator public Director( - @JsonProperty("tag") String tag) { + @JsonProperty("id") int id, + @JsonProperty("filter") String filter, + @JsonProperty("tag") String tag, + @JsonProperty("tagKey") String tagKey, + @JsonProperty("thumb") Optional thumb) { + Utils.checkNotNull(id, "id"); + Utils.checkNotNull(filter, "filter"); Utils.checkNotNull(tag, "tag"); + Utils.checkNotNull(tagKey, "tagKey"); + Utils.checkNotNull(thumb, "thumb"); + this.id = id; + this.filter = filter; this.tag = tag; + this.tagKey = tagKey; + this.thumb = thumb; + } + + public Director( + int id, + String filter, + String tag, + String tagKey) { + this(id, filter, tag, tagKey, Optional.empty()); + } + + /** + * Unique identifier for the director. + */ + @JsonIgnore + public int id() { + return id; + } + + /** + * The filter string used to query this director. + */ + @JsonIgnore + public String filter() { + return filter; } /** @@ -34,10 +99,44 @@ public class Director { return tag; } + /** + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. + */ + @JsonIgnore + public String tagKey() { + return tagKey; + } + + /** + * The absolute URL of the thumbnail image for the director. + */ + @JsonIgnore + public Optional thumb() { + return thumb; + } + public final static Builder builder() { return new Builder(); } + /** + * Unique identifier for the director. + */ + public Director withId(int id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * The filter string used to query this director. + */ + public Director withFilter(String filter) { + Utils.checkNotNull(filter, "filter"); + this.filter = filter; + return this; + } + /** * The role of Director */ @@ -47,6 +146,33 @@ public class Director { return this; } + /** + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. + */ + public Director withTagKey(String tagKey) { + Utils.checkNotNull(tagKey, "tagKey"); + this.tagKey = tagKey; + return this; + } + + /** + * The absolute URL of the thumbnail image for the director. + */ + public Director withThumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = Optional.ofNullable(thumb); + return this; + } + + /** + * The absolute URL of the thumbnail image for the director. + */ + public Director withThumb(Optional thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } + @Override public boolean equals(java.lang.Object o) { @@ -58,29 +184,67 @@ public class Director { } Director other = (Director) o; return - Objects.deepEquals(this.tag, other.tag); + Objects.deepEquals(this.id, other.id) && + Objects.deepEquals(this.filter, other.filter) && + Objects.deepEquals(this.tag, other.tag) && + Objects.deepEquals(this.tagKey, other.tagKey) && + Objects.deepEquals(this.thumb, other.thumb); } @Override public int hashCode() { return Objects.hash( - tag); + id, + filter, + tag, + tagKey, + thumb); } @Override public String toString() { return Utils.toString(Director.class, - "tag", tag); + "id", id, + "filter", filter, + "tag", tag, + "tagKey", tagKey, + "thumb", thumb); } public final static class Builder { + private Integer id; + + private String filter; + private String tag; + + private String tagKey; + + private Optional thumb = Optional.empty(); private Builder() { // force use of static builder() method } + /** + * Unique identifier for the director. + */ + public Builder id(int id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + /** + * The filter string used to query this director. + */ + public Builder filter(String filter) { + Utils.checkNotNull(filter, "filter"); + this.filter = filter; + return this; + } + /** * The role of Director */ @@ -89,10 +253,41 @@ public class Director { this.tag = tag; return this; } + + /** + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. + */ + public Builder tagKey(String tagKey) { + Utils.checkNotNull(tagKey, "tagKey"); + this.tagKey = tagKey; + return this; + } + + /** + * The absolute URL of the thumbnail image for the director. + */ + public Builder thumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = Optional.ofNullable(thumb); + return this; + } + + /** + * The absolute URL of the thumbnail image for the director. + */ + public Builder thumb(Optional thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } public Director build() { return new Director( - tag); + id, + filter, + tag, + tagKey, + thumb); } } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Genre.java b/src/main/java/dev/plexapi/sdk/models/operations/Genre.java index 0379c2f6..0e4d94f4 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Genre.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Genre.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; -import java.lang.Long; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; @@ -19,8 +19,12 @@ import java.util.Objects; */ public class Genre { + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonProperty("id") - private long id; + private int id; @JsonProperty("filter") private String filter; @@ -33,7 +37,7 @@ public class Genre { @JsonCreator public Genre( - @JsonProperty("id") long id, + @JsonProperty("id") int id, @JsonProperty("filter") String filter, @JsonProperty("tag") String tag) { Utils.checkNotNull(id, "id"); @@ -44,8 +48,12 @@ public class Genre { this.tag = tag; } + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonIgnore - public long id() { + public int id() { return id; } @@ -66,7 +74,11 @@ public class Genre { return new Builder(); } - public Genre withId(long id) { + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ + public Genre withId(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -121,7 +133,7 @@ public class Genre { public final static class Builder { - private Long id; + private Integer id; private String filter; @@ -131,7 +143,11 @@ public class Genre { // force use of static builder() method } - public Builder id(long id) { + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ + public Builder id(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetActorsLibraryQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetActorsLibraryQueryParamType.java index 5433ebe1..4da17484 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetActorsLibraryQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetActorsLibraryQueryParamType.java @@ -60,9 +60,11 @@ public class GetActorsLibraryQueryParamType { public static final GetActorsLibraryQueryParamType TvShow = new GetActorsLibraryQueryParamType(2L); public static final GetActorsLibraryQueryParamType Season = new GetActorsLibraryQueryParamType(3L); public static final GetActorsLibraryQueryParamType Episode = new GetActorsLibraryQueryParamType(4L); - public static final GetActorsLibraryQueryParamType Audio = new GetActorsLibraryQueryParamType(8L); - public static final GetActorsLibraryQueryParamType Album = new GetActorsLibraryQueryParamType(9L); - public static final GetActorsLibraryQueryParamType Track = new GetActorsLibraryQueryParamType(10L); + public static final GetActorsLibraryQueryParamType Artist = new GetActorsLibraryQueryParamType(5L); + public static final GetActorsLibraryQueryParamType Album = new GetActorsLibraryQueryParamType(6L); + public static final GetActorsLibraryQueryParamType Track = new GetActorsLibraryQueryParamType(7L); + public static final GetActorsLibraryQueryParamType PhotoAlbum = new GetActorsLibraryQueryParamType(8L); + public static final GetActorsLibraryQueryParamType Photo = new GetActorsLibraryQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class GetActorsLibraryQueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class GetActorsLibraryQueryParamType { map.put(2L, GetActorsLibraryQueryParamTypeEnum.TvShow); map.put(3L, GetActorsLibraryQueryParamTypeEnum.Season); map.put(4L, GetActorsLibraryQueryParamTypeEnum.Episode); - map.put(8L, GetActorsLibraryQueryParamTypeEnum.Audio); - map.put(9L, GetActorsLibraryQueryParamTypeEnum.Album); - map.put(10L, GetActorsLibraryQueryParamTypeEnum.Track); + map.put(5L, GetActorsLibraryQueryParamTypeEnum.Artist); + map.put(6L, GetActorsLibraryQueryParamTypeEnum.Album); + map.put(7L, GetActorsLibraryQueryParamTypeEnum.Track); + map.put(8L, GetActorsLibraryQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetActorsLibraryQueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class GetActorsLibraryQueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllLibrariesType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetAllLibrariesType.java index 33183c9f..b34956c0 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllLibrariesType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetAllLibrariesType.java @@ -56,6 +56,10 @@ public class GetAllLibrariesType { public static final GetAllLibrariesType Episode = new GetAllLibrariesType("episode"); public static final GetAllLibrariesType Artist = new GetAllLibrariesType("artist"); public static final GetAllLibrariesType Album = new GetAllLibrariesType("album"); + public static final GetAllLibrariesType Track = new GetAllLibrariesType("track"); + public static final GetAllLibrariesType PhotoAlbum = new GetAllLibrariesType("photoalbum"); + public static final GetAllLibrariesType Photo = new GetAllLibrariesType("photo"); + public static final GetAllLibrariesType Collection = new GetAllLibrariesType("collection"); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -133,6 +137,10 @@ public class GetAllLibrariesType { map.put("episode", Episode); map.put("artist", Artist); map.put("album", Album); + map.put("track", Track); + map.put("photoalbum", PhotoAlbum); + map.put("photo", Photo); + map.put("collection", Collection); return map; } @@ -144,6 +152,10 @@ public class GetAllLibrariesType { map.put("episode", GetAllLibrariesTypeEnum.Episode); map.put("artist", GetAllLibrariesTypeEnum.Artist); map.put("album", GetAllLibrariesTypeEnum.Album); + map.put("track", GetAllLibrariesTypeEnum.Track); + map.put("photoalbum", GetAllLibrariesTypeEnum.PhotoAlbum); + map.put("photo", GetAllLibrariesTypeEnum.Photo); + map.put("collection", GetAllLibrariesTypeEnum.Collection); return map; } @@ -184,7 +196,11 @@ public class GetAllLibrariesType { Season("season"), Episode("episode"), Artist("artist"), - Album("album"),; + Album("album"), + Track("track"), + PhotoAlbum("photoalbum"), + Photo("photo"), + Collection("collection"),; private final String value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGuids.java b/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGuids.java deleted file mode 100644 index b51c3a06..00000000 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGuids.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ -package dev.plexapi.sdk.models.operations; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import dev.plexapi.sdk.utils.Utils; -import java.lang.Override; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; - -public class GetAllMediaLibraryGuids { - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("id") - private Optional id; - - @JsonCreator - public GetAllMediaLibraryGuids( - @JsonProperty("id") Optional id) { - Utils.checkNotNull(id, "id"); - this.id = id; - } - - public GetAllMediaLibraryGuids() { - this(Optional.empty()); - } - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - @JsonIgnore - public Optional id() { - return id; - } - - public final static Builder builder() { - return new Builder(); - } - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - public GetAllMediaLibraryGuids withId(String id) { - Utils.checkNotNull(id, "id"); - this.id = Optional.ofNullable(id); - return this; - } - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - public GetAllMediaLibraryGuids withId(Optional id) { - Utils.checkNotNull(id, "id"); - this.id = id; - return this; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GetAllMediaLibraryGuids other = (GetAllMediaLibraryGuids) o; - return - Objects.deepEquals(this.id, other.id); - } - - @Override - public int hashCode() { - return Objects.hash( - id); - } - - @Override - public String toString() { - return Utils.toString(GetAllMediaLibraryGuids.class, - "id", id); - } - - public final static class Builder { - - private Optional id = Optional.empty(); - - private Builder() { - // force use of static builder() method - } - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - public Builder id(String id) { - Utils.checkNotNull(id, "id"); - this.id = Optional.ofNullable(id); - return this; - } - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - public Builder id(Optional id) { - Utils.checkNotNull(id, "id"); - this.id = id; - return this; - } - - public GetAllMediaLibraryGuids build() { - return new GetAllMediaLibraryGuids( - id); - } - } -} diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryType.java deleted file mode 100644 index fdfc8175..00000000 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryType.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ -package dev.plexapi.sdk.models.operations; - -import com.fasterxml.jackson.core.JacksonException; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; -import java.io.IOException; -import java.lang.Override; -import java.lang.String; -import java.lang.SuppressWarnings; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; - -/** - *

Wrapper class for an "open" enum. "Open" enums are those that are expected - * to evolve (particularly with the addition of enum members over time). If an - * open enum is used then the appearance of unexpected enum values (say in a - * response from an updated an API) will not bring about a runtime error thus - * ensuring that non-updated client versions can continue to work without error. - * - *

Note that instances are immutable and are singletons (an internal thread-safe - * cache is maintained to ensure that). As a consequence instances created with the - * same value will satisfy reference equality (via {@code ==}). - * - *

This class is intended to emulate an enum (in terms of common usage and with - * reference equality) but with the ability to carry unknown values. Unfortunately - * Java does not permit the use of an instance in a switch expression but you can - * use the {@code asEnum()} method (after dealing with the `Optional` appropriately). - * - */ -/** - * GetAllMediaLibraryLibraryType - * - *

The type of media content - */ -@JsonDeserialize(using = GetAllMediaLibraryLibraryType._Deserializer.class) -@JsonSerialize(using = GetAllMediaLibraryLibraryType._Serializer.class) -public class GetAllMediaLibraryLibraryType { - - public static final GetAllMediaLibraryLibraryType Movie = new GetAllMediaLibraryLibraryType("movie"); - public static final GetAllMediaLibraryLibraryType TvShow = new GetAllMediaLibraryLibraryType("show"); - public static final GetAllMediaLibraryLibraryType Season = new GetAllMediaLibraryLibraryType("season"); - public static final GetAllMediaLibraryLibraryType Episode = new GetAllMediaLibraryLibraryType("episode"); - public static final GetAllMediaLibraryLibraryType Artist = new GetAllMediaLibraryLibraryType("artist"); - public static final GetAllMediaLibraryLibraryType Album = new GetAllMediaLibraryLibraryType("album"); - - // This map will grow whenever a Color gets created with a new - // unrecognized value (a potential memory leak if the user is not - // careful). Keep this field lower case to avoid clashing with - // generated member names which will always be upper cased (Java - // convention) - private static final Map values = createValuesMap(); - private static final Map enums = createEnumsMap(); - - private final String value; - - private GetAllMediaLibraryLibraryType(String value) { - this.value = value; - } - - /** - * Returns a GetAllMediaLibraryLibraryType with the given value. For a specific value the - * returned object will always be a singleton so reference equality - * is satisfied when the values are the same. - * - * @param value value to be wrapped as GetAllMediaLibraryLibraryType - */ - public static GetAllMediaLibraryLibraryType of(String value) { - synchronized (GetAllMediaLibraryLibraryType.class) { - return values.computeIfAbsent(value, v -> new GetAllMediaLibraryLibraryType(v)); - } - } - - public String value() { - return value; - } - - public Optional asEnum() { - return Optional.ofNullable(enums.getOrDefault(value, null)); - } - - public boolean isKnown() { - return asEnum().isPresent(); - } - - @Override - public int hashCode() { - return Objects.hash(value); - } - - @Override - public boolean equals(java.lang.Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - GetAllMediaLibraryLibraryType other = (GetAllMediaLibraryLibraryType) obj; - return Objects.equals(value, other.value); - } - - @Override - public String toString() { - return "GetAllMediaLibraryLibraryType [value=" + value + "]"; - } - - // return an array just like an enum - public static GetAllMediaLibraryLibraryType[] values() { - synchronized (GetAllMediaLibraryLibraryType.class) { - return values.values().toArray(new GetAllMediaLibraryLibraryType[] {}); - } - } - - private static final Map createValuesMap() { - Map map = new LinkedHashMap<>(); - map.put("movie", Movie); - map.put("show", TvShow); - map.put("season", Season); - map.put("episode", Episode); - map.put("artist", Artist); - map.put("album", Album); - return map; - } - - private static final Map createEnumsMap() { - Map map = new HashMap<>(); - map.put("movie", GetAllMediaLibraryLibraryTypeEnum.Movie); - map.put("show", GetAllMediaLibraryLibraryTypeEnum.TvShow); - map.put("season", GetAllMediaLibraryLibraryTypeEnum.Season); - map.put("episode", GetAllMediaLibraryLibraryTypeEnum.Episode); - map.put("artist", GetAllMediaLibraryLibraryTypeEnum.Artist); - map.put("album", GetAllMediaLibraryLibraryTypeEnum.Album); - return map; - } - - @SuppressWarnings("serial") - public static final class _Serializer extends StdSerializer { - - protected _Serializer() { - super(GetAllMediaLibraryLibraryType.class); - } - - @Override - public void serialize(GetAllMediaLibraryLibraryType value, JsonGenerator g, SerializerProvider provider) - throws IOException, JsonProcessingException { - g.writeObject(value.value); - } - } - - @SuppressWarnings("serial") - public static final class _Deserializer extends StdDeserializer { - - protected _Deserializer() { - super(GetAllMediaLibraryLibraryType.class); - } - - @Override - public GetAllMediaLibraryLibraryType deserialize(JsonParser p, DeserializationContext ctxt) - throws IOException, JacksonException { - String v = p.readValueAs(new TypeReference() {}); - // use the factory method to ensure we get singletons - return GetAllMediaLibraryLibraryType.of(v); - } - } - - public enum GetAllMediaLibraryLibraryTypeEnum { - - Movie("movie"), - TvShow("show"), - Season("season"), - Episode("episode"), - Artist("artist"), - Album("album"),; - - private final String value; - - private GetAllMediaLibraryLibraryTypeEnum(String value) { - this.value = value; - } - - public String value() { - return value; - } - } -} - diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequestBuilder.java b/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequestBuilder.java deleted file mode 100644 index a83e1b1d..00000000 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequestBuilder.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ -package dev.plexapi.sdk.models.operations; - -import dev.plexapi.sdk.utils.Utils; -import java.lang.Exception; - -public class GetAllMediaLibraryRequestBuilder { - - private GetAllMediaLibraryRequest request; - private final SDKMethodInterfaces.MethodCallGetAllMediaLibrary sdk; - - public GetAllMediaLibraryRequestBuilder(SDKMethodInterfaces.MethodCallGetAllMediaLibrary sdk) { - this.sdk = sdk; - } - - public GetAllMediaLibraryRequestBuilder request(GetAllMediaLibraryRequest request) { - Utils.checkNotNull(request, "request"); - this.request = request; - return this; - } - - public GetAllMediaLibraryResponse call() throws Exception { - - return sdk.getAllMediaLibrary( - request); - } -} diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryQueryParamType.java index 903f2f19..4284782d 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryQueryParamType.java @@ -60,9 +60,11 @@ public class GetCountriesLibraryQueryParamType { public static final GetCountriesLibraryQueryParamType TvShow = new GetCountriesLibraryQueryParamType(2L); public static final GetCountriesLibraryQueryParamType Season = new GetCountriesLibraryQueryParamType(3L); public static final GetCountriesLibraryQueryParamType Episode = new GetCountriesLibraryQueryParamType(4L); - public static final GetCountriesLibraryQueryParamType Audio = new GetCountriesLibraryQueryParamType(8L); - public static final GetCountriesLibraryQueryParamType Album = new GetCountriesLibraryQueryParamType(9L); - public static final GetCountriesLibraryQueryParamType Track = new GetCountriesLibraryQueryParamType(10L); + public static final GetCountriesLibraryQueryParamType Artist = new GetCountriesLibraryQueryParamType(5L); + public static final GetCountriesLibraryQueryParamType Album = new GetCountriesLibraryQueryParamType(6L); + public static final GetCountriesLibraryQueryParamType Track = new GetCountriesLibraryQueryParamType(7L); + public static final GetCountriesLibraryQueryParamType PhotoAlbum = new GetCountriesLibraryQueryParamType(8L); + public static final GetCountriesLibraryQueryParamType Photo = new GetCountriesLibraryQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class GetCountriesLibraryQueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class GetCountriesLibraryQueryParamType { map.put(2L, GetCountriesLibraryQueryParamTypeEnum.TvShow); map.put(3L, GetCountriesLibraryQueryParamTypeEnum.Season); map.put(4L, GetCountriesLibraryQueryParamTypeEnum.Episode); - map.put(8L, GetCountriesLibraryQueryParamTypeEnum.Audio); - map.put(9L, GetCountriesLibraryQueryParamTypeEnum.Album); - map.put(10L, GetCountriesLibraryQueryParamTypeEnum.Track); + map.put(5L, GetCountriesLibraryQueryParamTypeEnum.Artist); + map.put(6L, GetCountriesLibraryQueryParamTypeEnum.Album); + map.put(7L, GetCountriesLibraryQueryParamTypeEnum.Track); + map.put(8L, GetCountriesLibraryQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetCountriesLibraryQueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class GetCountriesLibraryQueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryQueryParamType.java index d1266e78..65546107 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryQueryParamType.java @@ -60,9 +60,11 @@ public class GetGenresLibraryQueryParamType { public static final GetGenresLibraryQueryParamType TvShow = new GetGenresLibraryQueryParamType(2L); public static final GetGenresLibraryQueryParamType Season = new GetGenresLibraryQueryParamType(3L); public static final GetGenresLibraryQueryParamType Episode = new GetGenresLibraryQueryParamType(4L); - public static final GetGenresLibraryQueryParamType Audio = new GetGenresLibraryQueryParamType(8L); - public static final GetGenresLibraryQueryParamType Album = new GetGenresLibraryQueryParamType(9L); - public static final GetGenresLibraryQueryParamType Track = new GetGenresLibraryQueryParamType(10L); + public static final GetGenresLibraryQueryParamType Artist = new GetGenresLibraryQueryParamType(5L); + public static final GetGenresLibraryQueryParamType Album = new GetGenresLibraryQueryParamType(6L); + public static final GetGenresLibraryQueryParamType Track = new GetGenresLibraryQueryParamType(7L); + public static final GetGenresLibraryQueryParamType PhotoAlbum = new GetGenresLibraryQueryParamType(8L); + public static final GetGenresLibraryQueryParamType Photo = new GetGenresLibraryQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class GetGenresLibraryQueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class GetGenresLibraryQueryParamType { map.put(2L, GetGenresLibraryQueryParamTypeEnum.TvShow); map.put(3L, GetGenresLibraryQueryParamTypeEnum.Season); map.put(4L, GetGenresLibraryQueryParamTypeEnum.Episode); - map.put(8L, GetGenresLibraryQueryParamTypeEnum.Audio); - map.put(9L, GetGenresLibraryQueryParamTypeEnum.Album); - map.put(10L, GetGenresLibraryQueryParamTypeEnum.Track); + map.put(5L, GetGenresLibraryQueryParamTypeEnum.Artist); + map.put(6L, GetGenresLibraryQueryParamTypeEnum.Album); + map.put(7L, GetGenresLibraryQueryParamTypeEnum.Track); + map.put(8L, GetGenresLibraryQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetGenresLibraryQueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class GetGenresLibraryQueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsLibraryType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsLibraryType.java index ed0339aa..8779e1f1 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsLibraryType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsLibraryType.java @@ -44,7 +44,7 @@ import java.util.Optional; /** * GetLibraryItemsLibraryType * - *

The type of media content + *

The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonDeserialize(using = GetLibraryItemsLibraryType._Deserializer.class) @JsonSerialize(using = GetLibraryItemsLibraryType._Serializer.class) @@ -56,6 +56,10 @@ public class GetLibraryItemsLibraryType { public static final GetLibraryItemsLibraryType Episode = new GetLibraryItemsLibraryType("episode"); public static final GetLibraryItemsLibraryType Artist = new GetLibraryItemsLibraryType("artist"); public static final GetLibraryItemsLibraryType Album = new GetLibraryItemsLibraryType("album"); + public static final GetLibraryItemsLibraryType Track = new GetLibraryItemsLibraryType("track"); + public static final GetLibraryItemsLibraryType PhotoAlbum = new GetLibraryItemsLibraryType("photoalbum"); + public static final GetLibraryItemsLibraryType Photo = new GetLibraryItemsLibraryType("photo"); + public static final GetLibraryItemsLibraryType Collection = new GetLibraryItemsLibraryType("collection"); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -133,6 +137,10 @@ public class GetLibraryItemsLibraryType { map.put("episode", Episode); map.put("artist", Artist); map.put("album", Album); + map.put("track", Track); + map.put("photoalbum", PhotoAlbum); + map.put("photo", Photo); + map.put("collection", Collection); return map; } @@ -144,6 +152,10 @@ public class GetLibraryItemsLibraryType { map.put("episode", GetLibraryItemsLibraryTypeEnum.Episode); map.put("artist", GetLibraryItemsLibraryTypeEnum.Artist); map.put("album", GetLibraryItemsLibraryTypeEnum.Album); + map.put("track", GetLibraryItemsLibraryTypeEnum.Track); + map.put("photoalbum", GetLibraryItemsLibraryTypeEnum.PhotoAlbum); + map.put("photo", GetLibraryItemsLibraryTypeEnum.Photo); + map.put("collection", GetLibraryItemsLibraryTypeEnum.Collection); return map; } @@ -184,7 +196,11 @@ public class GetLibraryItemsLibraryType { Season("season"), Episode("episode"), Artist("artist"), - Album("album"),; + Album("album"), + Track("track"), + PhotoAlbum("photoalbum"), + Photo("photo"), + Collection("collection"),; private final String value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsMetadata.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsMetadata.java index 09d3c019..bf6f78be 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsMetadata.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsMetadata.java @@ -57,7 +57,7 @@ public class GetLibraryItemsMetadata { private Optional librarySectionKey; /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonProperty("type") private GetLibraryItemsLibraryType type; @@ -647,7 +647,7 @@ public class GetLibraryItemsMetadata { } /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonIgnore public GetLibraryItemsLibraryType type() { @@ -1124,7 +1124,7 @@ public class GetLibraryItemsMetadata { } /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ public GetLibraryItemsMetadata withType(GetLibraryItemsLibraryType type) { Utils.checkNotNull(type, "type"); @@ -2471,7 +2471,7 @@ public class GetLibraryItemsMetadata { } /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ public Builder type(GetLibraryItemsLibraryType type) { Utils.checkNotNull(type, "type"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsQueryParamType.java index ee8aba7b..7aefb7e7 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibraryItemsQueryParamType.java @@ -60,9 +60,11 @@ public class GetLibraryItemsQueryParamType { public static final GetLibraryItemsQueryParamType TvShow = new GetLibraryItemsQueryParamType(2L); public static final GetLibraryItemsQueryParamType Season = new GetLibraryItemsQueryParamType(3L); public static final GetLibraryItemsQueryParamType Episode = new GetLibraryItemsQueryParamType(4L); - public static final GetLibraryItemsQueryParamType Audio = new GetLibraryItemsQueryParamType(8L); - public static final GetLibraryItemsQueryParamType Album = new GetLibraryItemsQueryParamType(9L); - public static final GetLibraryItemsQueryParamType Track = new GetLibraryItemsQueryParamType(10L); + public static final GetLibraryItemsQueryParamType Artist = new GetLibraryItemsQueryParamType(5L); + public static final GetLibraryItemsQueryParamType Album = new GetLibraryItemsQueryParamType(6L); + public static final GetLibraryItemsQueryParamType Track = new GetLibraryItemsQueryParamType(7L); + public static final GetLibraryItemsQueryParamType PhotoAlbum = new GetLibraryItemsQueryParamType(8L); + public static final GetLibraryItemsQueryParamType Photo = new GetLibraryItemsQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class GetLibraryItemsQueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class GetLibraryItemsQueryParamType { map.put(2L, GetLibraryItemsQueryParamTypeEnum.TvShow); map.put(3L, GetLibraryItemsQueryParamTypeEnum.Season); map.put(4L, GetLibraryItemsQueryParamTypeEnum.Episode); - map.put(8L, GetLibraryItemsQueryParamTypeEnum.Audio); - map.put(9L, GetLibraryItemsQueryParamTypeEnum.Album); - map.put(10L, GetLibraryItemsQueryParamTypeEnum.Track); + map.put(5L, GetLibraryItemsQueryParamTypeEnum.Artist); + map.put(6L, GetLibraryItemsQueryParamTypeEnum.Album); + map.put(7L, GetLibraryItemsQueryParamTypeEnum.Track); + map.put(8L, GetLibraryItemsQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetLibraryItemsQueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class GetLibraryItemsQueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryActiveDirection.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllActiveDirection.java similarity index 66% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryActiveDirection.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllActiveDirection.java index bcdccb3d..a70b179c 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryActiveDirection.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllActiveDirection.java @@ -9,18 +9,18 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryActiveDirection + * GetLibrarySectionsAllActiveDirection * *

The direction of the sort. Can be either `asc` or `desc`. */ -public enum GetAllMediaLibraryActiveDirection { +public enum GetLibrarySectionsAllActiveDirection { Ascending("asc"), Descending("desc"); @JsonValue private final String value; - private GetAllMediaLibraryActiveDirection(String value) { + private GetLibrarySectionsAllActiveDirection(String value) { this.value = value; } @@ -28,8 +28,8 @@ public enum GetAllMediaLibraryActiveDirection { return value; } - public static Optional fromValue(String value) { - for (GetAllMediaLibraryActiveDirection o: GetAllMediaLibraryActiveDirection.values()) { + public static Optional fromValue(String value) { + for (GetLibrarySectionsAllActiveDirection o: GetLibrarySectionsAllActiveDirection.values()) { if (Objects.deepEquals(o.value, value)) { return Optional.of(o); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCollection.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCollection.java similarity index 82% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCollection.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCollection.java index 35a3f125..30fbc123 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCollection.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCollection.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryCollection { +public class GetLibrarySectionsAllCollection { /** * The user-made collection this media item belongs to @@ -20,7 +20,7 @@ public class GetAllMediaLibraryCollection { private String tag; @JsonCreator - public GetAllMediaLibraryCollection( + public GetLibrarySectionsAllCollection( @JsonProperty("tag") String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; @@ -41,7 +41,7 @@ public class GetAllMediaLibraryCollection { /** * The user-made collection this media item belongs to */ - public GetAllMediaLibraryCollection withTag(String tag) { + public GetLibrarySectionsAllCollection withTag(String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; return this; @@ -56,7 +56,7 @@ public class GetAllMediaLibraryCollection { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryCollection other = (GetAllMediaLibraryCollection) o; + GetLibrarySectionsAllCollection other = (GetLibrarySectionsAllCollection) o; return Objects.deepEquals(this.tag, other.tag); } @@ -69,7 +69,7 @@ public class GetAllMediaLibraryCollection { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryCollection.class, + return Utils.toString(GetLibrarySectionsAllCollection.class, "tag", tag); } @@ -90,8 +90,8 @@ public class GetAllMediaLibraryCollection { return this; } - public GetAllMediaLibraryCollection build() { - return new GetAllMediaLibraryCollection( + public GetLibrarySectionsAllCollection build() { + return new GetLibrarySectionsAllCollection( tag); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCountry.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCountry.java similarity index 82% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCountry.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCountry.java index b94fbdfa..1a985f29 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryCountry.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllCountry.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryCountry { +public class GetLibrarySectionsAllCountry { /** * The country of origin of this media item @@ -20,7 +20,7 @@ public class GetAllMediaLibraryCountry { private String tag; @JsonCreator - public GetAllMediaLibraryCountry( + public GetLibrarySectionsAllCountry( @JsonProperty("tag") String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; @@ -41,7 +41,7 @@ public class GetAllMediaLibraryCountry { /** * The country of origin of this media item */ - public GetAllMediaLibraryCountry withTag(String tag) { + public GetLibrarySectionsAllCountry withTag(String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; return this; @@ -56,7 +56,7 @@ public class GetAllMediaLibraryCountry { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryCountry other = (GetAllMediaLibraryCountry) o; + GetLibrarySectionsAllCountry other = (GetLibrarySectionsAllCountry) o; return Objects.deepEquals(this.tag, other.tag); } @@ -69,7 +69,7 @@ public class GetAllMediaLibraryCountry { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryCountry.class, + return Utils.toString(GetLibrarySectionsAllCountry.class, "tag", tag); } @@ -90,8 +90,8 @@ public class GetAllMediaLibraryCountry { return this; } - public GetAllMediaLibraryCountry build() { - return new GetAllMediaLibraryCountry( + public GetLibrarySectionsAllCountry build() { + return new GetLibrarySectionsAllCountry( tag); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDefaultDirection.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDefaultDirection.java similarity index 65% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDefaultDirection.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDefaultDirection.java index e46211b4..2b135d4e 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDefaultDirection.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDefaultDirection.java @@ -9,18 +9,18 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryDefaultDirection + * GetLibrarySectionsAllDefaultDirection * *

The direction of the sort. Can be either `asc` or `desc`. */ -public enum GetAllMediaLibraryDefaultDirection { +public enum GetLibrarySectionsAllDefaultDirection { Ascending("asc"), Descending("desc"); @JsonValue private final String value; - private GetAllMediaLibraryDefaultDirection(String value) { + private GetLibrarySectionsAllDefaultDirection(String value) { this.value = value; } @@ -28,8 +28,8 @@ public enum GetAllMediaLibraryDefaultDirection { return value; } - public static Optional fromValue(String value) { - for (GetAllMediaLibraryDefaultDirection o: GetAllMediaLibraryDefaultDirection.values()) { + public static Optional fromValue(String value) { + for (GetLibrarySectionsAllDefaultDirection o: GetLibrarySectionsAllDefaultDirection.values()) { if (Objects.deepEquals(o.value, value)) { return Optional.of(o); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDirector.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDirector.java similarity index 82% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDirector.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDirector.java index a0bdf1bc..64992f0f 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryDirector.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllDirector.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryDirector { +public class GetLibrarySectionsAllDirector { /** * The role of Director @@ -20,7 +20,7 @@ public class GetAllMediaLibraryDirector { private String tag; @JsonCreator - public GetAllMediaLibraryDirector( + public GetLibrarySectionsAllDirector( @JsonProperty("tag") String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; @@ -41,7 +41,7 @@ public class GetAllMediaLibraryDirector { /** * The role of Director */ - public GetAllMediaLibraryDirector withTag(String tag) { + public GetLibrarySectionsAllDirector withTag(String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; return this; @@ -56,7 +56,7 @@ public class GetAllMediaLibraryDirector { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryDirector other = (GetAllMediaLibraryDirector) o; + GetLibrarySectionsAllDirector other = (GetLibrarySectionsAllDirector) o; return Objects.deepEquals(this.tag, other.tag); } @@ -69,7 +69,7 @@ public class GetAllMediaLibraryDirector { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryDirector.class, + return Utils.toString(GetLibrarySectionsAllDirector.class, "tag", tag); } @@ -90,8 +90,8 @@ public class GetAllMediaLibraryDirector { return this; } - public GetAllMediaLibraryDirector build() { - return new GetAllMediaLibraryDirector( + public GetLibrarySectionsAllDirector build() { + return new GetLibrarySectionsAllDirector( tag); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryField.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllField.java similarity index 86% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryField.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllField.java index b97c3aa1..85193397 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryField.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllField.java @@ -14,7 +14,7 @@ import java.lang.String; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryField { +public class GetLibrarySectionsAllField { @JsonProperty("key") private String key; @@ -30,7 +30,7 @@ public class GetAllMediaLibraryField { private Optional subType; @JsonCreator - public GetAllMediaLibraryField( + public GetLibrarySectionsAllField( @JsonProperty("key") String key, @JsonProperty("title") String title, @JsonProperty("type") String type, @@ -45,7 +45,7 @@ public class GetAllMediaLibraryField { this.subType = subType; } - public GetAllMediaLibraryField( + public GetLibrarySectionsAllField( String key, String title, String type) { @@ -76,31 +76,31 @@ public class GetAllMediaLibraryField { return new Builder(); } - public GetAllMediaLibraryField withKey(String key) { + public GetLibrarySectionsAllField withKey(String key) { Utils.checkNotNull(key, "key"); this.key = key; return this; } - public GetAllMediaLibraryField withTitle(String title) { + public GetLibrarySectionsAllField withTitle(String title) { Utils.checkNotNull(title, "title"); this.title = title; return this; } - public GetAllMediaLibraryField withType(String type) { + public GetLibrarySectionsAllField withType(String type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } - public GetAllMediaLibraryField withSubType(String subType) { + public GetLibrarySectionsAllField withSubType(String subType) { Utils.checkNotNull(subType, "subType"); this.subType = Optional.ofNullable(subType); return this; } - public GetAllMediaLibraryField withSubType(Optional subType) { + public GetLibrarySectionsAllField withSubType(Optional subType) { Utils.checkNotNull(subType, "subType"); this.subType = subType; return this; @@ -115,7 +115,7 @@ public class GetAllMediaLibraryField { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryField other = (GetAllMediaLibraryField) o; + GetLibrarySectionsAllField other = (GetLibrarySectionsAllField) o; return Objects.deepEquals(this.key, other.key) && Objects.deepEquals(this.title, other.title) && @@ -134,7 +134,7 @@ public class GetAllMediaLibraryField { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryField.class, + return Utils.toString(GetLibrarySectionsAllField.class, "key", key, "title", title, "type", type, @@ -185,8 +185,8 @@ public class GetAllMediaLibraryField { return this; } - public GetAllMediaLibraryField build() { - return new GetAllMediaLibraryField( + public GetLibrarySectionsAllField build() { + return new GetLibrarySectionsAllField( key, title, type, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFieldType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFieldType.java similarity index 72% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFieldType.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFieldType.java index 383b5efd..8228797a 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFieldType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFieldType.java @@ -12,18 +12,18 @@ import java.lang.String; import java.util.List; import java.util.Objects; -public class GetAllMediaLibraryFieldType { +public class GetLibrarySectionsAllFieldType { @JsonProperty("type") private String type; @JsonProperty("Operator") - private List operator; + private List operator; @JsonCreator - public GetAllMediaLibraryFieldType( + public GetLibrarySectionsAllFieldType( @JsonProperty("type") String type, - @JsonProperty("Operator") List operator) { + @JsonProperty("Operator") List operator) { Utils.checkNotNull(type, "type"); Utils.checkNotNull(operator, "operator"); this.type = type; @@ -36,7 +36,7 @@ public class GetAllMediaLibraryFieldType { } @JsonIgnore - public List operator() { + public List operator() { return operator; } @@ -44,13 +44,13 @@ public class GetAllMediaLibraryFieldType { return new Builder(); } - public GetAllMediaLibraryFieldType withType(String type) { + public GetLibrarySectionsAllFieldType withType(String type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } - public GetAllMediaLibraryFieldType withOperator(List operator) { + public GetLibrarySectionsAllFieldType withOperator(List operator) { Utils.checkNotNull(operator, "operator"); this.operator = operator; return this; @@ -65,7 +65,7 @@ public class GetAllMediaLibraryFieldType { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryFieldType other = (GetAllMediaLibraryFieldType) o; + GetLibrarySectionsAllFieldType other = (GetLibrarySectionsAllFieldType) o; return Objects.deepEquals(this.type, other.type) && Objects.deepEquals(this.operator, other.operator); @@ -80,7 +80,7 @@ public class GetAllMediaLibraryFieldType { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryFieldType.class, + return Utils.toString(GetLibrarySectionsAllFieldType.class, "type", type, "operator", operator); } @@ -89,7 +89,7 @@ public class GetAllMediaLibraryFieldType { private String type; - private List operator; + private List operator; private Builder() { // force use of static builder() method @@ -101,14 +101,14 @@ public class GetAllMediaLibraryFieldType { return this; } - public Builder operator(List operator) { + public Builder operator(List operator) { Utils.checkNotNull(operator, "operator"); this.operator = operator; return this; } - public GetAllMediaLibraryFieldType build() { - return new GetAllMediaLibraryFieldType( + public GetLibrarySectionsAllFieldType build() { + return new GetLibrarySectionsAllFieldType( type, operator); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFilter.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFilter.java similarity index 87% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFilter.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFilter.java index ac9f4793..fcca2f5b 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryFilter.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllFilter.java @@ -15,7 +15,7 @@ import java.lang.String; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryFilter { +public class GetLibrarySectionsAllFilter { @JsonProperty("filter") private String filter; @@ -37,7 +37,7 @@ public class GetAllMediaLibraryFilter { private Optional advanced; @JsonCreator - public GetAllMediaLibraryFilter( + public GetLibrarySectionsAllFilter( @JsonProperty("filter") String filter, @JsonProperty("filterType") String filterType, @JsonProperty("key") String key, @@ -58,7 +58,7 @@ public class GetAllMediaLibraryFilter { this.advanced = advanced; } - public GetAllMediaLibraryFilter( + public GetLibrarySectionsAllFilter( String filter, String filterType, String key, @@ -101,43 +101,43 @@ public class GetAllMediaLibraryFilter { return new Builder(); } - public GetAllMediaLibraryFilter withFilter(String filter) { + public GetLibrarySectionsAllFilter withFilter(String filter) { Utils.checkNotNull(filter, "filter"); this.filter = filter; return this; } - public GetAllMediaLibraryFilter withFilterType(String filterType) { + public GetLibrarySectionsAllFilter withFilterType(String filterType) { Utils.checkNotNull(filterType, "filterType"); this.filterType = filterType; return this; } - public GetAllMediaLibraryFilter withKey(String key) { + public GetLibrarySectionsAllFilter withKey(String key) { Utils.checkNotNull(key, "key"); this.key = key; return this; } - public GetAllMediaLibraryFilter withTitle(String title) { + public GetLibrarySectionsAllFilter withTitle(String title) { Utils.checkNotNull(title, "title"); this.title = title; return this; } - public GetAllMediaLibraryFilter withType(String type) { + public GetLibrarySectionsAllFilter withType(String type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } - public GetAllMediaLibraryFilter withAdvanced(boolean advanced) { + public GetLibrarySectionsAllFilter withAdvanced(boolean advanced) { Utils.checkNotNull(advanced, "advanced"); this.advanced = Optional.ofNullable(advanced); return this; } - public GetAllMediaLibraryFilter withAdvanced(Optional advanced) { + public GetLibrarySectionsAllFilter withAdvanced(Optional advanced) { Utils.checkNotNull(advanced, "advanced"); this.advanced = advanced; return this; @@ -152,7 +152,7 @@ public class GetAllMediaLibraryFilter { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryFilter other = (GetAllMediaLibraryFilter) o; + GetLibrarySectionsAllFilter other = (GetLibrarySectionsAllFilter) o; return Objects.deepEquals(this.filter, other.filter) && Objects.deepEquals(this.filterType, other.filterType) && @@ -175,7 +175,7 @@ public class GetAllMediaLibraryFilter { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryFilter.class, + return Utils.toString(GetLibrarySectionsAllFilter.class, "filter", filter, "filterType", filterType, "key", key, @@ -244,8 +244,8 @@ public class GetAllMediaLibraryFilter { return this; } - public GetAllMediaLibraryFilter build() { - return new GetAllMediaLibraryFilter( + public GetLibrarySectionsAllFilter build() { + return new GetLibrarySectionsAllFilter( filter, filterType, key, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGenre.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGenre.java similarity index 83% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGenre.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGenre.java index b9b8fe2c..57a05e1f 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryGenre.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGenre.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryGenre { +public class GetLibrarySectionsAllGenre { /** * The genre name of this media-item @@ -20,7 +20,7 @@ public class GetAllMediaLibraryGenre { private String tag; @JsonCreator - public GetAllMediaLibraryGenre( + public GetLibrarySectionsAllGenre( @JsonProperty("tag") String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; @@ -41,7 +41,7 @@ public class GetAllMediaLibraryGenre { /** * The genre name of this media-item */ - public GetAllMediaLibraryGenre withTag(String tag) { + public GetLibrarySectionsAllGenre withTag(String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; return this; @@ -56,7 +56,7 @@ public class GetAllMediaLibraryGenre { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryGenre other = (GetAllMediaLibraryGenre) o; + GetLibrarySectionsAllGenre other = (GetLibrarySectionsAllGenre) o; return Objects.deepEquals(this.tag, other.tag); } @@ -69,7 +69,7 @@ public class GetAllMediaLibraryGenre { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryGenre.class, + return Utils.toString(GetLibrarySectionsAllGenre.class, "tag", tag); } @@ -90,8 +90,8 @@ public class GetAllMediaLibraryGenre { return this; } - public GetAllMediaLibraryGenre build() { - return new GetAllMediaLibraryGenre( + public GetLibrarySectionsAllGenre build() { + return new GetLibrarySectionsAllGenre( tag); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGuids.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGuids.java new file mode 100644 index 00000000..60c0e2b5 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllGuids.java @@ -0,0 +1,98 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package dev.plexapi.sdk.models.operations; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +public class GetLibrarySectionsAllGuids { + + /** + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// + */ + @JsonProperty("id") + private String id; + + @JsonCreator + public GetLibrarySectionsAllGuids( + @JsonProperty("id") String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + } + + /** + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// + */ + @JsonIgnore + public String id() { + return id; + } + + public final static Builder builder() { + return new Builder(); + } + + /** + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// + */ + public GetLibrarySectionsAllGuids withId(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetLibrarySectionsAllGuids other = (GetLibrarySectionsAllGuids) o; + return + Objects.deepEquals(this.id, other.id); + } + + @Override + public int hashCode() { + return Objects.hash( + id); + } + + @Override + public String toString() { + return Utils.toString(GetLibrarySectionsAllGuids.class, + "id", id); + } + + public final static class Builder { + + private String id; + + private Builder() { + // force use of static builder() method + } + + /** + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// + */ + public Builder id(String id) { + Utils.checkNotNull(id, "id"); + this.id = id; + return this; + } + + public GetLibrarySectionsAllGuids build() { + return new GetLibrarySectionsAllGuids( + id); + } + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryHasThumbnail.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllHasThumbnail.java similarity index 66% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryHasThumbnail.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllHasThumbnail.java index bff27bd4..8120a03b 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryHasThumbnail.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllHasThumbnail.java @@ -9,18 +9,18 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryHasThumbnail + * GetLibrarySectionsAllHasThumbnail * *

Indicates if the part has a thumbnail. */ -public enum GetAllMediaLibraryHasThumbnail { +public enum GetLibrarySectionsAllHasThumbnail { False("0"), True("1"); @JsonValue private final String value; - private GetAllMediaLibraryHasThumbnail(String value) { + private GetLibrarySectionsAllHasThumbnail(String value) { this.value = value; } @@ -28,8 +28,8 @@ public enum GetAllMediaLibraryHasThumbnail { return value; } - public static Optional fromValue(String value) { - for (GetAllMediaLibraryHasThumbnail o: GetAllMediaLibraryHasThumbnail.values()) { + public static Optional fromValue(String value) { + for (GetLibrarySectionsAllHasThumbnail o: GetLibrarySectionsAllHasThumbnail.values()) { if (Objects.deepEquals(o.value, value)) { return Optional.of(o); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryImage.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllImage.java similarity index 75% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryImage.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllImage.java index 64440095..3fffc810 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryImage.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllImage.java @@ -11,21 +11,21 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryImage { +public class GetLibrarySectionsAllImage { @JsonProperty("alt") private String alt; @JsonProperty("type") - private GetAllMediaLibraryLibraryResponseType type; + private GetLibrarySectionsAllLibraryResponseType type; @JsonProperty("url") private String url; @JsonCreator - public GetAllMediaLibraryImage( + public GetLibrarySectionsAllImage( @JsonProperty("alt") String alt, - @JsonProperty("type") GetAllMediaLibraryLibraryResponseType type, + @JsonProperty("type") GetLibrarySectionsAllLibraryResponseType type, @JsonProperty("url") String url) { Utils.checkNotNull(alt, "alt"); Utils.checkNotNull(type, "type"); @@ -41,7 +41,7 @@ public class GetAllMediaLibraryImage { } @JsonIgnore - public GetAllMediaLibraryLibraryResponseType type() { + public GetLibrarySectionsAllLibraryResponseType type() { return type; } @@ -54,19 +54,19 @@ public class GetAllMediaLibraryImage { return new Builder(); } - public GetAllMediaLibraryImage withAlt(String alt) { + public GetLibrarySectionsAllImage withAlt(String alt) { Utils.checkNotNull(alt, "alt"); this.alt = alt; return this; } - public GetAllMediaLibraryImage withType(GetAllMediaLibraryLibraryResponseType type) { + public GetLibrarySectionsAllImage withType(GetLibrarySectionsAllLibraryResponseType type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } - public GetAllMediaLibraryImage withUrl(String url) { + public GetLibrarySectionsAllImage withUrl(String url) { Utils.checkNotNull(url, "url"); this.url = url; return this; @@ -81,7 +81,7 @@ public class GetAllMediaLibraryImage { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryImage other = (GetAllMediaLibraryImage) o; + GetLibrarySectionsAllImage other = (GetLibrarySectionsAllImage) o; return Objects.deepEquals(this.alt, other.alt) && Objects.deepEquals(this.type, other.type) && @@ -98,7 +98,7 @@ public class GetAllMediaLibraryImage { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryImage.class, + return Utils.toString(GetLibrarySectionsAllImage.class, "alt", alt, "type", type, "url", url); @@ -108,7 +108,7 @@ public class GetAllMediaLibraryImage { private String alt; - private GetAllMediaLibraryLibraryResponseType type; + private GetLibrarySectionsAllLibraryResponseType type; private String url; @@ -122,7 +122,7 @@ public class GetAllMediaLibraryImage { return this; } - public Builder type(GetAllMediaLibraryLibraryResponseType type) { + public Builder type(GetLibrarySectionsAllLibraryResponseType type) { Utils.checkNotNull(type, "type"); this.type = type; return this; @@ -134,8 +134,8 @@ public class GetAllMediaLibraryImage { return this; } - public GetAllMediaLibraryImage build() { - return new GetAllMediaLibraryImage( + public GetLibrarySectionsAllImage build() { + return new GetLibrarySectionsAllImage( alt, type, url); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.java similarity index 62% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.java index 9e77b2a0..c580fed7 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryOptimizedForStreaming.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryOptimizedForStreaming.java @@ -18,34 +18,34 @@ import java.lang.SuppressWarnings; import java.util.Objects; /** - * GetAllMediaLibraryLibraryOptimizedForStreaming + * GetLibrarySectionsAllLibraryOptimizedForStreaming * *

Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ -@JsonDeserialize(using = GetAllMediaLibraryLibraryOptimizedForStreaming._Deserializer.class) -public class GetAllMediaLibraryLibraryOptimizedForStreaming { +@JsonDeserialize(using = GetLibrarySectionsAllLibraryOptimizedForStreaming._Deserializer.class) +public class GetLibrarySectionsAllLibraryOptimizedForStreaming { @JsonValue private TypedObject value; - private GetAllMediaLibraryLibraryOptimizedForStreaming(TypedObject value) { + private GetLibrarySectionsAllLibraryOptimizedForStreaming(TypedObject value) { this.value = value; } - public static GetAllMediaLibraryLibraryOptimizedForStreaming of(GetAllMediaLibraryOptimizedForStreaming1 value) { + public static GetLibrarySectionsAllLibraryOptimizedForStreaming of(GetLibrarySectionsAllOptimizedForStreaming1 value) { Utils.checkNotNull(value, "value"); - return new GetAllMediaLibraryLibraryOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); + return new GetLibrarySectionsAllLibraryOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); } - public static GetAllMediaLibraryLibraryOptimizedForStreaming of(boolean value) { + public static GetLibrarySectionsAllLibraryOptimizedForStreaming of(boolean value) { Utils.checkNotNull(value, "value"); - return new GetAllMediaLibraryLibraryOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); + return new GetLibrarySectionsAllLibraryOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); } /** * Returns an instance of one of these types: *

    - *
  • {@code dev.plexapi.sdk.models.operations.GetAllMediaLibraryOptimizedForStreaming1}
  • + *
  • {@code dev.plexapi.sdk.models.operations.GetLibrarySectionsAllOptimizedForStreaming1}
  • *
  • {@code boolean}
  • *
* @@ -72,7 +72,7 @@ public class GetAllMediaLibraryLibraryOptimizedForStreaming { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryLibraryOptimizedForStreaming other = (GetAllMediaLibraryLibraryOptimizedForStreaming) o; + GetLibrarySectionsAllLibraryOptimizedForStreaming other = (GetLibrarySectionsAllLibraryOptimizedForStreaming) o; return Objects.deepEquals(this.value.value(), other.value.value()); } @@ -82,18 +82,18 @@ public class GetAllMediaLibraryLibraryOptimizedForStreaming { } @SuppressWarnings("serial") - public static final class _Deserializer extends OneOfDeserializer { + public static final class _Deserializer extends OneOfDeserializer { public _Deserializer() { - super(GetAllMediaLibraryLibraryOptimizedForStreaming.class, false, + super(GetLibrarySectionsAllLibraryOptimizedForStreaming.class, false, TypeReferenceWithShape.of(new TypeReference() {}, JsonShape.DEFAULT), - TypeReferenceWithShape.of(new TypeReference() {}, JsonShape.DEFAULT)); + TypeReferenceWithShape.of(new TypeReference() {}, JsonShape.DEFAULT)); } } @Override public String toString() { - return Utils.toString(GetAllMediaLibraryLibraryOptimizedForStreaming.class, + return Utils.toString(GetLibrarySectionsAllLibraryOptimizedForStreaming.class, "value", value); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryResponseType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryResponseType.java similarity index 56% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryResponseType.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryResponseType.java index a65d0c1e..3c150a98 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryLibraryResponseType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryResponseType.java @@ -41,39 +41,39 @@ import java.util.Optional; * use the {@code asEnum()} method (after dealing with the `Optional` appropriately). * */ -@JsonDeserialize(using = GetAllMediaLibraryLibraryResponseType._Deserializer.class) -@JsonSerialize(using = GetAllMediaLibraryLibraryResponseType._Serializer.class) -public class GetAllMediaLibraryLibraryResponseType { +@JsonDeserialize(using = GetLibrarySectionsAllLibraryResponseType._Deserializer.class) +@JsonSerialize(using = GetLibrarySectionsAllLibraryResponseType._Serializer.class) +public class GetLibrarySectionsAllLibraryResponseType { - public static final GetAllMediaLibraryLibraryResponseType COVER_POSTER = new GetAllMediaLibraryLibraryResponseType("coverPoster"); - public static final GetAllMediaLibraryLibraryResponseType BACKGROUND = new GetAllMediaLibraryLibraryResponseType("background"); - public static final GetAllMediaLibraryLibraryResponseType SNAPSHOT = new GetAllMediaLibraryLibraryResponseType("snapshot"); - public static final GetAllMediaLibraryLibraryResponseType CLEAR_LOGO = new GetAllMediaLibraryLibraryResponseType("clearLogo"); + public static final GetLibrarySectionsAllLibraryResponseType COVER_POSTER = new GetLibrarySectionsAllLibraryResponseType("coverPoster"); + public static final GetLibrarySectionsAllLibraryResponseType BACKGROUND = new GetLibrarySectionsAllLibraryResponseType("background"); + public static final GetLibrarySectionsAllLibraryResponseType SNAPSHOT = new GetLibrarySectionsAllLibraryResponseType("snapshot"); + public static final GetLibrarySectionsAllLibraryResponseType CLEAR_LOGO = new GetLibrarySectionsAllLibraryResponseType("clearLogo"); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not // careful). Keep this field lower case to avoid clashing with // generated member names which will always be upper cased (Java // convention) - private static final Map values = createValuesMap(); - private static final Map enums = createEnumsMap(); + private static final Map values = createValuesMap(); + private static final Map enums = createEnumsMap(); private final String value; - private GetAllMediaLibraryLibraryResponseType(String value) { + private GetLibrarySectionsAllLibraryResponseType(String value) { this.value = value; } /** - * Returns a GetAllMediaLibraryLibraryResponseType with the given value. For a specific value the + * Returns a GetLibrarySectionsAllLibraryResponseType with the given value. For a specific value the * returned object will always be a singleton so reference equality * is satisfied when the values are the same. * - * @param value value to be wrapped as GetAllMediaLibraryLibraryResponseType + * @param value value to be wrapped as GetLibrarySectionsAllLibraryResponseType */ - public static GetAllMediaLibraryLibraryResponseType of(String value) { - synchronized (GetAllMediaLibraryLibraryResponseType.class) { - return values.computeIfAbsent(value, v -> new GetAllMediaLibraryLibraryResponseType(v)); + public static GetLibrarySectionsAllLibraryResponseType of(String value) { + synchronized (GetLibrarySectionsAllLibraryResponseType.class) { + return values.computeIfAbsent(value, v -> new GetLibrarySectionsAllLibraryResponseType(v)); } } @@ -81,7 +81,7 @@ public class GetAllMediaLibraryLibraryResponseType { return value; } - public Optional asEnum() { + public Optional asEnum() { return Optional.ofNullable(enums.getOrDefault(value, null)); } @@ -102,24 +102,24 @@ public class GetAllMediaLibraryLibraryResponseType { return false; if (getClass() != obj.getClass()) return false; - GetAllMediaLibraryLibraryResponseType other = (GetAllMediaLibraryLibraryResponseType) obj; + GetLibrarySectionsAllLibraryResponseType other = (GetLibrarySectionsAllLibraryResponseType) obj; return Objects.equals(value, other.value); } @Override public String toString() { - return "GetAllMediaLibraryLibraryResponseType [value=" + value + "]"; + return "GetLibrarySectionsAllLibraryResponseType [value=" + value + "]"; } // return an array just like an enum - public static GetAllMediaLibraryLibraryResponseType[] values() { - synchronized (GetAllMediaLibraryLibraryResponseType.class) { - return values.values().toArray(new GetAllMediaLibraryLibraryResponseType[] {}); + public static GetLibrarySectionsAllLibraryResponseType[] values() { + synchronized (GetLibrarySectionsAllLibraryResponseType.class) { + return values.values().toArray(new GetLibrarySectionsAllLibraryResponseType[] {}); } } - private static final Map createValuesMap() { - Map map = new LinkedHashMap<>(); + private static final Map createValuesMap() { + Map map = new LinkedHashMap<>(); map.put("coverPoster", COVER_POSTER); map.put("background", BACKGROUND); map.put("snapshot", SNAPSHOT); @@ -127,46 +127,46 @@ public class GetAllMediaLibraryLibraryResponseType { return map; } - private static final Map createEnumsMap() { - Map map = new HashMap<>(); - map.put("coverPoster", GetAllMediaLibraryLibraryResponseTypeEnum.COVER_POSTER); - map.put("background", GetAllMediaLibraryLibraryResponseTypeEnum.BACKGROUND); - map.put("snapshot", GetAllMediaLibraryLibraryResponseTypeEnum.SNAPSHOT); - map.put("clearLogo", GetAllMediaLibraryLibraryResponseTypeEnum.CLEAR_LOGO); + private static final Map createEnumsMap() { + Map map = new HashMap<>(); + map.put("coverPoster", GetLibrarySectionsAllLibraryResponseTypeEnum.COVER_POSTER); + map.put("background", GetLibrarySectionsAllLibraryResponseTypeEnum.BACKGROUND); + map.put("snapshot", GetLibrarySectionsAllLibraryResponseTypeEnum.SNAPSHOT); + map.put("clearLogo", GetLibrarySectionsAllLibraryResponseTypeEnum.CLEAR_LOGO); return map; } @SuppressWarnings("serial") - public static final class _Serializer extends StdSerializer { + public static final class _Serializer extends StdSerializer { protected _Serializer() { - super(GetAllMediaLibraryLibraryResponseType.class); + super(GetLibrarySectionsAllLibraryResponseType.class); } @Override - public void serialize(GetAllMediaLibraryLibraryResponseType value, JsonGenerator g, SerializerProvider provider) + public void serialize(GetLibrarySectionsAllLibraryResponseType value, JsonGenerator g, SerializerProvider provider) throws IOException, JsonProcessingException { g.writeObject(value.value); } } @SuppressWarnings("serial") - public static final class _Deserializer extends StdDeserializer { + public static final class _Deserializer extends StdDeserializer { protected _Deserializer() { - super(GetAllMediaLibraryLibraryResponseType.class); + super(GetLibrarySectionsAllLibraryResponseType.class); } @Override - public GetAllMediaLibraryLibraryResponseType deserialize(JsonParser p, DeserializationContext ctxt) + public GetLibrarySectionsAllLibraryResponseType deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException { String v = p.readValueAs(new TypeReference() {}); // use the factory method to ensure we get singletons - return GetAllMediaLibraryLibraryResponseType.of(v); + return GetLibrarySectionsAllLibraryResponseType.of(v); } } - public enum GetAllMediaLibraryLibraryResponseTypeEnum { + public enum GetLibrarySectionsAllLibraryResponseTypeEnum { COVER_POSTER("coverPoster"), BACKGROUND("background"), @@ -175,7 +175,7 @@ public class GetAllMediaLibraryLibraryResponseType { private final String value; - private GetAllMediaLibraryLibraryResponseTypeEnum(String value) { + private GetLibrarySectionsAllLibraryResponseTypeEnum(String value) { this.value = value; } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryType.java new file mode 100644 index 00000000..c9238b53 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllLibraryType.java @@ -0,0 +1,216 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package dev.plexapi.sdk.models.operations; + +import com.fasterxml.jackson.core.JacksonException; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +/** + *

Wrapper class for an "open" enum. "Open" enums are those that are expected + * to evolve (particularly with the addition of enum members over time). If an + * open enum is used then the appearance of unexpected enum values (say in a + * response from an updated an API) will not bring about a runtime error thus + * ensuring that non-updated client versions can continue to work without error. + * + *

Note that instances are immutable and are singletons (an internal thread-safe + * cache is maintained to ensure that). As a consequence instances created with the + * same value will satisfy reference equality (via {@code ==}). + * + *

This class is intended to emulate an enum (in terms of common usage and with + * reference equality) but with the ability to carry unknown values. Unfortunately + * Java does not permit the use of an instance in a switch expression but you can + * use the {@code asEnum()} method (after dealing with the `Optional` appropriately). + * + */ +/** + * GetLibrarySectionsAllLibraryType + * + *

The type of media content in the Plex library. This can represent videos, music, or photos. + */ +@JsonDeserialize(using = GetLibrarySectionsAllLibraryType._Deserializer.class) +@JsonSerialize(using = GetLibrarySectionsAllLibraryType._Serializer.class) +public class GetLibrarySectionsAllLibraryType { + + public static final GetLibrarySectionsAllLibraryType Movie = new GetLibrarySectionsAllLibraryType("movie"); + public static final GetLibrarySectionsAllLibraryType TvShow = new GetLibrarySectionsAllLibraryType("show"); + public static final GetLibrarySectionsAllLibraryType Season = new GetLibrarySectionsAllLibraryType("season"); + public static final GetLibrarySectionsAllLibraryType Episode = new GetLibrarySectionsAllLibraryType("episode"); + public static final GetLibrarySectionsAllLibraryType Artist = new GetLibrarySectionsAllLibraryType("artist"); + public static final GetLibrarySectionsAllLibraryType Album = new GetLibrarySectionsAllLibraryType("album"); + public static final GetLibrarySectionsAllLibraryType Track = new GetLibrarySectionsAllLibraryType("track"); + public static final GetLibrarySectionsAllLibraryType PhotoAlbum = new GetLibrarySectionsAllLibraryType("photoalbum"); + public static final GetLibrarySectionsAllLibraryType Photo = new GetLibrarySectionsAllLibraryType("photo"); + public static final GetLibrarySectionsAllLibraryType Collection = new GetLibrarySectionsAllLibraryType("collection"); + + // This map will grow whenever a Color gets created with a new + // unrecognized value (a potential memory leak if the user is not + // careful). Keep this field lower case to avoid clashing with + // generated member names which will always be upper cased (Java + // convention) + private static final Map values = createValuesMap(); + private static final Map enums = createEnumsMap(); + + private final String value; + + private GetLibrarySectionsAllLibraryType(String value) { + this.value = value; + } + + /** + * Returns a GetLibrarySectionsAllLibraryType with the given value. For a specific value the + * returned object will always be a singleton so reference equality + * is satisfied when the values are the same. + * + * @param value value to be wrapped as GetLibrarySectionsAllLibraryType + */ + public static GetLibrarySectionsAllLibraryType of(String value) { + synchronized (GetLibrarySectionsAllLibraryType.class) { + return values.computeIfAbsent(value, v -> new GetLibrarySectionsAllLibraryType(v)); + } + } + + public String value() { + return value; + } + + public Optional asEnum() { + return Optional.ofNullable(enums.getOrDefault(value, null)); + } + + public boolean isKnown() { + return asEnum().isPresent(); + } + + @Override + public int hashCode() { + return Objects.hash(value); + } + + @Override + public boolean equals(java.lang.Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GetLibrarySectionsAllLibraryType other = (GetLibrarySectionsAllLibraryType) obj; + return Objects.equals(value, other.value); + } + + @Override + public String toString() { + return "GetLibrarySectionsAllLibraryType [value=" + value + "]"; + } + + // return an array just like an enum + public static GetLibrarySectionsAllLibraryType[] values() { + synchronized (GetLibrarySectionsAllLibraryType.class) { + return values.values().toArray(new GetLibrarySectionsAllLibraryType[] {}); + } + } + + private static final Map createValuesMap() { + Map map = new LinkedHashMap<>(); + map.put("movie", Movie); + map.put("show", TvShow); + map.put("season", Season); + map.put("episode", Episode); + map.put("artist", Artist); + map.put("album", Album); + map.put("track", Track); + map.put("photoalbum", PhotoAlbum); + map.put("photo", Photo); + map.put("collection", Collection); + return map; + } + + private static final Map createEnumsMap() { + Map map = new HashMap<>(); + map.put("movie", GetLibrarySectionsAllLibraryTypeEnum.Movie); + map.put("show", GetLibrarySectionsAllLibraryTypeEnum.TvShow); + map.put("season", GetLibrarySectionsAllLibraryTypeEnum.Season); + map.put("episode", GetLibrarySectionsAllLibraryTypeEnum.Episode); + map.put("artist", GetLibrarySectionsAllLibraryTypeEnum.Artist); + map.put("album", GetLibrarySectionsAllLibraryTypeEnum.Album); + map.put("track", GetLibrarySectionsAllLibraryTypeEnum.Track); + map.put("photoalbum", GetLibrarySectionsAllLibraryTypeEnum.PhotoAlbum); + map.put("photo", GetLibrarySectionsAllLibraryTypeEnum.Photo); + map.put("collection", GetLibrarySectionsAllLibraryTypeEnum.Collection); + return map; + } + + @SuppressWarnings("serial") + public static final class _Serializer extends StdSerializer { + + protected _Serializer() { + super(GetLibrarySectionsAllLibraryType.class); + } + + @Override + public void serialize(GetLibrarySectionsAllLibraryType value, JsonGenerator g, SerializerProvider provider) + throws IOException, JsonProcessingException { + g.writeObject(value.value); + } + } + + @SuppressWarnings("serial") + public static final class _Deserializer extends StdDeserializer { + + protected _Deserializer() { + super(GetLibrarySectionsAllLibraryType.class); + } + + @Override + public GetLibrarySectionsAllLibraryType deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException, JacksonException { + String v = p.readValueAs(new TypeReference() {}); + // use the factory method to ensure we get singletons + return GetLibrarySectionsAllLibraryType.of(v); + } + } + + public enum GetLibrarySectionsAllLibraryTypeEnum { + + Movie("movie"), + TvShow("show"), + Season("season"), + Episode("episode"), + Artist("artist"), + Album("album"), + Track("track"), + PhotoAlbum("photoalbum"), + Photo("photo"), + Collection("collection"),; + + private final String value; + + private GetLibrarySectionsAllLibraryTypeEnum(String value) { + this.value = value; + } + + public String value() { + return value; + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMedia.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMedia.java similarity index 87% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMedia.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMedia.java index 9ba9bd7e..9e814421 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMedia.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMedia.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryMedia { +public class GetLibrarySectionsAllMedia { /** * Unique media identifier. @@ -135,7 +135,7 @@ public class GetAllMediaLibraryMedia { */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("optimizedForStreaming") - private Optional optimizedForStreaming; + private Optional optimizedForStreaming; @JsonInclude(Include.NON_ABSENT) @JsonProperty("has64bitOffsets") @@ -146,10 +146,10 @@ public class GetAllMediaLibraryMedia { */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("Part") - private Optional> part; + private Optional> part; @JsonCreator - public GetAllMediaLibraryMedia( + public GetLibrarySectionsAllMedia( @JsonProperty("id") long id, @JsonProperty("duration") Optional duration, @JsonProperty("bitrate") Optional bitrate, @@ -166,9 +166,9 @@ public class GetAllMediaLibraryMedia { @JsonProperty("videoProfile") Optional videoProfile, @JsonProperty("hasVoiceActivity") Optional hasVoiceActivity, @JsonProperty("audioProfile") Optional audioProfile, - @JsonProperty("optimizedForStreaming") Optional optimizedForStreaming, + @JsonProperty("optimizedForStreaming") Optional optimizedForStreaming, @JsonProperty("has64bitOffsets") Optional has64bitOffsets, - @JsonProperty("Part") Optional> part) { + @JsonProperty("Part") Optional> part) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(duration, "duration"); Utils.checkNotNull(bitrate, "bitrate"); @@ -209,7 +209,7 @@ public class GetAllMediaLibraryMedia { this.part = part; } - public GetAllMediaLibraryMedia( + public GetLibrarySectionsAllMedia( long id) { this(id, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); } @@ -344,8 +344,8 @@ public class GetAllMediaLibraryMedia { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional optimizedForStreaming() { - return (Optional) optimizedForStreaming; + public Optional optimizedForStreaming() { + return (Optional) optimizedForStreaming; } @JsonIgnore @@ -358,8 +358,8 @@ public class GetAllMediaLibraryMedia { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional> part() { - return (Optional>) part; + public Optional> part() { + return (Optional>) part; } public final static Builder builder() { @@ -369,7 +369,7 @@ public class GetAllMediaLibraryMedia { /** * Unique media identifier. */ - public GetAllMediaLibraryMedia withId(long id) { + public GetLibrarySectionsAllMedia withId(long id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -378,7 +378,7 @@ public class GetAllMediaLibraryMedia { /** * Duration of the media in milliseconds. */ - public GetAllMediaLibraryMedia withDuration(int duration) { + public GetLibrarySectionsAllMedia withDuration(int duration) { Utils.checkNotNull(duration, "duration"); this.duration = Optional.ofNullable(duration); return this; @@ -387,7 +387,7 @@ public class GetAllMediaLibraryMedia { /** * Duration of the media in milliseconds. */ - public GetAllMediaLibraryMedia withDuration(Optional duration) { + public GetLibrarySectionsAllMedia withDuration(Optional duration) { Utils.checkNotNull(duration, "duration"); this.duration = duration; return this; @@ -396,7 +396,7 @@ public class GetAllMediaLibraryMedia { /** * Bitrate in bits per second. */ - public GetAllMediaLibraryMedia withBitrate(int bitrate) { + public GetLibrarySectionsAllMedia withBitrate(int bitrate) { Utils.checkNotNull(bitrate, "bitrate"); this.bitrate = Optional.ofNullable(bitrate); return this; @@ -405,7 +405,7 @@ public class GetAllMediaLibraryMedia { /** * Bitrate in bits per second. */ - public GetAllMediaLibraryMedia withBitrate(Optional bitrate) { + public GetLibrarySectionsAllMedia withBitrate(Optional bitrate) { Utils.checkNotNull(bitrate, "bitrate"); this.bitrate = bitrate; return this; @@ -414,7 +414,7 @@ public class GetAllMediaLibraryMedia { /** * Video width in pixels. */ - public GetAllMediaLibraryMedia withWidth(int width) { + public GetLibrarySectionsAllMedia withWidth(int width) { Utils.checkNotNull(width, "width"); this.width = Optional.ofNullable(width); return this; @@ -423,7 +423,7 @@ public class GetAllMediaLibraryMedia { /** * Video width in pixels. */ - public GetAllMediaLibraryMedia withWidth(Optional width) { + public GetLibrarySectionsAllMedia withWidth(Optional width) { Utils.checkNotNull(width, "width"); this.width = width; return this; @@ -432,7 +432,7 @@ public class GetAllMediaLibraryMedia { /** * Video height in pixels. */ - public GetAllMediaLibraryMedia withHeight(int height) { + public GetLibrarySectionsAllMedia withHeight(int height) { Utils.checkNotNull(height, "height"); this.height = Optional.ofNullable(height); return this; @@ -441,7 +441,7 @@ public class GetAllMediaLibraryMedia { /** * Video height in pixels. */ - public GetAllMediaLibraryMedia withHeight(Optional height) { + public GetLibrarySectionsAllMedia withHeight(Optional height) { Utils.checkNotNull(height, "height"); this.height = height; return this; @@ -450,7 +450,7 @@ public class GetAllMediaLibraryMedia { /** * Aspect ratio of the video. */ - public GetAllMediaLibraryMedia withAspectRatio(float aspectRatio) { + public GetLibrarySectionsAllMedia withAspectRatio(float aspectRatio) { Utils.checkNotNull(aspectRatio, "aspectRatio"); this.aspectRatio = Optional.ofNullable(aspectRatio); return this; @@ -459,7 +459,7 @@ public class GetAllMediaLibraryMedia { /** * Aspect ratio of the video. */ - public GetAllMediaLibraryMedia withAspectRatio(Optional aspectRatio) { + public GetLibrarySectionsAllMedia withAspectRatio(Optional aspectRatio) { Utils.checkNotNull(aspectRatio, "aspectRatio"); this.aspectRatio = aspectRatio; return this; @@ -468,7 +468,7 @@ public class GetAllMediaLibraryMedia { /** * Number of audio channels. */ - public GetAllMediaLibraryMedia withAudioChannels(int audioChannels) { + public GetLibrarySectionsAllMedia withAudioChannels(int audioChannels) { Utils.checkNotNull(audioChannels, "audioChannels"); this.audioChannels = Optional.ofNullable(audioChannels); return this; @@ -477,19 +477,19 @@ public class GetAllMediaLibraryMedia { /** * Number of audio channels. */ - public GetAllMediaLibraryMedia withAudioChannels(Optional audioChannels) { + public GetLibrarySectionsAllMedia withAudioChannels(Optional audioChannels) { Utils.checkNotNull(audioChannels, "audioChannels"); this.audioChannels = audioChannels; return this; } - public GetAllMediaLibraryMedia withDisplayOffset(int displayOffset) { + public GetLibrarySectionsAllMedia withDisplayOffset(int displayOffset) { Utils.checkNotNull(displayOffset, "displayOffset"); this.displayOffset = Optional.ofNullable(displayOffset); return this; } - public GetAllMediaLibraryMedia withDisplayOffset(Optional displayOffset) { + public GetLibrarySectionsAllMedia withDisplayOffset(Optional displayOffset) { Utils.checkNotNull(displayOffset, "displayOffset"); this.displayOffset = displayOffset; return this; @@ -498,7 +498,7 @@ public class GetAllMediaLibraryMedia { /** * Audio codec used. */ - public GetAllMediaLibraryMedia withAudioCodec(String audioCodec) { + public GetLibrarySectionsAllMedia withAudioCodec(String audioCodec) { Utils.checkNotNull(audioCodec, "audioCodec"); this.audioCodec = Optional.ofNullable(audioCodec); return this; @@ -507,7 +507,7 @@ public class GetAllMediaLibraryMedia { /** * Audio codec used. */ - public GetAllMediaLibraryMedia withAudioCodec(Optional audioCodec) { + public GetLibrarySectionsAllMedia withAudioCodec(Optional audioCodec) { Utils.checkNotNull(audioCodec, "audioCodec"); this.audioCodec = audioCodec; return this; @@ -516,7 +516,7 @@ public class GetAllMediaLibraryMedia { /** * Video codec used. */ - public GetAllMediaLibraryMedia withVideoCodec(String videoCodec) { + public GetLibrarySectionsAllMedia withVideoCodec(String videoCodec) { Utils.checkNotNull(videoCodec, "videoCodec"); this.videoCodec = Optional.ofNullable(videoCodec); return this; @@ -525,7 +525,7 @@ public class GetAllMediaLibraryMedia { /** * Video codec used. */ - public GetAllMediaLibraryMedia withVideoCodec(Optional videoCodec) { + public GetLibrarySectionsAllMedia withVideoCodec(Optional videoCodec) { Utils.checkNotNull(videoCodec, "videoCodec"); this.videoCodec = videoCodec; return this; @@ -534,7 +534,7 @@ public class GetAllMediaLibraryMedia { /** * Video resolution (e.g., 4k). */ - public GetAllMediaLibraryMedia withVideoResolution(String videoResolution) { + public GetLibrarySectionsAllMedia withVideoResolution(String videoResolution) { Utils.checkNotNull(videoResolution, "videoResolution"); this.videoResolution = Optional.ofNullable(videoResolution); return this; @@ -543,7 +543,7 @@ public class GetAllMediaLibraryMedia { /** * Video resolution (e.g., 4k). */ - public GetAllMediaLibraryMedia withVideoResolution(Optional videoResolution) { + public GetLibrarySectionsAllMedia withVideoResolution(Optional videoResolution) { Utils.checkNotNull(videoResolution, "videoResolution"); this.videoResolution = videoResolution; return this; @@ -552,7 +552,7 @@ public class GetAllMediaLibraryMedia { /** * File container type. */ - public GetAllMediaLibraryMedia withContainer(String container) { + public GetLibrarySectionsAllMedia withContainer(String container) { Utils.checkNotNull(container, "container"); this.container = Optional.ofNullable(container); return this; @@ -561,7 +561,7 @@ public class GetAllMediaLibraryMedia { /** * File container type. */ - public GetAllMediaLibraryMedia withContainer(Optional container) { + public GetLibrarySectionsAllMedia withContainer(Optional container) { Utils.checkNotNull(container, "container"); this.container = container; return this; @@ -570,7 +570,7 @@ public class GetAllMediaLibraryMedia { /** * Frame rate of the video. Values found include NTSC, PAL, 24p */ - public GetAllMediaLibraryMedia withVideoFrameRate(String videoFrameRate) { + public GetLibrarySectionsAllMedia withVideoFrameRate(String videoFrameRate) { Utils.checkNotNull(videoFrameRate, "videoFrameRate"); this.videoFrameRate = Optional.ofNullable(videoFrameRate); return this; @@ -579,7 +579,7 @@ public class GetAllMediaLibraryMedia { /** * Frame rate of the video. Values found include NTSC, PAL, 24p */ - public GetAllMediaLibraryMedia withVideoFrameRate(Optional videoFrameRate) { + public GetLibrarySectionsAllMedia withVideoFrameRate(Optional videoFrameRate) { Utils.checkNotNull(videoFrameRate, "videoFrameRate"); this.videoFrameRate = videoFrameRate; return this; @@ -588,7 +588,7 @@ public class GetAllMediaLibraryMedia { /** * Video profile (e.g., main 10). */ - public GetAllMediaLibraryMedia withVideoProfile(String videoProfile) { + public GetLibrarySectionsAllMedia withVideoProfile(String videoProfile) { Utils.checkNotNull(videoProfile, "videoProfile"); this.videoProfile = Optional.ofNullable(videoProfile); return this; @@ -597,7 +597,7 @@ public class GetAllMediaLibraryMedia { /** * Video profile (e.g., main 10). */ - public GetAllMediaLibraryMedia withVideoProfile(Optional videoProfile) { + public GetLibrarySectionsAllMedia withVideoProfile(Optional videoProfile) { Utils.checkNotNull(videoProfile, "videoProfile"); this.videoProfile = videoProfile; return this; @@ -606,7 +606,7 @@ public class GetAllMediaLibraryMedia { /** * Indicates whether voice activity is detected. */ - public GetAllMediaLibraryMedia withHasVoiceActivity(boolean hasVoiceActivity) { + public GetLibrarySectionsAllMedia withHasVoiceActivity(boolean hasVoiceActivity) { Utils.checkNotNull(hasVoiceActivity, "hasVoiceActivity"); this.hasVoiceActivity = Optional.ofNullable(hasVoiceActivity); return this; @@ -615,7 +615,7 @@ public class GetAllMediaLibraryMedia { /** * Indicates whether voice activity is detected. */ - public GetAllMediaLibraryMedia withHasVoiceActivity(Optional hasVoiceActivity) { + public GetLibrarySectionsAllMedia withHasVoiceActivity(Optional hasVoiceActivity) { Utils.checkNotNull(hasVoiceActivity, "hasVoiceActivity"); this.hasVoiceActivity = hasVoiceActivity; return this; @@ -624,7 +624,7 @@ public class GetAllMediaLibraryMedia { /** * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). */ - public GetAllMediaLibraryMedia withAudioProfile(String audioProfile) { + public GetLibrarySectionsAllMedia withAudioProfile(String audioProfile) { Utils.checkNotNull(audioProfile, "audioProfile"); this.audioProfile = Optional.ofNullable(audioProfile); return this; @@ -633,7 +633,7 @@ public class GetAllMediaLibraryMedia { /** * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). */ - public GetAllMediaLibraryMedia withAudioProfile(Optional audioProfile) { + public GetLibrarySectionsAllMedia withAudioProfile(Optional audioProfile) { Utils.checkNotNull(audioProfile, "audioProfile"); this.audioProfile = audioProfile; return this; @@ -642,7 +642,7 @@ public class GetAllMediaLibraryMedia { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public GetAllMediaLibraryMedia withOptimizedForStreaming(GetAllMediaLibraryOptimizedForStreaming optimizedForStreaming) { + public GetLibrarySectionsAllMedia withOptimizedForStreaming(GetLibrarySectionsAllOptimizedForStreaming optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = Optional.ofNullable(optimizedForStreaming); return this; @@ -651,19 +651,19 @@ public class GetAllMediaLibraryMedia { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public GetAllMediaLibraryMedia withOptimizedForStreaming(Optional optimizedForStreaming) { + public GetLibrarySectionsAllMedia withOptimizedForStreaming(Optional optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = optimizedForStreaming; return this; } - public GetAllMediaLibraryMedia withHas64bitOffsets(boolean has64bitOffsets) { + public GetLibrarySectionsAllMedia withHas64bitOffsets(boolean has64bitOffsets) { Utils.checkNotNull(has64bitOffsets, "has64bitOffsets"); this.has64bitOffsets = Optional.ofNullable(has64bitOffsets); return this; } - public GetAllMediaLibraryMedia withHas64bitOffsets(Optional has64bitOffsets) { + public GetLibrarySectionsAllMedia withHas64bitOffsets(Optional has64bitOffsets) { Utils.checkNotNull(has64bitOffsets, "has64bitOffsets"); this.has64bitOffsets = has64bitOffsets; return this; @@ -672,7 +672,7 @@ public class GetAllMediaLibraryMedia { /** * An array of parts for this media item. */ - public GetAllMediaLibraryMedia withPart(List part) { + public GetLibrarySectionsAllMedia withPart(List part) { Utils.checkNotNull(part, "part"); this.part = Optional.ofNullable(part); return this; @@ -681,7 +681,7 @@ public class GetAllMediaLibraryMedia { /** * An array of parts for this media item. */ - public GetAllMediaLibraryMedia withPart(Optional> part) { + public GetLibrarySectionsAllMedia withPart(Optional> part) { Utils.checkNotNull(part, "part"); this.part = part; return this; @@ -696,7 +696,7 @@ public class GetAllMediaLibraryMedia { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryMedia other = (GetAllMediaLibraryMedia) o; + GetLibrarySectionsAllMedia other = (GetLibrarySectionsAllMedia) o; return Objects.deepEquals(this.id, other.id) && Objects.deepEquals(this.duration, other.duration) && @@ -745,7 +745,7 @@ public class GetAllMediaLibraryMedia { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryMedia.class, + return Utils.toString(GetLibrarySectionsAllMedia.class, "id", id, "duration", duration, "bitrate", bitrate, @@ -801,11 +801,11 @@ public class GetAllMediaLibraryMedia { private Optional audioProfile = Optional.empty(); - private Optional optimizedForStreaming = Optional.empty(); + private Optional optimizedForStreaming = Optional.empty(); private Optional has64bitOffsets = Optional.empty(); - private Optional> part = Optional.empty(); + private Optional> part = Optional.empty(); private Builder() { // force use of static builder() method @@ -1087,7 +1087,7 @@ public class GetAllMediaLibraryMedia { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public Builder optimizedForStreaming(GetAllMediaLibraryOptimizedForStreaming optimizedForStreaming) { + public Builder optimizedForStreaming(GetLibrarySectionsAllOptimizedForStreaming optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = Optional.ofNullable(optimizedForStreaming); return this; @@ -1096,7 +1096,7 @@ public class GetAllMediaLibraryMedia { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public Builder optimizedForStreaming(Optional optimizedForStreaming) { + public Builder optimizedForStreaming(Optional optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = optimizedForStreaming; return this; @@ -1117,7 +1117,7 @@ public class GetAllMediaLibraryMedia { /** * An array of parts for this media item. */ - public Builder part(List part) { + public Builder part(List part) { Utils.checkNotNull(part, "part"); this.part = Optional.ofNullable(part); return this; @@ -1126,14 +1126,14 @@ public class GetAllMediaLibraryMedia { /** * An array of parts for this media item. */ - public Builder part(Optional> part) { + public Builder part(Optional> part) { Utils.checkNotNull(part, "part"); this.part = part; return this; } - public GetAllMediaLibraryMedia build() { - return new GetAllMediaLibraryMedia( + public GetLibrarySectionsAllMedia build() { + return new GetLibrarySectionsAllMedia( id, duration, bitrate, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMediaContainer.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMediaContainer.java similarity index 87% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMediaContainer.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMediaContainer.java index 0a9fc077..83a9c79f 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMediaContainer.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMediaContainer.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryMediaContainer { +public class GetLibrarySectionsAllMediaContainer { /** * Number of media items returned in this response. @@ -129,17 +129,17 @@ public class GetAllMediaLibraryMediaContainer { */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("Meta") - private Optional meta; + private Optional meta; /** * An array of metadata items. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("Metadata") - private Optional> metadata; + private Optional> metadata; @JsonCreator - public GetAllMediaLibraryMediaContainer( + public GetLibrarySectionsAllMediaContainer( @JsonProperty("size") int size, @JsonProperty("totalSize") int totalSize, @JsonProperty("offset") long offset, @@ -157,8 +157,8 @@ public class GetAllMediaLibraryMediaContainer { @JsonProperty("title1") String title1, @JsonProperty("title2") String title2, @JsonProperty("viewGroup") String viewGroup, - @JsonProperty("Meta") Optional meta, - @JsonProperty("Metadata") Optional> metadata) { + @JsonProperty("Meta") Optional meta, + @JsonProperty("Metadata") Optional> metadata) { Utils.checkNotNull(size, "size"); Utils.checkNotNull(totalSize, "totalSize"); Utils.checkNotNull(offset, "offset"); @@ -199,7 +199,7 @@ public class GetAllMediaLibraryMediaContainer { this.metadata = metadata; } - public GetAllMediaLibraryMediaContainer( + public GetLibrarySectionsAllMediaContainer( int size, int totalSize, long offset, @@ -360,8 +360,8 @@ public class GetAllMediaLibraryMediaContainer { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional meta() { - return (Optional) meta; + public Optional meta() { + return (Optional) meta; } /** @@ -369,8 +369,8 @@ public class GetAllMediaLibraryMediaContainer { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional> metadata() { - return (Optional>) metadata; + public Optional> metadata() { + return (Optional>) metadata; } public final static Builder builder() { @@ -380,7 +380,7 @@ public class GetAllMediaLibraryMediaContainer { /** * Number of media items returned in this response. */ - public GetAllMediaLibraryMediaContainer withSize(int size) { + public GetLibrarySectionsAllMediaContainer withSize(int size) { Utils.checkNotNull(size, "size"); this.size = size; return this; @@ -389,7 +389,7 @@ public class GetAllMediaLibraryMediaContainer { /** * Total number of media items in the library. */ - public GetAllMediaLibraryMediaContainer withTotalSize(int totalSize) { + public GetLibrarySectionsAllMediaContainer withTotalSize(int totalSize) { Utils.checkNotNull(totalSize, "totalSize"); this.totalSize = totalSize; return this; @@ -398,7 +398,7 @@ public class GetAllMediaLibraryMediaContainer { /** * Offset value for pagination. */ - public GetAllMediaLibraryMediaContainer withOffset(long offset) { + public GetLibrarySectionsAllMediaContainer withOffset(long offset) { Utils.checkNotNull(offset, "offset"); this.offset = offset; return this; @@ -407,7 +407,7 @@ public class GetAllMediaLibraryMediaContainer { /** * Indicates whether syncing is allowed. */ - public GetAllMediaLibraryMediaContainer withAllowSync(boolean allowSync) { + public GetLibrarySectionsAllMediaContainer withAllowSync(boolean allowSync) { Utils.checkNotNull(allowSync, "allowSync"); this.allowSync = allowSync; return this; @@ -416,7 +416,7 @@ public class GetAllMediaLibraryMediaContainer { /** * URL for the background artwork of the media container. */ - public GetAllMediaLibraryMediaContainer withArt(String art) { + public GetLibrarySectionsAllMediaContainer withArt(String art) { Utils.checkNotNull(art, "art"); this.art = art; return this; @@ -425,7 +425,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The content type or mode. */ - public GetAllMediaLibraryMediaContainer withContent(String content) { + public GetLibrarySectionsAllMediaContainer withContent(String content) { Utils.checkNotNull(content, "content"); this.content = content; return this; @@ -434,7 +434,7 @@ public class GetAllMediaLibraryMediaContainer { /** * An plugin identifier for the media container. */ - public GetAllMediaLibraryMediaContainer withIdentifier(String identifier) { + public GetLibrarySectionsAllMediaContainer withIdentifier(String identifier) { Utils.checkNotNull(identifier, "identifier"); this.identifier = identifier; return this; @@ -443,7 +443,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The unique identifier for the library section. */ - public GetAllMediaLibraryMediaContainer withLibrarySectionID(long librarySectionID) { + public GetLibrarySectionsAllMediaContainer withLibrarySectionID(long librarySectionID) { Utils.checkNotNull(librarySectionID, "librarySectionID"); this.librarySectionID = librarySectionID; return this; @@ -452,7 +452,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The title of the library section. */ - public GetAllMediaLibraryMediaContainer withLibrarySectionTitle(String librarySectionTitle) { + public GetLibrarySectionsAllMediaContainer withLibrarySectionTitle(String librarySectionTitle) { Utils.checkNotNull(librarySectionTitle, "librarySectionTitle"); this.librarySectionTitle = librarySectionTitle; return this; @@ -461,7 +461,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The universally unique identifier for the library section. */ - public GetAllMediaLibraryMediaContainer withLibrarySectionUUID(String librarySectionUUID) { + public GetLibrarySectionsAllMediaContainer withLibrarySectionUUID(String librarySectionUUID) { Utils.checkNotNull(librarySectionUUID, "librarySectionUUID"); this.librarySectionUUID = Optional.ofNullable(librarySectionUUID); return this; @@ -470,7 +470,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The universally unique identifier for the library section. */ - public GetAllMediaLibraryMediaContainer withLibrarySectionUUID(Optional librarySectionUUID) { + public GetLibrarySectionsAllMediaContainer withLibrarySectionUUID(Optional librarySectionUUID) { Utils.checkNotNull(librarySectionUUID, "librarySectionUUID"); this.librarySectionUUID = librarySectionUUID; return this; @@ -479,7 +479,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The prefix used for media tag resource paths. */ - public GetAllMediaLibraryMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + public GetLibrarySectionsAllMediaContainer withMediaTagPrefix(String mediaTagPrefix) { Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); this.mediaTagPrefix = mediaTagPrefix; return this; @@ -488,7 +488,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The version number for media tags. */ - public GetAllMediaLibraryMediaContainer withMediaTagVersion(long mediaTagVersion) { + public GetLibrarySectionsAllMediaContainer withMediaTagVersion(long mediaTagVersion) { Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); this.mediaTagVersion = mediaTagVersion; return this; @@ -497,7 +497,7 @@ public class GetAllMediaLibraryMediaContainer { /** * URL for the thumbnail image of the media container. */ - public GetAllMediaLibraryMediaContainer withThumb(String thumb) { + public GetLibrarySectionsAllMediaContainer withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); this.thumb = thumb; return this; @@ -506,7 +506,7 @@ public class GetAllMediaLibraryMediaContainer { /** * Specifies whether caching is disabled. */ - public GetAllMediaLibraryMediaContainer withNocache(boolean nocache) { + public GetLibrarySectionsAllMediaContainer withNocache(boolean nocache) { Utils.checkNotNull(nocache, "nocache"); this.nocache = nocache; return this; @@ -515,7 +515,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The primary title of the media container. */ - public GetAllMediaLibraryMediaContainer withTitle1(String title1) { + public GetLibrarySectionsAllMediaContainer withTitle1(String title1) { Utils.checkNotNull(title1, "title1"); this.title1 = title1; return this; @@ -524,7 +524,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The secondary title of the media container. */ - public GetAllMediaLibraryMediaContainer withTitle2(String title2) { + public GetLibrarySectionsAllMediaContainer withTitle2(String title2) { Utils.checkNotNull(title2, "title2"); this.title2 = title2; return this; @@ -533,7 +533,7 @@ public class GetAllMediaLibraryMediaContainer { /** * Identifier for the view group layout. */ - public GetAllMediaLibraryMediaContainer withViewGroup(String viewGroup) { + public GetLibrarySectionsAllMediaContainer withViewGroup(String viewGroup) { Utils.checkNotNull(viewGroup, "viewGroup"); this.viewGroup = viewGroup; return this; @@ -542,7 +542,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. */ - public GetAllMediaLibraryMediaContainer withMeta(GetAllMediaLibraryMeta meta) { + public GetLibrarySectionsAllMediaContainer withMeta(GetLibrarySectionsAllMeta meta) { Utils.checkNotNull(meta, "meta"); this.meta = Optional.ofNullable(meta); return this; @@ -551,7 +551,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. */ - public GetAllMediaLibraryMediaContainer withMeta(Optional meta) { + public GetLibrarySectionsAllMediaContainer withMeta(Optional meta) { Utils.checkNotNull(meta, "meta"); this.meta = meta; return this; @@ -560,7 +560,7 @@ public class GetAllMediaLibraryMediaContainer { /** * An array of metadata items. */ - public GetAllMediaLibraryMediaContainer withMetadata(List metadata) { + public GetLibrarySectionsAllMediaContainer withMetadata(List metadata) { Utils.checkNotNull(metadata, "metadata"); this.metadata = Optional.ofNullable(metadata); return this; @@ -569,7 +569,7 @@ public class GetAllMediaLibraryMediaContainer { /** * An array of metadata items. */ - public GetAllMediaLibraryMediaContainer withMetadata(Optional> metadata) { + public GetLibrarySectionsAllMediaContainer withMetadata(Optional> metadata) { Utils.checkNotNull(metadata, "metadata"); this.metadata = metadata; return this; @@ -584,7 +584,7 @@ public class GetAllMediaLibraryMediaContainer { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryMediaContainer other = (GetAllMediaLibraryMediaContainer) o; + GetLibrarySectionsAllMediaContainer other = (GetLibrarySectionsAllMediaContainer) o; return Objects.deepEquals(this.size, other.size) && Objects.deepEquals(this.totalSize, other.totalSize) && @@ -633,7 +633,7 @@ public class GetAllMediaLibraryMediaContainer { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryMediaContainer.class, + return Utils.toString(GetLibrarySectionsAllMediaContainer.class, "size", size, "totalSize", totalSize, "offset", offset, @@ -691,9 +691,9 @@ public class GetAllMediaLibraryMediaContainer { private String viewGroup; - private Optional meta = Optional.empty(); + private Optional meta = Optional.empty(); - private Optional> metadata = Optional.empty(); + private Optional> metadata = Optional.empty(); private Builder() { // force use of static builder() method @@ -864,7 +864,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. */ - public Builder meta(GetAllMediaLibraryMeta meta) { + public Builder meta(GetLibrarySectionsAllMeta meta) { Utils.checkNotNull(meta, "meta"); this.meta = Optional.ofNullable(meta); return this; @@ -873,7 +873,7 @@ public class GetAllMediaLibraryMediaContainer { /** * The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. */ - public Builder meta(Optional meta) { + public Builder meta(Optional meta) { Utils.checkNotNull(meta, "meta"); this.meta = meta; return this; @@ -882,7 +882,7 @@ public class GetAllMediaLibraryMediaContainer { /** * An array of metadata items. */ - public Builder metadata(List metadata) { + public Builder metadata(List metadata) { Utils.checkNotNull(metadata, "metadata"); this.metadata = Optional.ofNullable(metadata); return this; @@ -891,14 +891,14 @@ public class GetAllMediaLibraryMediaContainer { /** * An array of metadata items. */ - public Builder metadata(Optional> metadata) { + public Builder metadata(Optional> metadata) { Utils.checkNotNull(metadata, "metadata"); this.metadata = metadata; return this; } - public GetAllMediaLibraryMediaContainer build() { - return new GetAllMediaLibraryMediaContainer( + public GetLibrarySectionsAllMediaContainer build() { + return new GetLibrarySectionsAllMediaContainer( size, totalSize, offset, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMeta.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMeta.java similarity index 62% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMeta.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMeta.java index 4d98ce4d..4e83ae37 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMeta.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMeta.java @@ -17,69 +17,69 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryMeta + * GetLibrarySectionsAllMeta * *

The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. */ -public class GetAllMediaLibraryMeta { +public class GetLibrarySectionsAllMeta { @JsonInclude(Include.NON_ABSENT) @JsonProperty("Type") - private Optional> type; + private Optional> type; @JsonInclude(Include.NON_ABSENT) @JsonProperty("FieldType") - private Optional> fieldType; + private Optional> fieldType; @JsonCreator - public GetAllMediaLibraryMeta( - @JsonProperty("Type") Optional> type, - @JsonProperty("FieldType") Optional> fieldType) { + public GetLibrarySectionsAllMeta( + @JsonProperty("Type") Optional> type, + @JsonProperty("FieldType") Optional> fieldType) { Utils.checkNotNull(type, "type"); Utils.checkNotNull(fieldType, "fieldType"); this.type = type; this.fieldType = fieldType; } - public GetAllMediaLibraryMeta() { + public GetLibrarySectionsAllMeta() { this(Optional.empty(), Optional.empty()); } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> type() { - return (Optional>) type; + public Optional> type() { + return (Optional>) type; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> fieldType() { - return (Optional>) fieldType; + public Optional> fieldType() { + return (Optional>) fieldType; } public final static Builder builder() { return new Builder(); } - public GetAllMediaLibraryMeta withType(List type) { + public GetLibrarySectionsAllMeta withType(List type) { Utils.checkNotNull(type, "type"); this.type = Optional.ofNullable(type); return this; } - public GetAllMediaLibraryMeta withType(Optional> type) { + public GetLibrarySectionsAllMeta withType(Optional> type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } - public GetAllMediaLibraryMeta withFieldType(List fieldType) { + public GetLibrarySectionsAllMeta withFieldType(List fieldType) { Utils.checkNotNull(fieldType, "fieldType"); this.fieldType = Optional.ofNullable(fieldType); return this; } - public GetAllMediaLibraryMeta withFieldType(Optional> fieldType) { + public GetLibrarySectionsAllMeta withFieldType(Optional> fieldType) { Utils.checkNotNull(fieldType, "fieldType"); this.fieldType = fieldType; return this; @@ -94,7 +94,7 @@ public class GetAllMediaLibraryMeta { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryMeta other = (GetAllMediaLibraryMeta) o; + GetLibrarySectionsAllMeta other = (GetLibrarySectionsAllMeta) o; return Objects.deepEquals(this.type, other.type) && Objects.deepEquals(this.fieldType, other.fieldType); @@ -109,47 +109,47 @@ public class GetAllMediaLibraryMeta { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryMeta.class, + return Utils.toString(GetLibrarySectionsAllMeta.class, "type", type, "fieldType", fieldType); } public final static class Builder { - private Optional> type = Optional.empty(); + private Optional> type = Optional.empty(); - private Optional> fieldType = Optional.empty(); + private Optional> fieldType = Optional.empty(); private Builder() { // force use of static builder() method } - public Builder type(List type) { + public Builder type(List type) { Utils.checkNotNull(type, "type"); this.type = Optional.ofNullable(type); return this; } - public Builder type(Optional> type) { + public Builder type(Optional> type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } - public Builder fieldType(List fieldType) { + public Builder fieldType(List fieldType) { Utils.checkNotNull(fieldType, "fieldType"); this.fieldType = Optional.ofNullable(fieldType); return this; } - public Builder fieldType(Optional> fieldType) { + public Builder fieldType(Optional> fieldType) { Utils.checkNotNull(fieldType, "fieldType"); this.fieldType = fieldType; return this; } - public GetAllMediaLibraryMeta build() { - return new GetAllMediaLibraryMeta( + public GetLibrarySectionsAllMeta build() { + return new GetLibrarySectionsAllMeta( type, fieldType); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMetadata.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMetadata.java similarity index 85% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMetadata.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMetadata.java index 0d22374e..1feb15fe 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryMetadata.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllMetadata.java @@ -22,11 +22,11 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryMetadata + * GetLibrarySectionsAllMetadata * *

Unknown */ -public class GetAllMediaLibraryMetadata { +public class GetLibrarySectionsAllMetadata { /** * The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. @@ -60,7 +60,7 @@ public class GetAllMediaLibraryMetadata { private Optional studio; @JsonProperty("type") - private GetAllMediaLibraryLibraryType type; + private GetLibrarySectionsAllLibraryType type; /** * The title of the media item. @@ -382,52 +382,52 @@ public class GetAllMediaLibraryMetadata { @JsonInclude(Include.NON_ABSENT) @JsonProperty("Image") - private Optional> image; + private Optional> image; @JsonInclude(Include.NON_ABSENT) @JsonProperty("UltraBlurColors") - private Optional ultraBlurColors; - - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Media") - private Optional> media; - - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Genre") - private Optional> genre; - - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Country") - private Optional> country; - - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Director") - private Optional> director; - - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Writer") - private Optional> writer; - - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Role") - private Optional> role; + private Optional ultraBlurColors; @JsonInclude(Include.NON_ABSENT) @JsonProperty("Guid") - private Optional> guids; + private Optional> guids; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Media") + private Optional> media; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Genre") + private Optional> genre; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Country") + private Optional> country; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Director") + private Optional> director; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Writer") + private Optional> writer; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Role") + private Optional> role; @JsonInclude(Include.NON_ABSENT) @JsonProperty("Collection") - private Optional> collection; + private Optional> collection; @JsonCreator - public GetAllMediaLibraryMetadata( + public GetLibrarySectionsAllMetadata( @JsonProperty("ratingKey") String ratingKey, @JsonProperty("key") String key, @JsonProperty("guid") String guid, @JsonProperty("slug") String slug, @JsonProperty("studio") Optional studio, - @JsonProperty("type") GetAllMediaLibraryLibraryType type, + @JsonProperty("type") GetLibrarySectionsAllLibraryType type, @JsonProperty("title") String title, @JsonProperty("titleSort") String titleSort, @JsonProperty("contentRating") Optional contentRating, @@ -476,16 +476,16 @@ public class GetAllMediaLibraryMetadata { @JsonProperty("createdAtTZOffset") Optional createdAtTZOffset, @JsonProperty("lastViewedAt") Optional lastViewedAt, @JsonProperty("userRating") Optional userRating, - @JsonProperty("Image") Optional> image, - @JsonProperty("UltraBlurColors") Optional ultraBlurColors, - @JsonProperty("Media") Optional> media, - @JsonProperty("Genre") Optional> genre, - @JsonProperty("Country") Optional> country, - @JsonProperty("Director") Optional> director, - @JsonProperty("Writer") Optional> writer, - @JsonProperty("Role") Optional> role, - @JsonProperty("Guid") Optional> guids, - @JsonProperty("Collection") Optional> collection) { + @JsonProperty("Image") Optional> image, + @JsonProperty("UltraBlurColors") Optional ultraBlurColors, + @JsonProperty("Guid") Optional> guids, + @JsonProperty("Media") Optional> media, + @JsonProperty("Genre") Optional> genre, + @JsonProperty("Country") Optional> country, + @JsonProperty("Director") Optional> director, + @JsonProperty("Writer") Optional> writer, + @JsonProperty("Role") Optional> role, + @JsonProperty("Collection") Optional> collection) { Utils.checkNotNull(ratingKey, "ratingKey"); Utils.checkNotNull(key, "key"); Utils.checkNotNull(guid, "guid"); @@ -542,13 +542,13 @@ public class GetAllMediaLibraryMetadata { Utils.checkNotNull(userRating, "userRating"); Utils.checkNotNull(image, "image"); Utils.checkNotNull(ultraBlurColors, "ultraBlurColors"); + Utils.checkNotNull(guids, "guids"); Utils.checkNotNull(media, "media"); Utils.checkNotNull(genre, "genre"); Utils.checkNotNull(country, "country"); Utils.checkNotNull(director, "director"); Utils.checkNotNull(writer, "writer"); Utils.checkNotNull(role, "role"); - Utils.checkNotNull(guids, "guids"); Utils.checkNotNull(collection, "collection"); this.ratingKey = ratingKey; this.key = key; @@ -606,22 +606,22 @@ public class GetAllMediaLibraryMetadata { this.userRating = userRating; this.image = image; this.ultraBlurColors = ultraBlurColors; + this.guids = guids; this.media = media; this.genre = genre; this.country = country; this.director = director; this.writer = writer; this.role = role; - this.guids = guids; this.collection = collection; } - public GetAllMediaLibraryMetadata( + public GetLibrarySectionsAllMetadata( String ratingKey, String key, String guid, String slug, - GetAllMediaLibraryLibraryType type, + GetLibrarySectionsAllLibraryType type, String title, String titleSort, String summary, @@ -681,7 +681,7 @@ public class GetAllMediaLibraryMetadata { } @JsonIgnore - public GetAllMediaLibraryLibraryType type() { + public GetLibrarySectionsAllLibraryType type() { return type; } @@ -1068,62 +1068,62 @@ public class GetAllMediaLibraryMetadata { @SuppressWarnings("unchecked") @JsonIgnore - public Optional> image() { - return (Optional>) image; + public Optional> image() { + return (Optional>) image; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional ultraBlurColors() { - return (Optional) ultraBlurColors; + public Optional ultraBlurColors() { + return (Optional) ultraBlurColors; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> media() { - return (Optional>) media; + public Optional> guids() { + return (Optional>) guids; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> genre() { - return (Optional>) genre; + public Optional> media() { + return (Optional>) media; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> country() { - return (Optional>) country; + public Optional> genre() { + return (Optional>) genre; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> director() { - return (Optional>) director; + public Optional> country() { + return (Optional>) country; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> writer() { - return (Optional>) writer; + public Optional> director() { + return (Optional>) director; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> role() { - return (Optional>) role; + public Optional> writer() { + return (Optional>) writer; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> guids() { - return (Optional>) guids; + public Optional> role() { + return (Optional>) role; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> collection() { - return (Optional>) collection; + public Optional> collection() { + return (Optional>) collection; } public final static Builder builder() { @@ -1133,7 +1133,7 @@ public class GetAllMediaLibraryMetadata { /** * The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API. */ - public GetAllMediaLibraryMetadata withRatingKey(String ratingKey) { + public GetLibrarySectionsAllMetadata withRatingKey(String ratingKey) { Utils.checkNotNull(ratingKey, "ratingKey"); this.ratingKey = ratingKey; return this; @@ -1142,7 +1142,7 @@ public class GetAllMediaLibraryMetadata { /** * The unique key for the media item. */ - public GetAllMediaLibraryMetadata withKey(String key) { + public GetLibrarySectionsAllMetadata withKey(String key) { Utils.checkNotNull(key, "key"); this.key = key; return this; @@ -1151,7 +1151,7 @@ public class GetAllMediaLibraryMetadata { /** * The globally unique identifier for the media item. */ - public GetAllMediaLibraryMetadata withGuid(String guid) { + public GetLibrarySectionsAllMetadata withGuid(String guid) { Utils.checkNotNull(guid, "guid"); this.guid = guid; return this; @@ -1160,7 +1160,7 @@ public class GetAllMediaLibraryMetadata { /** * A URL‐friendly version of the media title. */ - public GetAllMediaLibraryMetadata withSlug(String slug) { + public GetLibrarySectionsAllMetadata withSlug(String slug) { Utils.checkNotNull(slug, "slug"); this.slug = slug; return this; @@ -1169,7 +1169,7 @@ public class GetAllMediaLibraryMetadata { /** * The studio that produced the media item. */ - public GetAllMediaLibraryMetadata withStudio(String studio) { + public GetLibrarySectionsAllMetadata withStudio(String studio) { Utils.checkNotNull(studio, "studio"); this.studio = Optional.ofNullable(studio); return this; @@ -1178,13 +1178,13 @@ public class GetAllMediaLibraryMetadata { /** * The studio that produced the media item. */ - public GetAllMediaLibraryMetadata withStudio(Optional studio) { + public GetLibrarySectionsAllMetadata withStudio(Optional studio) { Utils.checkNotNull(studio, "studio"); this.studio = studio; return this; } - public GetAllMediaLibraryMetadata withType(GetAllMediaLibraryLibraryType type) { + public GetLibrarySectionsAllMetadata withType(GetLibrarySectionsAllLibraryType type) { Utils.checkNotNull(type, "type"); this.type = type; return this; @@ -1193,7 +1193,7 @@ public class GetAllMediaLibraryMetadata { /** * The title of the media item. */ - public GetAllMediaLibraryMetadata withTitle(String title) { + public GetLibrarySectionsAllMetadata withTitle(String title) { Utils.checkNotNull(title, "title"); this.title = title; return this; @@ -1202,7 +1202,7 @@ public class GetAllMediaLibraryMetadata { /** * The sort title used for ordering media items. */ - public GetAllMediaLibraryMetadata withTitleSort(String titleSort) { + public GetLibrarySectionsAllMetadata withTitleSort(String titleSort) { Utils.checkNotNull(titleSort, "titleSort"); this.titleSort = titleSort; return this; @@ -1211,7 +1211,7 @@ public class GetAllMediaLibraryMetadata { /** * The content rating for the media item. */ - public GetAllMediaLibraryMetadata withContentRating(String contentRating) { + public GetLibrarySectionsAllMetadata withContentRating(String contentRating) { Utils.checkNotNull(contentRating, "contentRating"); this.contentRating = Optional.ofNullable(contentRating); return this; @@ -1220,7 +1220,7 @@ public class GetAllMediaLibraryMetadata { /** * The content rating for the media item. */ - public GetAllMediaLibraryMetadata withContentRating(Optional contentRating) { + public GetLibrarySectionsAllMetadata withContentRating(Optional contentRating) { Utils.checkNotNull(contentRating, "contentRating"); this.contentRating = contentRating; return this; @@ -1229,7 +1229,7 @@ public class GetAllMediaLibraryMetadata { /** * A synopsis of the media item. */ - public GetAllMediaLibraryMetadata withSummary(String summary) { + public GetLibrarySectionsAllMetadata withSummary(String summary) { Utils.checkNotNull(summary, "summary"); this.summary = summary; return this; @@ -1238,7 +1238,7 @@ public class GetAllMediaLibraryMetadata { /** * The critic rating for the media item. */ - public GetAllMediaLibraryMetadata withRating(float rating) { + public GetLibrarySectionsAllMetadata withRating(float rating) { Utils.checkNotNull(rating, "rating"); this.rating = rating; return this; @@ -1247,7 +1247,7 @@ public class GetAllMediaLibraryMetadata { /** * The audience rating for the media item. */ - public GetAllMediaLibraryMetadata withAudienceRating(double audienceRating) { + public GetLibrarySectionsAllMetadata withAudienceRating(double audienceRating) { Utils.checkNotNull(audienceRating, "audienceRating"); this.audienceRating = audienceRating; return this; @@ -1256,7 +1256,7 @@ public class GetAllMediaLibraryMetadata { /** * The release year of the media item. */ - public GetAllMediaLibraryMetadata withYear(int year) { + public GetLibrarySectionsAllMetadata withYear(int year) { Utils.checkNotNull(year, "year"); this.year = Optional.ofNullable(year); return this; @@ -1265,7 +1265,7 @@ public class GetAllMediaLibraryMetadata { /** * The release year of the media item. */ - public GetAllMediaLibraryMetadata withYear(Optional year) { + public GetLibrarySectionsAllMetadata withYear(Optional year) { Utils.checkNotNull(year, "year"); this.year = year; return this; @@ -1274,7 +1274,7 @@ public class GetAllMediaLibraryMetadata { /** * A brief tagline for the media item. */ - public GetAllMediaLibraryMetadata withTagline(String tagline) { + public GetLibrarySectionsAllMetadata withTagline(String tagline) { Utils.checkNotNull(tagline, "tagline"); this.tagline = tagline; return this; @@ -1283,7 +1283,7 @@ public class GetAllMediaLibraryMetadata { /** * The thumbnail image URL for the media item. */ - public GetAllMediaLibraryMetadata withThumb(String thumb) { + public GetLibrarySectionsAllMetadata withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); this.thumb = thumb; return this; @@ -1292,7 +1292,7 @@ public class GetAllMediaLibraryMetadata { /** * The art image URL for the media item. */ - public GetAllMediaLibraryMetadata withArt(String art) { + public GetLibrarySectionsAllMetadata withArt(String art) { Utils.checkNotNull(art, "art"); this.art = art; return this; @@ -1301,7 +1301,7 @@ public class GetAllMediaLibraryMetadata { /** * The theme URL for the media item. */ - public GetAllMediaLibraryMetadata withTheme(String theme) { + public GetLibrarySectionsAllMetadata withTheme(String theme) { Utils.checkNotNull(theme, "theme"); this.theme = theme; return this; @@ -1310,7 +1310,7 @@ public class GetAllMediaLibraryMetadata { /** * The index position of the media item. */ - public GetAllMediaLibraryMetadata withIndex(int index) { + public GetLibrarySectionsAllMetadata withIndex(int index) { Utils.checkNotNull(index, "index"); this.index = index; return this; @@ -1319,7 +1319,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of leaf items (end nodes) under this media item. */ - public GetAllMediaLibraryMetadata withLeafCount(int leafCount) { + public GetLibrarySectionsAllMetadata withLeafCount(int leafCount) { Utils.checkNotNull(leafCount, "leafCount"); this.leafCount = Optional.ofNullable(leafCount); return this; @@ -1328,7 +1328,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of leaf items (end nodes) under this media item. */ - public GetAllMediaLibraryMetadata withLeafCount(Optional leafCount) { + public GetLibrarySectionsAllMetadata withLeafCount(Optional leafCount) { Utils.checkNotNull(leafCount, "leafCount"); this.leafCount = leafCount; return this; @@ -1337,7 +1337,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of leaf items that have been viewed. */ - public GetAllMediaLibraryMetadata withViewedLeafCount(int viewedLeafCount) { + public GetLibrarySectionsAllMetadata withViewedLeafCount(int viewedLeafCount) { Utils.checkNotNull(viewedLeafCount, "viewedLeafCount"); this.viewedLeafCount = Optional.ofNullable(viewedLeafCount); return this; @@ -1346,7 +1346,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of leaf items that have been viewed. */ - public GetAllMediaLibraryMetadata withViewedLeafCount(Optional viewedLeafCount) { + public GetLibrarySectionsAllMetadata withViewedLeafCount(Optional viewedLeafCount) { Utils.checkNotNull(viewedLeafCount, "viewedLeafCount"); this.viewedLeafCount = viewedLeafCount; return this; @@ -1355,7 +1355,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of child items associated with this media item. */ - public GetAllMediaLibraryMetadata withChildCount(int childCount) { + public GetLibrarySectionsAllMetadata withChildCount(int childCount) { Utils.checkNotNull(childCount, "childCount"); this.childCount = childCount; return this; @@ -1364,7 +1364,7 @@ public class GetAllMediaLibraryMetadata { /** * The total number of seasons (for TV shows). */ - public GetAllMediaLibraryMetadata withSeasonCount(int seasonCount) { + public GetLibrarySectionsAllMetadata withSeasonCount(int seasonCount) { Utils.checkNotNull(seasonCount, "seasonCount"); this.seasonCount = seasonCount; return this; @@ -1373,7 +1373,7 @@ public class GetAllMediaLibraryMetadata { /** * The duration of the media item in milliseconds. */ - public GetAllMediaLibraryMetadata withDuration(int duration) { + public GetLibrarySectionsAllMetadata withDuration(int duration) { Utils.checkNotNull(duration, "duration"); this.duration = duration; return this; @@ -1382,13 +1382,13 @@ public class GetAllMediaLibraryMetadata { /** * The original release date of the media item. */ - public GetAllMediaLibraryMetadata withOriginallyAvailableAt(LocalDate originallyAvailableAt) { + public GetLibrarySectionsAllMetadata withOriginallyAvailableAt(LocalDate originallyAvailableAt) { Utils.checkNotNull(originallyAvailableAt, "originallyAvailableAt"); this.originallyAvailableAt = originallyAvailableAt; return this; } - public GetAllMediaLibraryMetadata withAddedAt(long addedAt) { + public GetLibrarySectionsAllMetadata withAddedAt(long addedAt) { Utils.checkNotNull(addedAt, "addedAt"); this.addedAt = addedAt; return this; @@ -1397,7 +1397,7 @@ public class GetAllMediaLibraryMetadata { /** * Unix epoch datetime in seconds */ - public GetAllMediaLibraryMetadata withUpdatedAt(long updatedAt) { + public GetLibrarySectionsAllMetadata withUpdatedAt(long updatedAt) { Utils.checkNotNull(updatedAt, "updatedAt"); this.updatedAt = Optional.ofNullable(updatedAt); return this; @@ -1406,7 +1406,7 @@ public class GetAllMediaLibraryMetadata { /** * Unix epoch datetime in seconds */ - public GetAllMediaLibraryMetadata withUpdatedAt(Optional updatedAt) { + public GetLibrarySectionsAllMetadata withUpdatedAt(Optional updatedAt) { Utils.checkNotNull(updatedAt, "updatedAt"); this.updatedAt = updatedAt; return this; @@ -1415,7 +1415,7 @@ public class GetAllMediaLibraryMetadata { /** * The URL for the audience rating image. */ - public GetAllMediaLibraryMetadata withAudienceRatingImage(String audienceRatingImage) { + public GetLibrarySectionsAllMetadata withAudienceRatingImage(String audienceRatingImage) { Utils.checkNotNull(audienceRatingImage, "audienceRatingImage"); this.audienceRatingImage = Optional.ofNullable(audienceRatingImage); return this; @@ -1424,7 +1424,7 @@ public class GetAllMediaLibraryMetadata { /** * The URL for the audience rating image. */ - public GetAllMediaLibraryMetadata withAudienceRatingImage(Optional audienceRatingImage) { + public GetLibrarySectionsAllMetadata withAudienceRatingImage(Optional audienceRatingImage) { Utils.checkNotNull(audienceRatingImage, "audienceRatingImage"); this.audienceRatingImage = audienceRatingImage; return this; @@ -1433,7 +1433,7 @@ public class GetAllMediaLibraryMetadata { /** * The source from which chapter data is derived. */ - public GetAllMediaLibraryMetadata withChapterSource(String chapterSource) { + public GetLibrarySectionsAllMetadata withChapterSource(String chapterSource) { Utils.checkNotNull(chapterSource, "chapterSource"); this.chapterSource = Optional.ofNullable(chapterSource); return this; @@ -1442,7 +1442,7 @@ public class GetAllMediaLibraryMetadata { /** * The source from which chapter data is derived. */ - public GetAllMediaLibraryMetadata withChapterSource(Optional chapterSource) { + public GetLibrarySectionsAllMetadata withChapterSource(Optional chapterSource) { Utils.checkNotNull(chapterSource, "chapterSource"); this.chapterSource = chapterSource; return this; @@ -1451,7 +1451,7 @@ public class GetAllMediaLibraryMetadata { /** * The primary extra key associated with this media item. */ - public GetAllMediaLibraryMetadata withPrimaryExtraKey(String primaryExtraKey) { + public GetLibrarySectionsAllMetadata withPrimaryExtraKey(String primaryExtraKey) { Utils.checkNotNull(primaryExtraKey, "primaryExtraKey"); this.primaryExtraKey = Optional.ofNullable(primaryExtraKey); return this; @@ -1460,7 +1460,7 @@ public class GetAllMediaLibraryMetadata { /** * The primary extra key associated with this media item. */ - public GetAllMediaLibraryMetadata withPrimaryExtraKey(Optional primaryExtraKey) { + public GetLibrarySectionsAllMetadata withPrimaryExtraKey(Optional primaryExtraKey) { Utils.checkNotNull(primaryExtraKey, "primaryExtraKey"); this.primaryExtraKey = primaryExtraKey; return this; @@ -1469,7 +1469,7 @@ public class GetAllMediaLibraryMetadata { /** * The original title of the media item (if different). */ - public GetAllMediaLibraryMetadata withOriginalTitle(String originalTitle) { + public GetLibrarySectionsAllMetadata withOriginalTitle(String originalTitle) { Utils.checkNotNull(originalTitle, "originalTitle"); this.originalTitle = Optional.ofNullable(originalTitle); return this; @@ -1478,7 +1478,7 @@ public class GetAllMediaLibraryMetadata { /** * The original title of the media item (if different). */ - public GetAllMediaLibraryMetadata withOriginalTitle(Optional originalTitle) { + public GetLibrarySectionsAllMetadata withOriginalTitle(Optional originalTitle) { Utils.checkNotNull(originalTitle, "originalTitle"); this.originalTitle = originalTitle; return this; @@ -1487,7 +1487,7 @@ public class GetAllMediaLibraryMetadata { /** * The rating key of the parent media item. */ - public GetAllMediaLibraryMetadata withParentRatingKey(String parentRatingKey) { + public GetLibrarySectionsAllMetadata withParentRatingKey(String parentRatingKey) { Utils.checkNotNull(parentRatingKey, "parentRatingKey"); this.parentRatingKey = Optional.ofNullable(parentRatingKey); return this; @@ -1496,7 +1496,7 @@ public class GetAllMediaLibraryMetadata { /** * The rating key of the parent media item. */ - public GetAllMediaLibraryMetadata withParentRatingKey(Optional parentRatingKey) { + public GetLibrarySectionsAllMetadata withParentRatingKey(Optional parentRatingKey) { Utils.checkNotNull(parentRatingKey, "parentRatingKey"); this.parentRatingKey = parentRatingKey; return this; @@ -1505,7 +1505,7 @@ public class GetAllMediaLibraryMetadata { /** * The rating key of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentRatingKey(String grandparentRatingKey) { + public GetLibrarySectionsAllMetadata withGrandparentRatingKey(String grandparentRatingKey) { Utils.checkNotNull(grandparentRatingKey, "grandparentRatingKey"); this.grandparentRatingKey = Optional.ofNullable(grandparentRatingKey); return this; @@ -1514,7 +1514,7 @@ public class GetAllMediaLibraryMetadata { /** * The rating key of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentRatingKey(Optional grandparentRatingKey) { + public GetLibrarySectionsAllMetadata withGrandparentRatingKey(Optional grandparentRatingKey) { Utils.checkNotNull(grandparentRatingKey, "grandparentRatingKey"); this.grandparentRatingKey = grandparentRatingKey; return this; @@ -1523,7 +1523,7 @@ public class GetAllMediaLibraryMetadata { /** * The GUID of the parent media item. */ - public GetAllMediaLibraryMetadata withParentGuid(String parentGuid) { + public GetLibrarySectionsAllMetadata withParentGuid(String parentGuid) { Utils.checkNotNull(parentGuid, "parentGuid"); this.parentGuid = Optional.ofNullable(parentGuid); return this; @@ -1532,7 +1532,7 @@ public class GetAllMediaLibraryMetadata { /** * The GUID of the parent media item. */ - public GetAllMediaLibraryMetadata withParentGuid(Optional parentGuid) { + public GetLibrarySectionsAllMetadata withParentGuid(Optional parentGuid) { Utils.checkNotNull(parentGuid, "parentGuid"); this.parentGuid = parentGuid; return this; @@ -1541,7 +1541,7 @@ public class GetAllMediaLibraryMetadata { /** * The GUID of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentGuid(String grandparentGuid) { + public GetLibrarySectionsAllMetadata withGrandparentGuid(String grandparentGuid) { Utils.checkNotNull(grandparentGuid, "grandparentGuid"); this.grandparentGuid = Optional.ofNullable(grandparentGuid); return this; @@ -1550,7 +1550,7 @@ public class GetAllMediaLibraryMetadata { /** * The GUID of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentGuid(Optional grandparentGuid) { + public GetLibrarySectionsAllMetadata withGrandparentGuid(Optional grandparentGuid) { Utils.checkNotNull(grandparentGuid, "grandparentGuid"); this.grandparentGuid = grandparentGuid; return this; @@ -1559,7 +1559,7 @@ public class GetAllMediaLibraryMetadata { /** * The slug for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentSlug(String grandparentSlug) { + public GetLibrarySectionsAllMetadata withGrandparentSlug(String grandparentSlug) { Utils.checkNotNull(grandparentSlug, "grandparentSlug"); this.grandparentSlug = Optional.ofNullable(grandparentSlug); return this; @@ -1568,7 +1568,7 @@ public class GetAllMediaLibraryMetadata { /** * The slug for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentSlug(Optional grandparentSlug) { + public GetLibrarySectionsAllMetadata withGrandparentSlug(Optional grandparentSlug) { Utils.checkNotNull(grandparentSlug, "grandparentSlug"); this.grandparentSlug = grandparentSlug; return this; @@ -1577,7 +1577,7 @@ public class GetAllMediaLibraryMetadata { /** * The key of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentKey(String grandparentKey) { + public GetLibrarySectionsAllMetadata withGrandparentKey(String grandparentKey) { Utils.checkNotNull(grandparentKey, "grandparentKey"); this.grandparentKey = Optional.ofNullable(grandparentKey); return this; @@ -1586,7 +1586,7 @@ public class GetAllMediaLibraryMetadata { /** * The key of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentKey(Optional grandparentKey) { + public GetLibrarySectionsAllMetadata withGrandparentKey(Optional grandparentKey) { Utils.checkNotNull(grandparentKey, "grandparentKey"); this.grandparentKey = grandparentKey; return this; @@ -1595,7 +1595,7 @@ public class GetAllMediaLibraryMetadata { /** * The key of the parent media item. */ - public GetAllMediaLibraryMetadata withParentKey(String parentKey) { + public GetLibrarySectionsAllMetadata withParentKey(String parentKey) { Utils.checkNotNull(parentKey, "parentKey"); this.parentKey = Optional.ofNullable(parentKey); return this; @@ -1604,7 +1604,7 @@ public class GetAllMediaLibraryMetadata { /** * The key of the parent media item. */ - public GetAllMediaLibraryMetadata withParentKey(Optional parentKey) { + public GetLibrarySectionsAllMetadata withParentKey(Optional parentKey) { Utils.checkNotNull(parentKey, "parentKey"); this.parentKey = parentKey; return this; @@ -1613,7 +1613,7 @@ public class GetAllMediaLibraryMetadata { /** * The title of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentTitle(String grandparentTitle) { + public GetLibrarySectionsAllMetadata withGrandparentTitle(String grandparentTitle) { Utils.checkNotNull(grandparentTitle, "grandparentTitle"); this.grandparentTitle = Optional.ofNullable(grandparentTitle); return this; @@ -1622,7 +1622,7 @@ public class GetAllMediaLibraryMetadata { /** * The title of the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentTitle(Optional grandparentTitle) { + public GetLibrarySectionsAllMetadata withGrandparentTitle(Optional grandparentTitle) { Utils.checkNotNull(grandparentTitle, "grandparentTitle"); this.grandparentTitle = grandparentTitle; return this; @@ -1631,7 +1631,7 @@ public class GetAllMediaLibraryMetadata { /** * The thumbnail URL for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentThumb(String grandparentThumb) { + public GetLibrarySectionsAllMetadata withGrandparentThumb(String grandparentThumb) { Utils.checkNotNull(grandparentThumb, "grandparentThumb"); this.grandparentThumb = Optional.ofNullable(grandparentThumb); return this; @@ -1640,7 +1640,7 @@ public class GetAllMediaLibraryMetadata { /** * The thumbnail URL for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentThumb(Optional grandparentThumb) { + public GetLibrarySectionsAllMetadata withGrandparentThumb(Optional grandparentThumb) { Utils.checkNotNull(grandparentThumb, "grandparentThumb"); this.grandparentThumb = grandparentThumb; return this; @@ -1649,7 +1649,7 @@ public class GetAllMediaLibraryMetadata { /** * The theme URL for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentTheme(String grandparentTheme) { + public GetLibrarySectionsAllMetadata withGrandparentTheme(String grandparentTheme) { Utils.checkNotNull(grandparentTheme, "grandparentTheme"); this.grandparentTheme = Optional.ofNullable(grandparentTheme); return this; @@ -1658,7 +1658,7 @@ public class GetAllMediaLibraryMetadata { /** * The theme URL for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentTheme(Optional grandparentTheme) { + public GetLibrarySectionsAllMetadata withGrandparentTheme(Optional grandparentTheme) { Utils.checkNotNull(grandparentTheme, "grandparentTheme"); this.grandparentTheme = grandparentTheme; return this; @@ -1667,7 +1667,7 @@ public class GetAllMediaLibraryMetadata { /** * The art URL for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentArt(String grandparentArt) { + public GetLibrarySectionsAllMetadata withGrandparentArt(String grandparentArt) { Utils.checkNotNull(grandparentArt, "grandparentArt"); this.grandparentArt = Optional.ofNullable(grandparentArt); return this; @@ -1676,7 +1676,7 @@ public class GetAllMediaLibraryMetadata { /** * The art URL for the grandparent media item. */ - public GetAllMediaLibraryMetadata withGrandparentArt(Optional grandparentArt) { + public GetLibrarySectionsAllMetadata withGrandparentArt(Optional grandparentArt) { Utils.checkNotNull(grandparentArt, "grandparentArt"); this.grandparentArt = grandparentArt; return this; @@ -1685,7 +1685,7 @@ public class GetAllMediaLibraryMetadata { /** * The title of the parent media item. */ - public GetAllMediaLibraryMetadata withParentTitle(String parentTitle) { + public GetLibrarySectionsAllMetadata withParentTitle(String parentTitle) { Utils.checkNotNull(parentTitle, "parentTitle"); this.parentTitle = Optional.ofNullable(parentTitle); return this; @@ -1694,7 +1694,7 @@ public class GetAllMediaLibraryMetadata { /** * The title of the parent media item. */ - public GetAllMediaLibraryMetadata withParentTitle(Optional parentTitle) { + public GetLibrarySectionsAllMetadata withParentTitle(Optional parentTitle) { Utils.checkNotNull(parentTitle, "parentTitle"); this.parentTitle = parentTitle; return this; @@ -1703,7 +1703,7 @@ public class GetAllMediaLibraryMetadata { /** * The index position of the parent media item. */ - public GetAllMediaLibraryMetadata withParentIndex(int parentIndex) { + public GetLibrarySectionsAllMetadata withParentIndex(int parentIndex) { Utils.checkNotNull(parentIndex, "parentIndex"); this.parentIndex = Optional.ofNullable(parentIndex); return this; @@ -1712,7 +1712,7 @@ public class GetAllMediaLibraryMetadata { /** * The index position of the parent media item. */ - public GetAllMediaLibraryMetadata withParentIndex(Optional parentIndex) { + public GetLibrarySectionsAllMetadata withParentIndex(Optional parentIndex) { Utils.checkNotNull(parentIndex, "parentIndex"); this.parentIndex = parentIndex; return this; @@ -1721,7 +1721,7 @@ public class GetAllMediaLibraryMetadata { /** * The thumbnail URL for the parent media item. */ - public GetAllMediaLibraryMetadata withParentThumb(String parentThumb) { + public GetLibrarySectionsAllMetadata withParentThumb(String parentThumb) { Utils.checkNotNull(parentThumb, "parentThumb"); this.parentThumb = Optional.ofNullable(parentThumb); return this; @@ -1730,7 +1730,7 @@ public class GetAllMediaLibraryMetadata { /** * The thumbnail URL for the parent media item. */ - public GetAllMediaLibraryMetadata withParentThumb(Optional parentThumb) { + public GetLibrarySectionsAllMetadata withParentThumb(Optional parentThumb) { Utils.checkNotNull(parentThumb, "parentThumb"); this.parentThumb = parentThumb; return this; @@ -1739,7 +1739,7 @@ public class GetAllMediaLibraryMetadata { /** * The URL for the rating image. */ - public GetAllMediaLibraryMetadata withRatingImage(String ratingImage) { + public GetLibrarySectionsAllMetadata withRatingImage(String ratingImage) { Utils.checkNotNull(ratingImage, "ratingImage"); this.ratingImage = Optional.ofNullable(ratingImage); return this; @@ -1748,7 +1748,7 @@ public class GetAllMediaLibraryMetadata { /** * The URL for the rating image. */ - public GetAllMediaLibraryMetadata withRatingImage(Optional ratingImage) { + public GetLibrarySectionsAllMetadata withRatingImage(Optional ratingImage) { Utils.checkNotNull(ratingImage, "ratingImage"); this.ratingImage = ratingImage; return this; @@ -1757,7 +1757,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of times this media item has been viewed. */ - public GetAllMediaLibraryMetadata withViewCount(int viewCount) { + public GetLibrarySectionsAllMetadata withViewCount(int viewCount) { Utils.checkNotNull(viewCount, "viewCount"); this.viewCount = Optional.ofNullable(viewCount); return this; @@ -1766,7 +1766,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of times this media item has been viewed. */ - public GetAllMediaLibraryMetadata withViewCount(Optional viewCount) { + public GetLibrarySectionsAllMetadata withViewCount(Optional viewCount) { Utils.checkNotNull(viewCount, "viewCount"); this.viewCount = viewCount; return this; @@ -1775,7 +1775,7 @@ public class GetAllMediaLibraryMetadata { /** * The current playback offset (in milliseconds). */ - public GetAllMediaLibraryMetadata withViewOffset(int viewOffset) { + public GetLibrarySectionsAllMetadata withViewOffset(int viewOffset) { Utils.checkNotNull(viewOffset, "viewOffset"); this.viewOffset = Optional.ofNullable(viewOffset); return this; @@ -1784,7 +1784,7 @@ public class GetAllMediaLibraryMetadata { /** * The current playback offset (in milliseconds). */ - public GetAllMediaLibraryMetadata withViewOffset(Optional viewOffset) { + public GetLibrarySectionsAllMetadata withViewOffset(Optional viewOffset) { Utils.checkNotNull(viewOffset, "viewOffset"); this.viewOffset = viewOffset; return this; @@ -1793,7 +1793,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of times this media item has been skipped. */ - public GetAllMediaLibraryMetadata withSkipCount(int skipCount) { + public GetLibrarySectionsAllMetadata withSkipCount(int skipCount) { Utils.checkNotNull(skipCount, "skipCount"); this.skipCount = Optional.ofNullable(skipCount); return this; @@ -1802,7 +1802,7 @@ public class GetAllMediaLibraryMetadata { /** * The number of times this media item has been skipped. */ - public GetAllMediaLibraryMetadata withSkipCount(Optional skipCount) { + public GetLibrarySectionsAllMetadata withSkipCount(Optional skipCount) { Utils.checkNotNull(skipCount, "skipCount"); this.skipCount = skipCount; return this; @@ -1811,7 +1811,7 @@ public class GetAllMediaLibraryMetadata { /** * A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. */ - public GetAllMediaLibraryMetadata withSubtype(String subtype) { + public GetLibrarySectionsAllMetadata withSubtype(String subtype) { Utils.checkNotNull(subtype, "subtype"); this.subtype = Optional.ofNullable(subtype); return this; @@ -1820,7 +1820,7 @@ public class GetAllMediaLibraryMetadata { /** * A classification that further describes the type of media item. For example, 'clip' indicates that the item is a short video clip. */ - public GetAllMediaLibraryMetadata withSubtype(Optional subtype) { + public GetLibrarySectionsAllMetadata withSubtype(Optional subtype) { Utils.checkNotNull(subtype, "subtype"); this.subtype = subtype; return this; @@ -1829,7 +1829,7 @@ public class GetAllMediaLibraryMetadata { /** * The Unix timestamp representing the last time the item was rated. */ - public GetAllMediaLibraryMetadata withLastRatedAt(long lastRatedAt) { + public GetLibrarySectionsAllMetadata withLastRatedAt(long lastRatedAt) { Utils.checkNotNull(lastRatedAt, "lastRatedAt"); this.lastRatedAt = Optional.ofNullable(lastRatedAt); return this; @@ -1838,7 +1838,7 @@ public class GetAllMediaLibraryMetadata { /** * The Unix timestamp representing the last time the item was rated. */ - public GetAllMediaLibraryMetadata withLastRatedAt(Optional lastRatedAt) { + public GetLibrarySectionsAllMetadata withLastRatedAt(Optional lastRatedAt) { Utils.checkNotNull(lastRatedAt, "lastRatedAt"); this.lastRatedAt = lastRatedAt; return this; @@ -1847,7 +1847,7 @@ public class GetAllMediaLibraryMetadata { /** * The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). */ - public GetAllMediaLibraryMetadata withCreatedAtAccuracy(String createdAtAccuracy) { + public GetLibrarySectionsAllMetadata withCreatedAtAccuracy(String createdAtAccuracy) { Utils.checkNotNull(createdAtAccuracy, "createdAtAccuracy"); this.createdAtAccuracy = Optional.ofNullable(createdAtAccuracy); return this; @@ -1856,7 +1856,7 @@ public class GetAllMediaLibraryMetadata { /** * The accuracy of the creation timestamp. This value indicates the format(s) provided (for example, 'epoch,local' means both epoch and local time formats are available). */ - public GetAllMediaLibraryMetadata withCreatedAtAccuracy(Optional createdAtAccuracy) { + public GetLibrarySectionsAllMetadata withCreatedAtAccuracy(Optional createdAtAccuracy) { Utils.checkNotNull(createdAtAccuracy, "createdAtAccuracy"); this.createdAtAccuracy = createdAtAccuracy; return this; @@ -1865,7 +1865,7 @@ public class GetAllMediaLibraryMetadata { /** * The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. */ - public GetAllMediaLibraryMetadata withCreatedAtTZOffset(String createdAtTZOffset) { + public GetLibrarySectionsAllMetadata withCreatedAtTZOffset(String createdAtTZOffset) { Utils.checkNotNull(createdAtTZOffset, "createdAtTZOffset"); this.createdAtTZOffset = Optional.ofNullable(createdAtTZOffset); return this; @@ -1874,7 +1874,7 @@ public class GetAllMediaLibraryMetadata { /** * The time zone offset for the creation timestamp, represented as a string. This offset indicates the difference from UTC. */ - public GetAllMediaLibraryMetadata withCreatedAtTZOffset(Optional createdAtTZOffset) { + public GetLibrarySectionsAllMetadata withCreatedAtTZOffset(Optional createdAtTZOffset) { Utils.checkNotNull(createdAtTZOffset, "createdAtTZOffset"); this.createdAtTZOffset = createdAtTZOffset; return this; @@ -1883,7 +1883,7 @@ public class GetAllMediaLibraryMetadata { /** * Unix timestamp for when the media item was last viewed. */ - public GetAllMediaLibraryMetadata withLastViewedAt(int lastViewedAt) { + public GetLibrarySectionsAllMetadata withLastViewedAt(int lastViewedAt) { Utils.checkNotNull(lastViewedAt, "lastViewedAt"); this.lastViewedAt = Optional.ofNullable(lastViewedAt); return this; @@ -1892,7 +1892,7 @@ public class GetAllMediaLibraryMetadata { /** * Unix timestamp for when the media item was last viewed. */ - public GetAllMediaLibraryMetadata withLastViewedAt(Optional lastViewedAt) { + public GetLibrarySectionsAllMetadata withLastViewedAt(Optional lastViewedAt) { Utils.checkNotNull(lastViewedAt, "lastViewedAt"); this.lastViewedAt = lastViewedAt; return this; @@ -1901,7 +1901,7 @@ public class GetAllMediaLibraryMetadata { /** * The rating provided by a user for the item. This value is expressed as a decimal number. */ - public GetAllMediaLibraryMetadata withUserRating(float userRating) { + public GetLibrarySectionsAllMetadata withUserRating(float userRating) { Utils.checkNotNull(userRating, "userRating"); this.userRating = Optional.ofNullable(userRating); return this; @@ -1910,127 +1910,127 @@ public class GetAllMediaLibraryMetadata { /** * The rating provided by a user for the item. This value is expressed as a decimal number. */ - public GetAllMediaLibraryMetadata withUserRating(Optional userRating) { + public GetLibrarySectionsAllMetadata withUserRating(Optional userRating) { Utils.checkNotNull(userRating, "userRating"); this.userRating = userRating; return this; } - public GetAllMediaLibraryMetadata withImage(List image) { + public GetLibrarySectionsAllMetadata withImage(List image) { Utils.checkNotNull(image, "image"); this.image = Optional.ofNullable(image); return this; } - public GetAllMediaLibraryMetadata withImage(Optional> image) { + public GetLibrarySectionsAllMetadata withImage(Optional> image) { Utils.checkNotNull(image, "image"); this.image = image; return this; } - public GetAllMediaLibraryMetadata withUltraBlurColors(GetAllMediaLibraryUltraBlurColors ultraBlurColors) { + public GetLibrarySectionsAllMetadata withUltraBlurColors(GetLibrarySectionsAllUltraBlurColors ultraBlurColors) { Utils.checkNotNull(ultraBlurColors, "ultraBlurColors"); this.ultraBlurColors = Optional.ofNullable(ultraBlurColors); return this; } - public GetAllMediaLibraryMetadata withUltraBlurColors(Optional ultraBlurColors) { + public GetLibrarySectionsAllMetadata withUltraBlurColors(Optional ultraBlurColors) { Utils.checkNotNull(ultraBlurColors, "ultraBlurColors"); this.ultraBlurColors = ultraBlurColors; return this; } - public GetAllMediaLibraryMetadata withMedia(List media) { - Utils.checkNotNull(media, "media"); - this.media = Optional.ofNullable(media); - return this; - } - - public GetAllMediaLibraryMetadata withMedia(Optional> media) { - Utils.checkNotNull(media, "media"); - this.media = media; - return this; - } - - public GetAllMediaLibraryMetadata withGenre(List genre) { - Utils.checkNotNull(genre, "genre"); - this.genre = Optional.ofNullable(genre); - return this; - } - - public GetAllMediaLibraryMetadata withGenre(Optional> genre) { - Utils.checkNotNull(genre, "genre"); - this.genre = genre; - return this; - } - - public GetAllMediaLibraryMetadata withCountry(List country) { - Utils.checkNotNull(country, "country"); - this.country = Optional.ofNullable(country); - return this; - } - - public GetAllMediaLibraryMetadata withCountry(Optional> country) { - Utils.checkNotNull(country, "country"); - this.country = country; - return this; - } - - public GetAllMediaLibraryMetadata withDirector(List director) { - Utils.checkNotNull(director, "director"); - this.director = Optional.ofNullable(director); - return this; - } - - public GetAllMediaLibraryMetadata withDirector(Optional> director) { - Utils.checkNotNull(director, "director"); - this.director = director; - return this; - } - - public GetAllMediaLibraryMetadata withWriter(List writer) { - Utils.checkNotNull(writer, "writer"); - this.writer = Optional.ofNullable(writer); - return this; - } - - public GetAllMediaLibraryMetadata withWriter(Optional> writer) { - Utils.checkNotNull(writer, "writer"); - this.writer = writer; - return this; - } - - public GetAllMediaLibraryMetadata withRole(List role) { - Utils.checkNotNull(role, "role"); - this.role = Optional.ofNullable(role); - return this; - } - - public GetAllMediaLibraryMetadata withRole(Optional> role) { - Utils.checkNotNull(role, "role"); - this.role = role; - return this; - } - - public GetAllMediaLibraryMetadata withGuids(List guids) { + public GetLibrarySectionsAllMetadata withGuids(List guids) { Utils.checkNotNull(guids, "guids"); this.guids = Optional.ofNullable(guids); return this; } - public GetAllMediaLibraryMetadata withGuids(Optional> guids) { + public GetLibrarySectionsAllMetadata withGuids(Optional> guids) { Utils.checkNotNull(guids, "guids"); this.guids = guids; return this; } - public GetAllMediaLibraryMetadata withCollection(List collection) { + public GetLibrarySectionsAllMetadata withMedia(List media) { + Utils.checkNotNull(media, "media"); + this.media = Optional.ofNullable(media); + return this; + } + + public GetLibrarySectionsAllMetadata withMedia(Optional> media) { + Utils.checkNotNull(media, "media"); + this.media = media; + return this; + } + + public GetLibrarySectionsAllMetadata withGenre(List genre) { + Utils.checkNotNull(genre, "genre"); + this.genre = Optional.ofNullable(genre); + return this; + } + + public GetLibrarySectionsAllMetadata withGenre(Optional> genre) { + Utils.checkNotNull(genre, "genre"); + this.genre = genre; + return this; + } + + public GetLibrarySectionsAllMetadata withCountry(List country) { + Utils.checkNotNull(country, "country"); + this.country = Optional.ofNullable(country); + return this; + } + + public GetLibrarySectionsAllMetadata withCountry(Optional> country) { + Utils.checkNotNull(country, "country"); + this.country = country; + return this; + } + + public GetLibrarySectionsAllMetadata withDirector(List director) { + Utils.checkNotNull(director, "director"); + this.director = Optional.ofNullable(director); + return this; + } + + public GetLibrarySectionsAllMetadata withDirector(Optional> director) { + Utils.checkNotNull(director, "director"); + this.director = director; + return this; + } + + public GetLibrarySectionsAllMetadata withWriter(List writer) { + Utils.checkNotNull(writer, "writer"); + this.writer = Optional.ofNullable(writer); + return this; + } + + public GetLibrarySectionsAllMetadata withWriter(Optional> writer) { + Utils.checkNotNull(writer, "writer"); + this.writer = writer; + return this; + } + + public GetLibrarySectionsAllMetadata withRole(List role) { + Utils.checkNotNull(role, "role"); + this.role = Optional.ofNullable(role); + return this; + } + + public GetLibrarySectionsAllMetadata withRole(Optional> role) { + Utils.checkNotNull(role, "role"); + this.role = role; + return this; + } + + public GetLibrarySectionsAllMetadata withCollection(List collection) { Utils.checkNotNull(collection, "collection"); this.collection = Optional.ofNullable(collection); return this; } - public GetAllMediaLibraryMetadata withCollection(Optional> collection) { + public GetLibrarySectionsAllMetadata withCollection(Optional> collection) { Utils.checkNotNull(collection, "collection"); this.collection = collection; return this; @@ -2045,7 +2045,7 @@ public class GetAllMediaLibraryMetadata { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryMetadata other = (GetAllMediaLibraryMetadata) o; + GetLibrarySectionsAllMetadata other = (GetLibrarySectionsAllMetadata) o; return Objects.deepEquals(this.ratingKey, other.ratingKey) && Objects.deepEquals(this.key, other.key) && @@ -2103,13 +2103,13 @@ public class GetAllMediaLibraryMetadata { Objects.deepEquals(this.userRating, other.userRating) && Objects.deepEquals(this.image, other.image) && Objects.deepEquals(this.ultraBlurColors, other.ultraBlurColors) && + Objects.deepEquals(this.guids, other.guids) && Objects.deepEquals(this.media, other.media) && Objects.deepEquals(this.genre, other.genre) && Objects.deepEquals(this.country, other.country) && Objects.deepEquals(this.director, other.director) && Objects.deepEquals(this.writer, other.writer) && Objects.deepEquals(this.role, other.role) && - Objects.deepEquals(this.guids, other.guids) && Objects.deepEquals(this.collection, other.collection); } @@ -2172,19 +2172,19 @@ public class GetAllMediaLibraryMetadata { userRating, image, ultraBlurColors, + guids, media, genre, country, director, writer, role, - guids, collection); } @Override public String toString() { - return Utils.toString(GetAllMediaLibraryMetadata.class, + return Utils.toString(GetLibrarySectionsAllMetadata.class, "ratingKey", ratingKey, "key", key, "guid", guid, @@ -2241,13 +2241,13 @@ public class GetAllMediaLibraryMetadata { "userRating", userRating, "image", image, "ultraBlurColors", ultraBlurColors, + "guids", guids, "media", media, "genre", genre, "country", country, "director", director, "writer", writer, "role", role, - "guids", guids, "collection", collection); } @@ -2263,7 +2263,7 @@ public class GetAllMediaLibraryMetadata { private Optional studio = Optional.empty(); - private GetAllMediaLibraryLibraryType type; + private GetLibrarySectionsAllLibraryType type; private String title; @@ -2361,25 +2361,25 @@ public class GetAllMediaLibraryMetadata { private Optional userRating = Optional.empty(); - private Optional> image = Optional.empty(); + private Optional> image = Optional.empty(); - private Optional ultraBlurColors = Optional.empty(); + private Optional ultraBlurColors = Optional.empty(); - private Optional> media = Optional.empty(); + private Optional> guids = Optional.empty(); - private Optional> genre = Optional.empty(); + private Optional> media = Optional.empty(); - private Optional> country = Optional.empty(); + private Optional> genre = Optional.empty(); - private Optional> director = Optional.empty(); + private Optional> country = Optional.empty(); - private Optional> writer = Optional.empty(); + private Optional> director = Optional.empty(); - private Optional> role = Optional.empty(); + private Optional> writer = Optional.empty(); - private Optional> guids = Optional.empty(); + private Optional> role = Optional.empty(); - private Optional> collection = Optional.empty(); + private Optional> collection = Optional.empty(); private Builder() { // force use of static builder() method @@ -2439,7 +2439,7 @@ public class GetAllMediaLibraryMetadata { return this; } - public Builder type(GetAllMediaLibraryLibraryType type) { + public Builder type(GetLibrarySectionsAllLibraryType type) { Utils.checkNotNull(type, "type"); this.type = type; return this; @@ -3171,128 +3171,128 @@ public class GetAllMediaLibraryMetadata { return this; } - public Builder image(List image) { + public Builder image(List image) { Utils.checkNotNull(image, "image"); this.image = Optional.ofNullable(image); return this; } - public Builder image(Optional> image) { + public Builder image(Optional> image) { Utils.checkNotNull(image, "image"); this.image = image; return this; } - public Builder ultraBlurColors(GetAllMediaLibraryUltraBlurColors ultraBlurColors) { + public Builder ultraBlurColors(GetLibrarySectionsAllUltraBlurColors ultraBlurColors) { Utils.checkNotNull(ultraBlurColors, "ultraBlurColors"); this.ultraBlurColors = Optional.ofNullable(ultraBlurColors); return this; } - public Builder ultraBlurColors(Optional ultraBlurColors) { + public Builder ultraBlurColors(Optional ultraBlurColors) { Utils.checkNotNull(ultraBlurColors, "ultraBlurColors"); this.ultraBlurColors = ultraBlurColors; return this; } - public Builder media(List media) { - Utils.checkNotNull(media, "media"); - this.media = Optional.ofNullable(media); - return this; - } - - public Builder media(Optional> media) { - Utils.checkNotNull(media, "media"); - this.media = media; - return this; - } - - public Builder genre(List genre) { - Utils.checkNotNull(genre, "genre"); - this.genre = Optional.ofNullable(genre); - return this; - } - - public Builder genre(Optional> genre) { - Utils.checkNotNull(genre, "genre"); - this.genre = genre; - return this; - } - - public Builder country(List country) { - Utils.checkNotNull(country, "country"); - this.country = Optional.ofNullable(country); - return this; - } - - public Builder country(Optional> country) { - Utils.checkNotNull(country, "country"); - this.country = country; - return this; - } - - public Builder director(List director) { - Utils.checkNotNull(director, "director"); - this.director = Optional.ofNullable(director); - return this; - } - - public Builder director(Optional> director) { - Utils.checkNotNull(director, "director"); - this.director = director; - return this; - } - - public Builder writer(List writer) { - Utils.checkNotNull(writer, "writer"); - this.writer = Optional.ofNullable(writer); - return this; - } - - public Builder writer(Optional> writer) { - Utils.checkNotNull(writer, "writer"); - this.writer = writer; - return this; - } - - public Builder role(List role) { - Utils.checkNotNull(role, "role"); - this.role = Optional.ofNullable(role); - return this; - } - - public Builder role(Optional> role) { - Utils.checkNotNull(role, "role"); - this.role = role; - return this; - } - - public Builder guids(List guids) { + public Builder guids(List guids) { Utils.checkNotNull(guids, "guids"); this.guids = Optional.ofNullable(guids); return this; } - public Builder guids(Optional> guids) { + public Builder guids(Optional> guids) { Utils.checkNotNull(guids, "guids"); this.guids = guids; return this; } - public Builder collection(List collection) { + public Builder media(List media) { + Utils.checkNotNull(media, "media"); + this.media = Optional.ofNullable(media); + return this; + } + + public Builder media(Optional> media) { + Utils.checkNotNull(media, "media"); + this.media = media; + return this; + } + + public Builder genre(List genre) { + Utils.checkNotNull(genre, "genre"); + this.genre = Optional.ofNullable(genre); + return this; + } + + public Builder genre(Optional> genre) { + Utils.checkNotNull(genre, "genre"); + this.genre = genre; + return this; + } + + public Builder country(List country) { + Utils.checkNotNull(country, "country"); + this.country = Optional.ofNullable(country); + return this; + } + + public Builder country(Optional> country) { + Utils.checkNotNull(country, "country"); + this.country = country; + return this; + } + + public Builder director(List director) { + Utils.checkNotNull(director, "director"); + this.director = Optional.ofNullable(director); + return this; + } + + public Builder director(Optional> director) { + Utils.checkNotNull(director, "director"); + this.director = director; + return this; + } + + public Builder writer(List writer) { + Utils.checkNotNull(writer, "writer"); + this.writer = Optional.ofNullable(writer); + return this; + } + + public Builder writer(Optional> writer) { + Utils.checkNotNull(writer, "writer"); + this.writer = writer; + return this; + } + + public Builder role(List role) { + Utils.checkNotNull(role, "role"); + this.role = Optional.ofNullable(role); + return this; + } + + public Builder role(Optional> role) { + Utils.checkNotNull(role, "role"); + this.role = role; + return this; + } + + public Builder collection(List collection) { Utils.checkNotNull(collection, "collection"); this.collection = Optional.ofNullable(collection); return this; } - public Builder collection(Optional> collection) { + public Builder collection(Optional> collection) { Utils.checkNotNull(collection, "collection"); this.collection = collection; return this; } - public GetAllMediaLibraryMetadata build() { - return new GetAllMediaLibraryMetadata( + public GetLibrarySectionsAllMetadata build() { + return new GetLibrarySectionsAllMetadata( ratingKey, key, guid, @@ -3349,13 +3349,13 @@ public class GetAllMediaLibraryMetadata { userRating, image, ultraBlurColors, + guids, media, genre, country, director, writer, role, - guids, collection); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOperator.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOperator.java similarity index 83% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOperator.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOperator.java index 121f7170..1adae8a3 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOperator.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOperator.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryOperator { +public class GetLibrarySectionsAllOperator { @JsonProperty("key") private String key; @@ -20,7 +20,7 @@ public class GetAllMediaLibraryOperator { private String title; @JsonCreator - public GetAllMediaLibraryOperator( + public GetLibrarySectionsAllOperator( @JsonProperty("key") String key, @JsonProperty("title") String title) { Utils.checkNotNull(key, "key"); @@ -43,13 +43,13 @@ public class GetAllMediaLibraryOperator { return new Builder(); } - public GetAllMediaLibraryOperator withKey(String key) { + public GetLibrarySectionsAllOperator withKey(String key) { Utils.checkNotNull(key, "key"); this.key = key; return this; } - public GetAllMediaLibraryOperator withTitle(String title) { + public GetLibrarySectionsAllOperator withTitle(String title) { Utils.checkNotNull(title, "title"); this.title = title; return this; @@ -64,7 +64,7 @@ public class GetAllMediaLibraryOperator { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryOperator other = (GetAllMediaLibraryOperator) o; + GetLibrarySectionsAllOperator other = (GetLibrarySectionsAllOperator) o; return Objects.deepEquals(this.key, other.key) && Objects.deepEquals(this.title, other.title); @@ -79,7 +79,7 @@ public class GetAllMediaLibraryOperator { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryOperator.class, + return Utils.toString(GetLibrarySectionsAllOperator.class, "key", key, "title", title); } @@ -106,8 +106,8 @@ public class GetAllMediaLibraryOperator { return this; } - public GetAllMediaLibraryOperator build() { - return new GetAllMediaLibraryOperator( + public GetLibrarySectionsAllOperator build() { + return new GetLibrarySectionsAllOperator( key, title); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming.java similarity index 69% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming.java index 8322960d..e12fb875 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming.java @@ -18,28 +18,28 @@ import java.lang.SuppressWarnings; import java.util.Objects; /** - * GetAllMediaLibraryOptimizedForStreaming + * GetLibrarySectionsAllOptimizedForStreaming * *

Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ -@JsonDeserialize(using = GetAllMediaLibraryOptimizedForStreaming._Deserializer.class) -public class GetAllMediaLibraryOptimizedForStreaming { +@JsonDeserialize(using = GetLibrarySectionsAllOptimizedForStreaming._Deserializer.class) +public class GetLibrarySectionsAllOptimizedForStreaming { @JsonValue private TypedObject value; - private GetAllMediaLibraryOptimizedForStreaming(TypedObject value) { + private GetLibrarySectionsAllOptimizedForStreaming(TypedObject value) { this.value = value; } - public static GetAllMediaLibraryOptimizedForStreaming of(OptimizedForStreaming1 value) { + public static GetLibrarySectionsAllOptimizedForStreaming of(OptimizedForStreaming1 value) { Utils.checkNotNull(value, "value"); - return new GetAllMediaLibraryOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); + return new GetLibrarySectionsAllOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); } - public static GetAllMediaLibraryOptimizedForStreaming of(boolean value) { + public static GetLibrarySectionsAllOptimizedForStreaming of(boolean value) { Utils.checkNotNull(value, "value"); - return new GetAllMediaLibraryOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); + return new GetLibrarySectionsAllOptimizedForStreaming(TypedObject.of(value, JsonShape.DEFAULT, new TypeReference(){})); } /** @@ -72,7 +72,7 @@ public class GetAllMediaLibraryOptimizedForStreaming { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryOptimizedForStreaming other = (GetAllMediaLibraryOptimizedForStreaming) o; + GetLibrarySectionsAllOptimizedForStreaming other = (GetLibrarySectionsAllOptimizedForStreaming) o; return Objects.deepEquals(this.value.value(), other.value.value()); } @@ -82,10 +82,10 @@ public class GetAllMediaLibraryOptimizedForStreaming { } @SuppressWarnings("serial") - public static final class _Deserializer extends OneOfDeserializer { + public static final class _Deserializer extends OneOfDeserializer { public _Deserializer() { - super(GetAllMediaLibraryOptimizedForStreaming.class, false, + super(GetLibrarySectionsAllOptimizedForStreaming.class, false, TypeReferenceWithShape.of(new TypeReference() {}, JsonShape.DEFAULT), TypeReferenceWithShape.of(new TypeReference() {}, JsonShape.DEFAULT)); } @@ -93,7 +93,7 @@ public class GetAllMediaLibraryOptimizedForStreaming { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryOptimizedForStreaming.class, + return Utils.toString(GetLibrarySectionsAllOptimizedForStreaming.class, "value", value); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming1.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.java similarity index 62% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming1.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.java index 262948d5..62357b81 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryOptimizedForStreaming1.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllOptimizedForStreaming1.java @@ -7,14 +7,14 @@ import com.fasterxml.jackson.annotation.JsonValue; import java.util.Objects; import java.util.Optional; -public enum GetAllMediaLibraryOptimizedForStreaming1 { +public enum GetLibrarySectionsAllOptimizedForStreaming1 { ZERO(0), ONE(1); @JsonValue private final int value; - private GetAllMediaLibraryOptimizedForStreaming1(int value) { + private GetLibrarySectionsAllOptimizedForStreaming1(int value) { this.value = value; } @@ -22,8 +22,8 @@ public enum GetAllMediaLibraryOptimizedForStreaming1 { return value; } - public static Optional fromValue(int value) { - for (GetAllMediaLibraryOptimizedForStreaming1 o: GetAllMediaLibraryOptimizedForStreaming1.values()) { + public static Optional fromValue(int value) { + for (GetLibrarySectionsAllOptimizedForStreaming1 o: GetLibrarySectionsAllOptimizedForStreaming1.values()) { if (Objects.deepEquals(o.value, value)) { return Optional.of(o); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryPart.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllPart.java similarity index 83% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryPart.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllPart.java index 59e74ecb..b00a8234 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryPart.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllPart.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryPart { +public class GetLibrarySectionsAllPart { /** * Indicates if the part is accessible. @@ -106,21 +106,21 @@ public class GetAllMediaLibraryPart { */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("optimizedForStreaming") - private Optional optimizedForStreaming; + private Optional optimizedForStreaming; @JsonInclude(Include.NON_ABSENT) @JsonProperty("hasThumbnail") - private Optional hasThumbnail; + private Optional hasThumbnail; /** * An array of streams for this part. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("Stream") - private Optional> stream; + private Optional> stream; @JsonCreator - public GetAllMediaLibraryPart( + public GetLibrarySectionsAllPart( @JsonProperty("accessible") Optional accessible, @JsonProperty("exists") Optional exists, @JsonProperty("id") long id, @@ -134,9 +134,9 @@ public class GetAllMediaLibraryPart { @JsonProperty("videoProfile") Optional videoProfile, @JsonProperty("audioProfile") Optional audioProfile, @JsonProperty("has64bitOffsets") Optional has64bitOffsets, - @JsonProperty("optimizedForStreaming") Optional optimizedForStreaming, - @JsonProperty("hasThumbnail") Optional hasThumbnail, - @JsonProperty("Stream") Optional> stream) { + @JsonProperty("optimizedForStreaming") Optional optimizedForStreaming, + @JsonProperty("hasThumbnail") Optional hasThumbnail, + @JsonProperty("Stream") Optional> stream) { Utils.checkNotNull(accessible, "accessible"); Utils.checkNotNull(exists, "exists"); Utils.checkNotNull(id, "id"); @@ -171,7 +171,7 @@ public class GetAllMediaLibraryPart { this.stream = stream; } - public GetAllMediaLibraryPart( + public GetLibrarySectionsAllPart( long id, String key, String file, @@ -279,14 +279,14 @@ public class GetAllMediaLibraryPart { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional optimizedForStreaming() { - return (Optional) optimizedForStreaming; + public Optional optimizedForStreaming() { + return (Optional) optimizedForStreaming; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional hasThumbnail() { - return (Optional) hasThumbnail; + public Optional hasThumbnail() { + return (Optional) hasThumbnail; } /** @@ -294,8 +294,8 @@ public class GetAllMediaLibraryPart { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional> stream() { - return (Optional>) stream; + public Optional> stream() { + return (Optional>) stream; } public final static Builder builder() { @@ -305,7 +305,7 @@ public class GetAllMediaLibraryPart { /** * Indicates if the part is accessible. */ - public GetAllMediaLibraryPart withAccessible(boolean accessible) { + public GetLibrarySectionsAllPart withAccessible(boolean accessible) { Utils.checkNotNull(accessible, "accessible"); this.accessible = Optional.ofNullable(accessible); return this; @@ -314,7 +314,7 @@ public class GetAllMediaLibraryPart { /** * Indicates if the part is accessible. */ - public GetAllMediaLibraryPart withAccessible(Optional accessible) { + public GetLibrarySectionsAllPart withAccessible(Optional accessible) { Utils.checkNotNull(accessible, "accessible"); this.accessible = accessible; return this; @@ -323,7 +323,7 @@ public class GetAllMediaLibraryPart { /** * Indicates if the part exists. */ - public GetAllMediaLibraryPart withExists(boolean exists) { + public GetLibrarySectionsAllPart withExists(boolean exists) { Utils.checkNotNull(exists, "exists"); this.exists = Optional.ofNullable(exists); return this; @@ -332,7 +332,7 @@ public class GetAllMediaLibraryPart { /** * Indicates if the part exists. */ - public GetAllMediaLibraryPart withExists(Optional exists) { + public GetLibrarySectionsAllPart withExists(Optional exists) { Utils.checkNotNull(exists, "exists"); this.exists = exists; return this; @@ -341,7 +341,7 @@ public class GetAllMediaLibraryPart { /** * Unique part identifier. */ - public GetAllMediaLibraryPart withId(long id) { + public GetLibrarySectionsAllPart withId(long id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -350,19 +350,19 @@ public class GetAllMediaLibraryPart { /** * Key to access this part. */ - public GetAllMediaLibraryPart withKey(String key) { + public GetLibrarySectionsAllPart withKey(String key) { Utils.checkNotNull(key, "key"); this.key = key; return this; } - public GetAllMediaLibraryPart withIndexes(String indexes) { + public GetLibrarySectionsAllPart withIndexes(String indexes) { Utils.checkNotNull(indexes, "indexes"); this.indexes = Optional.ofNullable(indexes); return this; } - public GetAllMediaLibraryPart withIndexes(Optional indexes) { + public GetLibrarySectionsAllPart withIndexes(Optional indexes) { Utils.checkNotNull(indexes, "indexes"); this.indexes = indexes; return this; @@ -371,7 +371,7 @@ public class GetAllMediaLibraryPart { /** * Duration of the part in milliseconds. */ - public GetAllMediaLibraryPart withDuration(int duration) { + public GetLibrarySectionsAllPart withDuration(int duration) { Utils.checkNotNull(duration, "duration"); this.duration = Optional.ofNullable(duration); return this; @@ -380,7 +380,7 @@ public class GetAllMediaLibraryPart { /** * Duration of the part in milliseconds. */ - public GetAllMediaLibraryPart withDuration(Optional duration) { + public GetLibrarySectionsAllPart withDuration(Optional duration) { Utils.checkNotNull(duration, "duration"); this.duration = duration; return this; @@ -389,7 +389,7 @@ public class GetAllMediaLibraryPart { /** * File path for the part. */ - public GetAllMediaLibraryPart withFile(String file) { + public GetLibrarySectionsAllPart withFile(String file) { Utils.checkNotNull(file, "file"); this.file = file; return this; @@ -398,19 +398,19 @@ public class GetAllMediaLibraryPart { /** * File size in bytes. */ - public GetAllMediaLibraryPart withSize(long size) { + public GetLibrarySectionsAllPart withSize(long size) { Utils.checkNotNull(size, "size"); this.size = size; return this; } - public GetAllMediaLibraryPart withPacketLength(int packetLength) { + public GetLibrarySectionsAllPart withPacketLength(int packetLength) { Utils.checkNotNull(packetLength, "packetLength"); this.packetLength = Optional.ofNullable(packetLength); return this; } - public GetAllMediaLibraryPart withPacketLength(Optional packetLength) { + public GetLibrarySectionsAllPart withPacketLength(Optional packetLength) { Utils.checkNotNull(packetLength, "packetLength"); this.packetLength = packetLength; return this; @@ -419,7 +419,7 @@ public class GetAllMediaLibraryPart { /** * Container format of the part. */ - public GetAllMediaLibraryPart withContainer(String container) { + public GetLibrarySectionsAllPart withContainer(String container) { Utils.checkNotNull(container, "container"); this.container = Optional.ofNullable(container); return this; @@ -428,7 +428,7 @@ public class GetAllMediaLibraryPart { /** * Container format of the part. */ - public GetAllMediaLibraryPart withContainer(Optional container) { + public GetLibrarySectionsAllPart withContainer(Optional container) { Utils.checkNotNull(container, "container"); this.container = container; return this; @@ -437,7 +437,7 @@ public class GetAllMediaLibraryPart { /** * Video profile for the part. */ - public GetAllMediaLibraryPart withVideoProfile(String videoProfile) { + public GetLibrarySectionsAllPart withVideoProfile(String videoProfile) { Utils.checkNotNull(videoProfile, "videoProfile"); this.videoProfile = Optional.ofNullable(videoProfile); return this; @@ -446,7 +446,7 @@ public class GetAllMediaLibraryPart { /** * Video profile for the part. */ - public GetAllMediaLibraryPart withVideoProfile(Optional videoProfile) { + public GetLibrarySectionsAllPart withVideoProfile(Optional videoProfile) { Utils.checkNotNull(videoProfile, "videoProfile"); this.videoProfile = videoProfile; return this; @@ -455,7 +455,7 @@ public class GetAllMediaLibraryPart { /** * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). */ - public GetAllMediaLibraryPart withAudioProfile(String audioProfile) { + public GetLibrarySectionsAllPart withAudioProfile(String audioProfile) { Utils.checkNotNull(audioProfile, "audioProfile"); this.audioProfile = Optional.ofNullable(audioProfile); return this; @@ -464,19 +464,19 @@ public class GetAllMediaLibraryPart { /** * The audio profile used for the media (e.g., DTS, Dolby Digital, etc.). */ - public GetAllMediaLibraryPart withAudioProfile(Optional audioProfile) { + public GetLibrarySectionsAllPart withAudioProfile(Optional audioProfile) { Utils.checkNotNull(audioProfile, "audioProfile"); this.audioProfile = audioProfile; return this; } - public GetAllMediaLibraryPart withHas64bitOffsets(boolean has64bitOffsets) { + public GetLibrarySectionsAllPart withHas64bitOffsets(boolean has64bitOffsets) { Utils.checkNotNull(has64bitOffsets, "has64bitOffsets"); this.has64bitOffsets = Optional.ofNullable(has64bitOffsets); return this; } - public GetAllMediaLibraryPart withHas64bitOffsets(Optional has64bitOffsets) { + public GetLibrarySectionsAllPart withHas64bitOffsets(Optional has64bitOffsets) { Utils.checkNotNull(has64bitOffsets, "has64bitOffsets"); this.has64bitOffsets = has64bitOffsets; return this; @@ -485,7 +485,7 @@ public class GetAllMediaLibraryPart { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public GetAllMediaLibraryPart withOptimizedForStreaming(GetAllMediaLibraryLibraryOptimizedForStreaming optimizedForStreaming) { + public GetLibrarySectionsAllPart withOptimizedForStreaming(GetLibrarySectionsAllLibraryOptimizedForStreaming optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = Optional.ofNullable(optimizedForStreaming); return this; @@ -494,19 +494,19 @@ public class GetAllMediaLibraryPart { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public GetAllMediaLibraryPart withOptimizedForStreaming(Optional optimizedForStreaming) { + public GetLibrarySectionsAllPart withOptimizedForStreaming(Optional optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = optimizedForStreaming; return this; } - public GetAllMediaLibraryPart withHasThumbnail(GetAllMediaLibraryHasThumbnail hasThumbnail) { + public GetLibrarySectionsAllPart withHasThumbnail(GetLibrarySectionsAllHasThumbnail hasThumbnail) { Utils.checkNotNull(hasThumbnail, "hasThumbnail"); this.hasThumbnail = Optional.ofNullable(hasThumbnail); return this; } - public GetAllMediaLibraryPart withHasThumbnail(Optional hasThumbnail) { + public GetLibrarySectionsAllPart withHasThumbnail(Optional hasThumbnail) { Utils.checkNotNull(hasThumbnail, "hasThumbnail"); this.hasThumbnail = hasThumbnail; return this; @@ -515,7 +515,7 @@ public class GetAllMediaLibraryPart { /** * An array of streams for this part. */ - public GetAllMediaLibraryPart withStream(List stream) { + public GetLibrarySectionsAllPart withStream(List stream) { Utils.checkNotNull(stream, "stream"); this.stream = Optional.ofNullable(stream); return this; @@ -524,7 +524,7 @@ public class GetAllMediaLibraryPart { /** * An array of streams for this part. */ - public GetAllMediaLibraryPart withStream(Optional> stream) { + public GetLibrarySectionsAllPart withStream(Optional> stream) { Utils.checkNotNull(stream, "stream"); this.stream = stream; return this; @@ -539,7 +539,7 @@ public class GetAllMediaLibraryPart { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryPart other = (GetAllMediaLibraryPart) o; + GetLibrarySectionsAllPart other = (GetLibrarySectionsAllPart) o; return Objects.deepEquals(this.accessible, other.accessible) && Objects.deepEquals(this.exists, other.exists) && @@ -582,7 +582,7 @@ public class GetAllMediaLibraryPart { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryPart.class, + return Utils.toString(GetLibrarySectionsAllPart.class, "accessible", accessible, "exists", exists, "id", id, @@ -629,11 +629,11 @@ public class GetAllMediaLibraryPart { private Optional has64bitOffsets = Optional.empty(); - private Optional optimizedForStreaming = Optional.empty(); + private Optional optimizedForStreaming = Optional.empty(); - private Optional hasThumbnail; + private Optional hasThumbnail; - private Optional> stream = Optional.empty(); + private Optional> stream = Optional.empty(); private Builder() { // force use of static builder() method @@ -822,7 +822,7 @@ public class GetAllMediaLibraryPart { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public Builder optimizedForStreaming(GetAllMediaLibraryLibraryOptimizedForStreaming optimizedForStreaming) { + public Builder optimizedForStreaming(GetLibrarySectionsAllLibraryOptimizedForStreaming optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = Optional.ofNullable(optimizedForStreaming); return this; @@ -831,19 +831,19 @@ public class GetAllMediaLibraryPart { /** * Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true */ - public Builder optimizedForStreaming(Optional optimizedForStreaming) { + public Builder optimizedForStreaming(Optional optimizedForStreaming) { Utils.checkNotNull(optimizedForStreaming, "optimizedForStreaming"); this.optimizedForStreaming = optimizedForStreaming; return this; } - public Builder hasThumbnail(GetAllMediaLibraryHasThumbnail hasThumbnail) { + public Builder hasThumbnail(GetLibrarySectionsAllHasThumbnail hasThumbnail) { Utils.checkNotNull(hasThumbnail, "hasThumbnail"); this.hasThumbnail = Optional.ofNullable(hasThumbnail); return this; } - public Builder hasThumbnail(Optional hasThumbnail) { + public Builder hasThumbnail(Optional hasThumbnail) { Utils.checkNotNull(hasThumbnail, "hasThumbnail"); this.hasThumbnail = hasThumbnail; return this; @@ -852,7 +852,7 @@ public class GetAllMediaLibraryPart { /** * An array of streams for this part. */ - public Builder stream(List stream) { + public Builder stream(List stream) { Utils.checkNotNull(stream, "stream"); this.stream = Optional.ofNullable(stream); return this; @@ -861,17 +861,17 @@ public class GetAllMediaLibraryPart { /** * An array of streams for this part. */ - public Builder stream(Optional> stream) { + public Builder stream(Optional> stream) { Utils.checkNotNull(stream, "stream"); this.stream = stream; return this; } - public GetAllMediaLibraryPart build() { + public GetLibrarySectionsAllPart build() { if (hasThumbnail == null) { hasThumbnail = _SINGLETON_VALUE_HasThumbnail.value(); } - return new GetAllMediaLibraryPart( + return new GetLibrarySectionsAllPart( accessible, exists, id, @@ -890,10 +890,10 @@ public class GetAllMediaLibraryPart { stream); } - private static final LazySingletonValue> _SINGLETON_VALUE_HasThumbnail = + private static final LazySingletonValue> _SINGLETON_VALUE_HasThumbnail = new LazySingletonValue<>( "hasThumbnail", "\"0\"", - new TypeReference>() {}); + new TypeReference>() {}); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.java similarity index 61% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.java index 68ee0b8a..cb02843a 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamIncludeMeta.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamIncludeMeta.java @@ -8,18 +8,18 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryQueryParamIncludeMeta + * GetLibrarySectionsAllQueryParamIncludeMeta * *

Adds the Meta object to the response */ -public enum GetAllMediaLibraryQueryParamIncludeMeta { +public enum GetLibrarySectionsAllQueryParamIncludeMeta { Disable(0), Enable(1); @JsonValue private final int value; - private GetAllMediaLibraryQueryParamIncludeMeta(int value) { + private GetLibrarySectionsAllQueryParamIncludeMeta(int value) { this.value = value; } @@ -27,8 +27,8 @@ public enum GetAllMediaLibraryQueryParamIncludeMeta { return value; } - public static Optional fromValue(int value) { - for (GetAllMediaLibraryQueryParamIncludeMeta o: GetAllMediaLibraryQueryParamIncludeMeta.values()) { + public static Optional fromValue(int value) { + for (GetLibrarySectionsAllQueryParamIncludeMeta o: GetLibrarySectionsAllQueryParamIncludeMeta.values()) { if (Objects.deepEquals(o.value, value)) { return Optional.of(o); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamType.java similarity index 51% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamType.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamType.java index 8f19ecc7..d67e9ca8 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllQueryParamType.java @@ -43,7 +43,7 @@ import java.util.Optional; * */ /** - * GetAllMediaLibraryQueryParamType + * GetLibrarySectionsAllQueryParamType * *

The type of media to retrieve or filter by. * 1 = movie @@ -52,42 +52,44 @@ import java.util.Optional; * 4 = episode * E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries */ -@JsonDeserialize(using = GetAllMediaLibraryQueryParamType._Deserializer.class) -@JsonSerialize(using = GetAllMediaLibraryQueryParamType._Serializer.class) -public class GetAllMediaLibraryQueryParamType { +@JsonDeserialize(using = GetLibrarySectionsAllQueryParamType._Deserializer.class) +@JsonSerialize(using = GetLibrarySectionsAllQueryParamType._Serializer.class) +public class GetLibrarySectionsAllQueryParamType { - public static final GetAllMediaLibraryQueryParamType Movie = new GetAllMediaLibraryQueryParamType(1L); - public static final GetAllMediaLibraryQueryParamType TvShow = new GetAllMediaLibraryQueryParamType(2L); - public static final GetAllMediaLibraryQueryParamType Season = new GetAllMediaLibraryQueryParamType(3L); - public static final GetAllMediaLibraryQueryParamType Episode = new GetAllMediaLibraryQueryParamType(4L); - public static final GetAllMediaLibraryQueryParamType Audio = new GetAllMediaLibraryQueryParamType(8L); - public static final GetAllMediaLibraryQueryParamType Album = new GetAllMediaLibraryQueryParamType(9L); - public static final GetAllMediaLibraryQueryParamType Track = new GetAllMediaLibraryQueryParamType(10L); + public static final GetLibrarySectionsAllQueryParamType Movie = new GetLibrarySectionsAllQueryParamType(1L); + public static final GetLibrarySectionsAllQueryParamType TvShow = new GetLibrarySectionsAllQueryParamType(2L); + public static final GetLibrarySectionsAllQueryParamType Season = new GetLibrarySectionsAllQueryParamType(3L); + public static final GetLibrarySectionsAllQueryParamType Episode = new GetLibrarySectionsAllQueryParamType(4L); + public static final GetLibrarySectionsAllQueryParamType Artist = new GetLibrarySectionsAllQueryParamType(5L); + public static final GetLibrarySectionsAllQueryParamType Album = new GetLibrarySectionsAllQueryParamType(6L); + public static final GetLibrarySectionsAllQueryParamType Track = new GetLibrarySectionsAllQueryParamType(7L); + public static final GetLibrarySectionsAllQueryParamType PhotoAlbum = new GetLibrarySectionsAllQueryParamType(8L); + public static final GetLibrarySectionsAllQueryParamType Photo = new GetLibrarySectionsAllQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not // careful). Keep this field lower case to avoid clashing with // generated member names which will always be upper cased (Java // convention) - private static final Map values = createValuesMap(); - private static final Map enums = createEnumsMap(); + private static final Map values = createValuesMap(); + private static final Map enums = createEnumsMap(); private final long value; - private GetAllMediaLibraryQueryParamType(long value) { + private GetLibrarySectionsAllQueryParamType(long value) { this.value = value; } /** - * Returns a GetAllMediaLibraryQueryParamType with the given value. For a specific value the + * Returns a GetLibrarySectionsAllQueryParamType with the given value. For a specific value the * returned object will always be a singleton so reference equality * is satisfied when the values are the same. * - * @param value value to be wrapped as GetAllMediaLibraryQueryParamType + * @param value value to be wrapped as GetLibrarySectionsAllQueryParamType */ - public static GetAllMediaLibraryQueryParamType of(long value) { - synchronized (GetAllMediaLibraryQueryParamType.class) { - return values.computeIfAbsent(value, v -> new GetAllMediaLibraryQueryParamType(v)); + public static GetLibrarySectionsAllQueryParamType of(long value) { + synchronized (GetLibrarySectionsAllQueryParamType.class) { + return values.computeIfAbsent(value, v -> new GetLibrarySectionsAllQueryParamType(v)); } } @@ -95,7 +97,7 @@ public class GetAllMediaLibraryQueryParamType { return value; } - public Optional asEnum() { + public Optional asEnum() { return Optional.ofNullable(enums.getOrDefault(value, null)); } @@ -116,89 +118,95 @@ public class GetAllMediaLibraryQueryParamType { return false; if (getClass() != obj.getClass()) return false; - GetAllMediaLibraryQueryParamType other = (GetAllMediaLibraryQueryParamType) obj; + GetLibrarySectionsAllQueryParamType other = (GetLibrarySectionsAllQueryParamType) obj; return Objects.equals(value, other.value); } @Override public String toString() { - return "GetAllMediaLibraryQueryParamType [value=" + value + "]"; + return "GetLibrarySectionsAllQueryParamType [value=" + value + "]"; } // return an array just like an enum - public static GetAllMediaLibraryQueryParamType[] values() { - synchronized (GetAllMediaLibraryQueryParamType.class) { - return values.values().toArray(new GetAllMediaLibraryQueryParamType[] {}); + public static GetLibrarySectionsAllQueryParamType[] values() { + synchronized (GetLibrarySectionsAllQueryParamType.class) { + return values.values().toArray(new GetLibrarySectionsAllQueryParamType[] {}); } } - private static final Map createValuesMap() { - Map map = new LinkedHashMap<>(); + private static final Map createValuesMap() { + Map map = new LinkedHashMap<>(); map.put(1L, Movie); map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } - private static final Map createEnumsMap() { - Map map = new HashMap<>(); - map.put(1L, GetAllMediaLibraryQueryParamTypeEnum.Movie); - map.put(2L, GetAllMediaLibraryQueryParamTypeEnum.TvShow); - map.put(3L, GetAllMediaLibraryQueryParamTypeEnum.Season); - map.put(4L, GetAllMediaLibraryQueryParamTypeEnum.Episode); - map.put(8L, GetAllMediaLibraryQueryParamTypeEnum.Audio); - map.put(9L, GetAllMediaLibraryQueryParamTypeEnum.Album); - map.put(10L, GetAllMediaLibraryQueryParamTypeEnum.Track); + private static final Map createEnumsMap() { + Map map = new HashMap<>(); + map.put(1L, GetLibrarySectionsAllQueryParamTypeEnum.Movie); + map.put(2L, GetLibrarySectionsAllQueryParamTypeEnum.TvShow); + map.put(3L, GetLibrarySectionsAllQueryParamTypeEnum.Season); + map.put(4L, GetLibrarySectionsAllQueryParamTypeEnum.Episode); + map.put(5L, GetLibrarySectionsAllQueryParamTypeEnum.Artist); + map.put(6L, GetLibrarySectionsAllQueryParamTypeEnum.Album); + map.put(7L, GetLibrarySectionsAllQueryParamTypeEnum.Track); + map.put(8L, GetLibrarySectionsAllQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetLibrarySectionsAllQueryParamTypeEnum.Photo); return map; } @SuppressWarnings("serial") - public static final class _Serializer extends StdSerializer { + public static final class _Serializer extends StdSerializer { protected _Serializer() { - super(GetAllMediaLibraryQueryParamType.class); + super(GetLibrarySectionsAllQueryParamType.class); } @Override - public void serialize(GetAllMediaLibraryQueryParamType value, JsonGenerator g, SerializerProvider provider) + public void serialize(GetLibrarySectionsAllQueryParamType value, JsonGenerator g, SerializerProvider provider) throws IOException, JsonProcessingException { g.writeObject(value.value); } } @SuppressWarnings("serial") - public static final class _Deserializer extends StdDeserializer { + public static final class _Deserializer extends StdDeserializer { protected _Deserializer() { - super(GetAllMediaLibraryQueryParamType.class); + super(GetLibrarySectionsAllQueryParamType.class); } @Override - public GetAllMediaLibraryQueryParamType deserialize(JsonParser p, DeserializationContext ctxt) + public GetLibrarySectionsAllQueryParamType deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException { long v = p.readValueAs(new TypeReference() {}); // use the factory method to ensure we get singletons - return GetAllMediaLibraryQueryParamType.of(v); + return GetLibrarySectionsAllQueryParamType.of(v); } } - public enum GetAllMediaLibraryQueryParamTypeEnum { + public enum GetLibrarySectionsAllQueryParamTypeEnum { Movie(1L), TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; - private GetAllMediaLibraryQueryParamTypeEnum(long value) { + private GetLibrarySectionsAllQueryParamTypeEnum(long value) { this.value = value; } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequest.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequest.java similarity index 87% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequest.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequest.java index cf085ed3..8f5553e4 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRequest.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequest.java @@ -16,7 +16,7 @@ import java.lang.SuppressWarnings; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryRequest { +public class GetLibrarySectionsAllRequest { /** * The unique key of the Plex library. @@ -34,13 +34,13 @@ public class GetAllMediaLibraryRequest { * E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries */ @SpeakeasyMetadata("queryParam:style=form,explode=true,name=type") - private GetAllMediaLibraryQueryParamType type; + private GetLibrarySectionsAllQueryParamType type; /** * Adds the Meta object to the response */ @SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeMeta") - private Optional includeMeta; + private Optional includeMeta; /** * Adds the Guid object to the response @@ -74,10 +74,10 @@ public class GetAllMediaLibraryRequest { private Optional xPlexContainerSize; @JsonCreator - public GetAllMediaLibraryRequest( + public GetLibrarySectionsAllRequest( int sectionKey, - GetAllMediaLibraryQueryParamType type, - Optional includeMeta, + GetLibrarySectionsAllQueryParamType type, + Optional includeMeta, Optional includeGuids, Optional includeAdvanced, Optional includeCollections, @@ -104,9 +104,9 @@ public class GetAllMediaLibraryRequest { this.xPlexContainerSize = xPlexContainerSize; } - public GetAllMediaLibraryRequest( + public GetLibrarySectionsAllRequest( int sectionKey, - GetAllMediaLibraryQueryParamType type) { + GetLibrarySectionsAllQueryParamType type) { this(sectionKey, type, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); } @@ -128,7 +128,7 @@ public class GetAllMediaLibraryRequest { * E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries */ @JsonIgnore - public GetAllMediaLibraryQueryParamType type() { + public GetLibrarySectionsAllQueryParamType type() { return type; } @@ -137,8 +137,8 @@ public class GetAllMediaLibraryRequest { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional includeMeta() { - return (Optional) includeMeta; + public Optional includeMeta() { + return (Optional) includeMeta; } /** @@ -196,7 +196,7 @@ public class GetAllMediaLibraryRequest { * The unique key of the Plex library. * Note: This is unique in the context of the Plex server. */ - public GetAllMediaLibraryRequest withSectionKey(int sectionKey) { + public GetLibrarySectionsAllRequest withSectionKey(int sectionKey) { Utils.checkNotNull(sectionKey, "sectionKey"); this.sectionKey = sectionKey; return this; @@ -210,7 +210,7 @@ public class GetAllMediaLibraryRequest { * 4 = episode * E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries */ - public GetAllMediaLibraryRequest withType(GetAllMediaLibraryQueryParamType type) { + public GetLibrarySectionsAllRequest withType(GetLibrarySectionsAllQueryParamType type) { Utils.checkNotNull(type, "type"); this.type = type; return this; @@ -219,7 +219,7 @@ public class GetAllMediaLibraryRequest { /** * Adds the Meta object to the response */ - public GetAllMediaLibraryRequest withIncludeMeta(GetAllMediaLibraryQueryParamIncludeMeta includeMeta) { + public GetLibrarySectionsAllRequest withIncludeMeta(GetLibrarySectionsAllQueryParamIncludeMeta includeMeta) { Utils.checkNotNull(includeMeta, "includeMeta"); this.includeMeta = Optional.ofNullable(includeMeta); return this; @@ -228,7 +228,7 @@ public class GetAllMediaLibraryRequest { /** * Adds the Meta object to the response */ - public GetAllMediaLibraryRequest withIncludeMeta(Optional includeMeta) { + public GetLibrarySectionsAllRequest withIncludeMeta(Optional includeMeta) { Utils.checkNotNull(includeMeta, "includeMeta"); this.includeMeta = includeMeta; return this; @@ -237,7 +237,7 @@ public class GetAllMediaLibraryRequest { /** * Adds the Guid object to the response */ - public GetAllMediaLibraryRequest withIncludeGuids(QueryParamIncludeGuids includeGuids) { + public GetLibrarySectionsAllRequest withIncludeGuids(QueryParamIncludeGuids includeGuids) { Utils.checkNotNull(includeGuids, "includeGuids"); this.includeGuids = Optional.ofNullable(includeGuids); return this; @@ -246,43 +246,43 @@ public class GetAllMediaLibraryRequest { /** * Adds the Guid object to the response */ - public GetAllMediaLibraryRequest withIncludeGuids(Optional includeGuids) { + public GetLibrarySectionsAllRequest withIncludeGuids(Optional includeGuids) { Utils.checkNotNull(includeGuids, "includeGuids"); this.includeGuids = includeGuids; return this; } - public GetAllMediaLibraryRequest withIncludeAdvanced(IncludeAdvanced includeAdvanced) { + public GetLibrarySectionsAllRequest withIncludeAdvanced(IncludeAdvanced includeAdvanced) { Utils.checkNotNull(includeAdvanced, "includeAdvanced"); this.includeAdvanced = Optional.ofNullable(includeAdvanced); return this; } - public GetAllMediaLibraryRequest withIncludeAdvanced(Optional includeAdvanced) { + public GetLibrarySectionsAllRequest withIncludeAdvanced(Optional includeAdvanced) { Utils.checkNotNull(includeAdvanced, "includeAdvanced"); this.includeAdvanced = includeAdvanced; return this; } - public GetAllMediaLibraryRequest withIncludeCollections(QueryParamIncludeCollections includeCollections) { + public GetLibrarySectionsAllRequest withIncludeCollections(QueryParamIncludeCollections includeCollections) { Utils.checkNotNull(includeCollections, "includeCollections"); this.includeCollections = Optional.ofNullable(includeCollections); return this; } - public GetAllMediaLibraryRequest withIncludeCollections(Optional includeCollections) { + public GetLibrarySectionsAllRequest withIncludeCollections(Optional includeCollections) { Utils.checkNotNull(includeCollections, "includeCollections"); this.includeCollections = includeCollections; return this; } - public GetAllMediaLibraryRequest withIncludeExternalMedia(QueryParamIncludeExternalMedia includeExternalMedia) { + public GetLibrarySectionsAllRequest withIncludeExternalMedia(QueryParamIncludeExternalMedia includeExternalMedia) { Utils.checkNotNull(includeExternalMedia, "includeExternalMedia"); this.includeExternalMedia = Optional.ofNullable(includeExternalMedia); return this; } - public GetAllMediaLibraryRequest withIncludeExternalMedia(Optional includeExternalMedia) { + public GetLibrarySectionsAllRequest withIncludeExternalMedia(Optional includeExternalMedia) { Utils.checkNotNull(includeExternalMedia, "includeExternalMedia"); this.includeExternalMedia = includeExternalMedia; return this; @@ -293,7 +293,7 @@ public class GetAllMediaLibraryRequest { * If the number of items exceeds the limit, the response will be paginated. * By default this is 0 */ - public GetAllMediaLibraryRequest withXPlexContainerStart(int xPlexContainerStart) { + public GetLibrarySectionsAllRequest withXPlexContainerStart(int xPlexContainerStart) { Utils.checkNotNull(xPlexContainerStart, "xPlexContainerStart"); this.xPlexContainerStart = Optional.ofNullable(xPlexContainerStart); return this; @@ -304,7 +304,7 @@ public class GetAllMediaLibraryRequest { * If the number of items exceeds the limit, the response will be paginated. * By default this is 0 */ - public GetAllMediaLibraryRequest withXPlexContainerStart(Optional xPlexContainerStart) { + public GetLibrarySectionsAllRequest withXPlexContainerStart(Optional xPlexContainerStart) { Utils.checkNotNull(xPlexContainerStart, "xPlexContainerStart"); this.xPlexContainerStart = xPlexContainerStart; return this; @@ -315,7 +315,7 @@ public class GetAllMediaLibraryRequest { * If the number of items exceeds the limit, the response will be paginated. * By default this is 50 */ - public GetAllMediaLibraryRequest withXPlexContainerSize(int xPlexContainerSize) { + public GetLibrarySectionsAllRequest withXPlexContainerSize(int xPlexContainerSize) { Utils.checkNotNull(xPlexContainerSize, "xPlexContainerSize"); this.xPlexContainerSize = Optional.ofNullable(xPlexContainerSize); return this; @@ -326,7 +326,7 @@ public class GetAllMediaLibraryRequest { * If the number of items exceeds the limit, the response will be paginated. * By default this is 50 */ - public GetAllMediaLibraryRequest withXPlexContainerSize(Optional xPlexContainerSize) { + public GetLibrarySectionsAllRequest withXPlexContainerSize(Optional xPlexContainerSize) { Utils.checkNotNull(xPlexContainerSize, "xPlexContainerSize"); this.xPlexContainerSize = xPlexContainerSize; return this; @@ -341,7 +341,7 @@ public class GetAllMediaLibraryRequest { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryRequest other = (GetAllMediaLibraryRequest) o; + GetLibrarySectionsAllRequest other = (GetLibrarySectionsAllRequest) o; return Objects.deepEquals(this.sectionKey, other.sectionKey) && Objects.deepEquals(this.type, other.type) && @@ -370,7 +370,7 @@ public class GetAllMediaLibraryRequest { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryRequest.class, + return Utils.toString(GetLibrarySectionsAllRequest.class, "sectionKey", sectionKey, "type", type, "includeMeta", includeMeta, @@ -386,9 +386,9 @@ public class GetAllMediaLibraryRequest { private Integer sectionKey; - private GetAllMediaLibraryQueryParamType type; + private GetLibrarySectionsAllQueryParamType type; - private Optional includeMeta; + private Optional includeMeta; private Optional includeGuids; @@ -424,7 +424,7 @@ public class GetAllMediaLibraryRequest { * 4 = episode * E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries */ - public Builder type(GetAllMediaLibraryQueryParamType type) { + public Builder type(GetLibrarySectionsAllQueryParamType type) { Utils.checkNotNull(type, "type"); this.type = type; return this; @@ -433,7 +433,7 @@ public class GetAllMediaLibraryRequest { /** * Adds the Meta object to the response */ - public Builder includeMeta(GetAllMediaLibraryQueryParamIncludeMeta includeMeta) { + public Builder includeMeta(GetLibrarySectionsAllQueryParamIncludeMeta includeMeta) { Utils.checkNotNull(includeMeta, "includeMeta"); this.includeMeta = Optional.ofNullable(includeMeta); return this; @@ -442,7 +442,7 @@ public class GetAllMediaLibraryRequest { /** * Adds the Meta object to the response */ - public Builder includeMeta(Optional includeMeta) { + public Builder includeMeta(Optional includeMeta) { Utils.checkNotNull(includeMeta, "includeMeta"); this.includeMeta = includeMeta; return this; @@ -546,7 +546,7 @@ public class GetAllMediaLibraryRequest { return this; } - public GetAllMediaLibraryRequest build() { + public GetLibrarySectionsAllRequest build() { if (includeMeta == null) { includeMeta = _SINGLETON_VALUE_IncludeMeta.value(); } @@ -568,7 +568,7 @@ public class GetAllMediaLibraryRequest { if (xPlexContainerSize == null) { xPlexContainerSize = _SINGLETON_VALUE_XPlexContainerSize.value(); } - return new GetAllMediaLibraryRequest( + return new GetLibrarySectionsAllRequest( sectionKey, type, includeMeta, @@ -580,11 +580,11 @@ public class GetAllMediaLibraryRequest { xPlexContainerSize); } - private static final LazySingletonValue> _SINGLETON_VALUE_IncludeMeta = + private static final LazySingletonValue> _SINGLETON_VALUE_IncludeMeta = new LazySingletonValue<>( "includeMeta", "0", - new TypeReference>() {}); + new TypeReference>() {}); private static final LazySingletonValue> _SINGLETON_VALUE_IncludeGuids = new LazySingletonValue<>( diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequestBuilder.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequestBuilder.java new file mode 100644 index 00000000..62033ad8 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRequestBuilder.java @@ -0,0 +1,29 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package dev.plexapi.sdk.models.operations; + +import dev.plexapi.sdk.utils.Utils; +import java.lang.Exception; + +public class GetLibrarySectionsAllRequestBuilder { + + private GetLibrarySectionsAllRequest request; + private final SDKMethodInterfaces.MethodCallGetLibrarySectionsAll sdk; + + public GetLibrarySectionsAllRequestBuilder(SDKMethodInterfaces.MethodCallGetLibrarySectionsAll sdk) { + this.sdk = sdk; + } + + public GetLibrarySectionsAllRequestBuilder request(GetLibrarySectionsAllRequest request) { + Utils.checkNotNull(request, "request"); + this.request = request; + return this; + } + + public GetLibrarySectionsAllResponse call() throws Exception { + + return sdk.getLibrarySectionsAll( + request); + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponse.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponse.java similarity index 80% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponse.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponse.java index 9587b7b2..8b1c47e4 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponse.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponse.java @@ -16,7 +16,7 @@ import java.net.http.HttpResponse; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryResponse implements Response { +public class GetLibrarySectionsAllResponse implements Response { /** * HTTP response content type for this operation @@ -36,14 +36,14 @@ public class GetAllMediaLibraryResponse implements Response { /** * Successful response containing media container data. */ - private Optional object; + private Optional object; @JsonCreator - public GetAllMediaLibraryResponse( + public GetLibrarySectionsAllResponse( String contentType, int statusCode, HttpResponse rawResponse, - Optional object) { + Optional object) { Utils.checkNotNull(contentType, "contentType"); Utils.checkNotNull(statusCode, "statusCode"); Utils.checkNotNull(rawResponse, "rawResponse"); @@ -54,7 +54,7 @@ public class GetAllMediaLibraryResponse implements Response { this.object = object; } - public GetAllMediaLibraryResponse( + public GetLibrarySectionsAllResponse( String contentType, int statusCode, HttpResponse rawResponse) { @@ -90,8 +90,8 @@ public class GetAllMediaLibraryResponse implements Response { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional object() { - return (Optional) object; + public Optional object() { + return (Optional) object; } public final static Builder builder() { @@ -101,7 +101,7 @@ public class GetAllMediaLibraryResponse implements Response { /** * HTTP response content type for this operation */ - public GetAllMediaLibraryResponse withContentType(String contentType) { + public GetLibrarySectionsAllResponse withContentType(String contentType) { Utils.checkNotNull(contentType, "contentType"); this.contentType = contentType; return this; @@ -110,7 +110,7 @@ public class GetAllMediaLibraryResponse implements Response { /** * HTTP response status code for this operation */ - public GetAllMediaLibraryResponse withStatusCode(int statusCode) { + public GetLibrarySectionsAllResponse withStatusCode(int statusCode) { Utils.checkNotNull(statusCode, "statusCode"); this.statusCode = statusCode; return this; @@ -119,7 +119,7 @@ public class GetAllMediaLibraryResponse implements Response { /** * Raw HTTP response; suitable for custom response parsing */ - public GetAllMediaLibraryResponse withRawResponse(HttpResponse rawResponse) { + public GetLibrarySectionsAllResponse withRawResponse(HttpResponse rawResponse) { Utils.checkNotNull(rawResponse, "rawResponse"); this.rawResponse = rawResponse; return this; @@ -128,7 +128,7 @@ public class GetAllMediaLibraryResponse implements Response { /** * Successful response containing media container data. */ - public GetAllMediaLibraryResponse withObject(GetAllMediaLibraryResponseBody object) { + public GetLibrarySectionsAllResponse withObject(GetLibrarySectionsAllResponseBody object) { Utils.checkNotNull(object, "object"); this.object = Optional.ofNullable(object); return this; @@ -137,7 +137,7 @@ public class GetAllMediaLibraryResponse implements Response { /** * Successful response containing media container data. */ - public GetAllMediaLibraryResponse withObject(Optional object) { + public GetLibrarySectionsAllResponse withObject(Optional object) { Utils.checkNotNull(object, "object"); this.object = object; return this; @@ -152,7 +152,7 @@ public class GetAllMediaLibraryResponse implements Response { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryResponse other = (GetAllMediaLibraryResponse) o; + GetLibrarySectionsAllResponse other = (GetLibrarySectionsAllResponse) o; return Objects.deepEquals(this.contentType, other.contentType) && Objects.deepEquals(this.statusCode, other.statusCode) && @@ -171,7 +171,7 @@ public class GetAllMediaLibraryResponse implements Response { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryResponse.class, + return Utils.toString(GetLibrarySectionsAllResponse.class, "contentType", contentType, "statusCode", statusCode, "rawResponse", rawResponse, @@ -186,7 +186,7 @@ public class GetAllMediaLibraryResponse implements Response { private HttpResponse rawResponse; - private Optional object = Optional.empty(); + private Optional object = Optional.empty(); private Builder() { // force use of static builder() method @@ -222,7 +222,7 @@ public class GetAllMediaLibraryResponse implements Response { /** * Successful response containing media container data. */ - public Builder object(GetAllMediaLibraryResponseBody object) { + public Builder object(GetLibrarySectionsAllResponseBody object) { Utils.checkNotNull(object, "object"); this.object = Optional.ofNullable(object); return this; @@ -231,14 +231,14 @@ public class GetAllMediaLibraryResponse implements Response { /** * Successful response containing media container data. */ - public Builder object(Optional object) { + public Builder object(Optional object) { Utils.checkNotNull(object, "object"); this.object = object; return this; } - public GetAllMediaLibraryResponse build() { - return new GetAllMediaLibraryResponse( + public GetLibrarySectionsAllResponse build() { + return new GetLibrarySectionsAllResponse( contentType, statusCode, rawResponse, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponseBody.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponseBody.java similarity index 65% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponseBody.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponseBody.java index 4dd059a4..b2cd3626 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryResponseBody.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllResponseBody.java @@ -16,44 +16,44 @@ import java.util.Objects; import java.util.Optional; /** - * GetAllMediaLibraryResponseBody + * GetLibrarySectionsAllResponseBody * *

Successful response containing media container data. */ -public class GetAllMediaLibraryResponseBody { +public class GetLibrarySectionsAllResponseBody { @JsonInclude(Include.NON_ABSENT) @JsonProperty("MediaContainer") - private Optional mediaContainer; + private Optional mediaContainer; @JsonCreator - public GetAllMediaLibraryResponseBody( - @JsonProperty("MediaContainer") Optional mediaContainer) { + public GetLibrarySectionsAllResponseBody( + @JsonProperty("MediaContainer") Optional mediaContainer) { Utils.checkNotNull(mediaContainer, "mediaContainer"); this.mediaContainer = mediaContainer; } - public GetAllMediaLibraryResponseBody() { + public GetLibrarySectionsAllResponseBody() { this(Optional.empty()); } @SuppressWarnings("unchecked") @JsonIgnore - public Optional mediaContainer() { - return (Optional) mediaContainer; + public Optional mediaContainer() { + return (Optional) mediaContainer; } public final static Builder builder() { return new Builder(); } - public GetAllMediaLibraryResponseBody withMediaContainer(GetAllMediaLibraryMediaContainer mediaContainer) { + public GetLibrarySectionsAllResponseBody withMediaContainer(GetLibrarySectionsAllMediaContainer mediaContainer) { Utils.checkNotNull(mediaContainer, "mediaContainer"); this.mediaContainer = Optional.ofNullable(mediaContainer); return this; } - public GetAllMediaLibraryResponseBody withMediaContainer(Optional mediaContainer) { + public GetLibrarySectionsAllResponseBody withMediaContainer(Optional mediaContainer) { Utils.checkNotNull(mediaContainer, "mediaContainer"); this.mediaContainer = mediaContainer; return this; @@ -68,7 +68,7 @@ public class GetAllMediaLibraryResponseBody { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryResponseBody other = (GetAllMediaLibraryResponseBody) o; + GetLibrarySectionsAllResponseBody other = (GetLibrarySectionsAllResponseBody) o; return Objects.deepEquals(this.mediaContainer, other.mediaContainer); } @@ -81,32 +81,32 @@ public class GetAllMediaLibraryResponseBody { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryResponseBody.class, + return Utils.toString(GetLibrarySectionsAllResponseBody.class, "mediaContainer", mediaContainer); } public final static class Builder { - private Optional mediaContainer = Optional.empty(); + private Optional mediaContainer = Optional.empty(); private Builder() { // force use of static builder() method } - public Builder mediaContainer(GetAllMediaLibraryMediaContainer mediaContainer) { + public Builder mediaContainer(GetLibrarySectionsAllMediaContainer mediaContainer) { Utils.checkNotNull(mediaContainer, "mediaContainer"); this.mediaContainer = Optional.ofNullable(mediaContainer); return this; } - public Builder mediaContainer(Optional mediaContainer) { + public Builder mediaContainer(Optional mediaContainer) { Utils.checkNotNull(mediaContainer, "mediaContainer"); this.mediaContainer = mediaContainer; return this; } - public GetAllMediaLibraryResponseBody build() { - return new GetAllMediaLibraryResponseBody( + public GetLibrarySectionsAllResponseBody build() { + return new GetLibrarySectionsAllResponseBody( mediaContainer); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRole.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRole.java similarity index 84% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRole.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRole.java index 1a2c22c5..55bfb231 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryRole.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllRole.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryRole { +public class GetLibrarySectionsAllRole { /** * The display tag for the actor (typically the actor's name). @@ -20,7 +20,7 @@ public class GetAllMediaLibraryRole { private String tag; @JsonCreator - public GetAllMediaLibraryRole( + public GetLibrarySectionsAllRole( @JsonProperty("tag") String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; @@ -41,7 +41,7 @@ public class GetAllMediaLibraryRole { /** * The display tag for the actor (typically the actor's name). */ - public GetAllMediaLibraryRole withTag(String tag) { + public GetLibrarySectionsAllRole withTag(String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; return this; @@ -56,7 +56,7 @@ public class GetAllMediaLibraryRole { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryRole other = (GetAllMediaLibraryRole) o; + GetLibrarySectionsAllRole other = (GetLibrarySectionsAllRole) o; return Objects.deepEquals(this.tag, other.tag); } @@ -69,7 +69,7 @@ public class GetAllMediaLibraryRole { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryRole.class, + return Utils.toString(GetLibrarySectionsAllRole.class, "tag", tag); } @@ -90,8 +90,8 @@ public class GetAllMediaLibraryRole { return this; } - public GetAllMediaLibraryRole build() { - return new GetAllMediaLibraryRole( + public GetLibrarySectionsAllRole build() { + return new GetLibrarySectionsAllRole( tag); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibrarySort.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllSort.java similarity index 79% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibrarySort.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllSort.java index 6d87011a..61a52581 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibrarySort.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllSort.java @@ -18,7 +18,7 @@ import java.lang.SuppressWarnings; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibrarySort { +public class GetLibrarySectionsAllSort { @JsonInclude(Include.NON_ABSENT) @JsonProperty("default") @@ -33,14 +33,14 @@ public class GetAllMediaLibrarySort { */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("activeDirection") - private Optional activeDirection; + private Optional activeDirection; /** * The direction of the sort. Can be either `asc` or `desc`. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("defaultDirection") - private Optional defaultDirection; + private Optional defaultDirection; @JsonInclude(Include.NON_ABSENT) @JsonProperty("descKey") @@ -57,11 +57,11 @@ public class GetAllMediaLibrarySort { private String title; @JsonCreator - public GetAllMediaLibrarySort( + public GetLibrarySectionsAllSort( @JsonProperty("default") Optional default_, @JsonProperty("active") Optional active, - @JsonProperty("activeDirection") Optional activeDirection, - @JsonProperty("defaultDirection") Optional defaultDirection, + @JsonProperty("activeDirection") Optional activeDirection, + @JsonProperty("defaultDirection") Optional defaultDirection, @JsonProperty("descKey") Optional descKey, @JsonProperty("firstCharacterKey") Optional firstCharacterKey, @JsonProperty("key") String key, @@ -84,7 +84,7 @@ public class GetAllMediaLibrarySort { this.title = title; } - public GetAllMediaLibrarySort( + public GetLibrarySectionsAllSort( String key, String title) { this(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), key, title); @@ -105,8 +105,8 @@ public class GetAllMediaLibrarySort { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional activeDirection() { - return (Optional) activeDirection; + public Optional activeDirection() { + return (Optional) activeDirection; } /** @@ -114,8 +114,8 @@ public class GetAllMediaLibrarySort { */ @SuppressWarnings("unchecked") @JsonIgnore - public Optional defaultDirection() { - return (Optional) defaultDirection; + public Optional defaultDirection() { + return (Optional) defaultDirection; } @JsonIgnore @@ -142,25 +142,25 @@ public class GetAllMediaLibrarySort { return new Builder(); } - public GetAllMediaLibrarySort withDefault(String default_) { + public GetLibrarySectionsAllSort withDefault(String default_) { Utils.checkNotNull(default_, "default_"); this.default_ = Optional.ofNullable(default_); return this; } - public GetAllMediaLibrarySort withDefault(Optional default_) { + public GetLibrarySectionsAllSort withDefault(Optional default_) { Utils.checkNotNull(default_, "default_"); this.default_ = default_; return this; } - public GetAllMediaLibrarySort withActive(boolean active) { + public GetLibrarySectionsAllSort withActive(boolean active) { Utils.checkNotNull(active, "active"); this.active = Optional.ofNullable(active); return this; } - public GetAllMediaLibrarySort withActive(Optional active) { + public GetLibrarySectionsAllSort withActive(Optional active) { Utils.checkNotNull(active, "active"); this.active = active; return this; @@ -169,7 +169,7 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public GetAllMediaLibrarySort withActiveDirection(GetAllMediaLibraryActiveDirection activeDirection) { + public GetLibrarySectionsAllSort withActiveDirection(GetLibrarySectionsAllActiveDirection activeDirection) { Utils.checkNotNull(activeDirection, "activeDirection"); this.activeDirection = Optional.ofNullable(activeDirection); return this; @@ -178,7 +178,7 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public GetAllMediaLibrarySort withActiveDirection(Optional activeDirection) { + public GetLibrarySectionsAllSort withActiveDirection(Optional activeDirection) { Utils.checkNotNull(activeDirection, "activeDirection"); this.activeDirection = activeDirection; return this; @@ -187,7 +187,7 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public GetAllMediaLibrarySort withDefaultDirection(GetAllMediaLibraryDefaultDirection defaultDirection) { + public GetLibrarySectionsAllSort withDefaultDirection(GetLibrarySectionsAllDefaultDirection defaultDirection) { Utils.checkNotNull(defaultDirection, "defaultDirection"); this.defaultDirection = Optional.ofNullable(defaultDirection); return this; @@ -196,43 +196,43 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public GetAllMediaLibrarySort withDefaultDirection(Optional defaultDirection) { + public GetLibrarySectionsAllSort withDefaultDirection(Optional defaultDirection) { Utils.checkNotNull(defaultDirection, "defaultDirection"); this.defaultDirection = defaultDirection; return this; } - public GetAllMediaLibrarySort withDescKey(String descKey) { + public GetLibrarySectionsAllSort withDescKey(String descKey) { Utils.checkNotNull(descKey, "descKey"); this.descKey = Optional.ofNullable(descKey); return this; } - public GetAllMediaLibrarySort withDescKey(Optional descKey) { + public GetLibrarySectionsAllSort withDescKey(Optional descKey) { Utils.checkNotNull(descKey, "descKey"); this.descKey = descKey; return this; } - public GetAllMediaLibrarySort withFirstCharacterKey(String firstCharacterKey) { + public GetLibrarySectionsAllSort withFirstCharacterKey(String firstCharacterKey) { Utils.checkNotNull(firstCharacterKey, "firstCharacterKey"); this.firstCharacterKey = Optional.ofNullable(firstCharacterKey); return this; } - public GetAllMediaLibrarySort withFirstCharacterKey(Optional firstCharacterKey) { + public GetLibrarySectionsAllSort withFirstCharacterKey(Optional firstCharacterKey) { Utils.checkNotNull(firstCharacterKey, "firstCharacterKey"); this.firstCharacterKey = firstCharacterKey; return this; } - public GetAllMediaLibrarySort withKey(String key) { + public GetLibrarySectionsAllSort withKey(String key) { Utils.checkNotNull(key, "key"); this.key = key; return this; } - public GetAllMediaLibrarySort withTitle(String title) { + public GetLibrarySectionsAllSort withTitle(String title) { Utils.checkNotNull(title, "title"); this.title = title; return this; @@ -247,7 +247,7 @@ public class GetAllMediaLibrarySort { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibrarySort other = (GetAllMediaLibrarySort) o; + GetLibrarySectionsAllSort other = (GetLibrarySectionsAllSort) o; return Objects.deepEquals(this.default_, other.default_) && Objects.deepEquals(this.active, other.active) && @@ -274,7 +274,7 @@ public class GetAllMediaLibrarySort { @Override public String toString() { - return Utils.toString(GetAllMediaLibrarySort.class, + return Utils.toString(GetLibrarySectionsAllSort.class, "default_", default_, "active", active, "activeDirection", activeDirection, @@ -291,9 +291,9 @@ public class GetAllMediaLibrarySort { private Optional active = Optional.empty(); - private Optional activeDirection; + private Optional activeDirection; - private Optional defaultDirection; + private Optional defaultDirection; private Optional descKey = Optional.empty(); @@ -334,7 +334,7 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public Builder activeDirection(GetAllMediaLibraryActiveDirection activeDirection) { + public Builder activeDirection(GetLibrarySectionsAllActiveDirection activeDirection) { Utils.checkNotNull(activeDirection, "activeDirection"); this.activeDirection = Optional.ofNullable(activeDirection); return this; @@ -343,7 +343,7 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public Builder activeDirection(Optional activeDirection) { + public Builder activeDirection(Optional activeDirection) { Utils.checkNotNull(activeDirection, "activeDirection"); this.activeDirection = activeDirection; return this; @@ -352,7 +352,7 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public Builder defaultDirection(GetAllMediaLibraryDefaultDirection defaultDirection) { + public Builder defaultDirection(GetLibrarySectionsAllDefaultDirection defaultDirection) { Utils.checkNotNull(defaultDirection, "defaultDirection"); this.defaultDirection = Optional.ofNullable(defaultDirection); return this; @@ -361,7 +361,7 @@ public class GetAllMediaLibrarySort { /** * The direction of the sort. Can be either `asc` or `desc`. */ - public Builder defaultDirection(Optional defaultDirection) { + public Builder defaultDirection(Optional defaultDirection) { Utils.checkNotNull(defaultDirection, "defaultDirection"); this.defaultDirection = defaultDirection; return this; @@ -403,14 +403,14 @@ public class GetAllMediaLibrarySort { return this; } - public GetAllMediaLibrarySort build() { + public GetLibrarySectionsAllSort build() { if (activeDirection == null) { activeDirection = _SINGLETON_VALUE_ActiveDirection.value(); } if (defaultDirection == null) { defaultDirection = _SINGLETON_VALUE_DefaultDirection.value(); } - return new GetAllMediaLibrarySort( + return new GetLibrarySectionsAllSort( default_, active, activeDirection, @@ -421,16 +421,16 @@ public class GetAllMediaLibrarySort { title); } - private static final LazySingletonValue> _SINGLETON_VALUE_ActiveDirection = + private static final LazySingletonValue> _SINGLETON_VALUE_ActiveDirection = new LazySingletonValue<>( "activeDirection", "\"asc\"", - new TypeReference>() {}); + new TypeReference>() {}); - private static final LazySingletonValue> _SINGLETON_VALUE_DefaultDirection = + private static final LazySingletonValue> _SINGLETON_VALUE_DefaultDirection = new LazySingletonValue<>( "defaultDirection", "\"asc\"", - new TypeReference>() {}); + new TypeReference>() {}); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStream.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStream.java similarity index 90% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStream.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStream.java index cfdffc54..1f53cdd9 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStream.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStream.java @@ -18,7 +18,7 @@ import java.lang.String; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryStream { +public class GetLibrarySectionsAllStream { /** * Unique stream identifier. @@ -33,7 +33,7 @@ public class GetAllMediaLibraryStream { * - 3 = subtitle */ @JsonProperty("streamType") - private GetAllMediaLibraryStreamType streamType; + private GetLibrarySectionsAllStreamType streamType; /** * Format of the stream (e.g., srt). @@ -361,9 +361,9 @@ public class GetAllMediaLibraryStream { private Optional title; @JsonCreator - public GetAllMediaLibraryStream( + public GetLibrarySectionsAllStream( @JsonProperty("id") long id, - @JsonProperty("streamType") GetAllMediaLibraryStreamType streamType, + @JsonProperty("streamType") GetLibrarySectionsAllStreamType streamType, @JsonProperty("format") Optional format, @JsonProperty("default") Optional default_, @JsonProperty("codec") String codec, @@ -517,9 +517,9 @@ public class GetAllMediaLibraryStream { this.title = title; } - public GetAllMediaLibraryStream( + public GetLibrarySectionsAllStream( long id, - GetAllMediaLibraryStreamType streamType, + GetLibrarySectionsAllStreamType streamType, String codec, String displayTitle, String extendedDisplayTitle) { @@ -541,7 +541,7 @@ public class GetAllMediaLibraryStream { * - 3 = subtitle */ @JsonIgnore - public GetAllMediaLibraryStreamType streamType() { + public GetLibrarySectionsAllStreamType streamType() { return streamType; } @@ -929,7 +929,7 @@ public class GetAllMediaLibraryStream { /** * Unique stream identifier. */ - public GetAllMediaLibraryStream withId(long id) { + public GetLibrarySectionsAllStream withId(long id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -941,7 +941,7 @@ public class GetAllMediaLibraryStream { * - 2 = audio * - 3 = subtitle */ - public GetAllMediaLibraryStream withStreamType(GetAllMediaLibraryStreamType streamType) { + public GetLibrarySectionsAllStream withStreamType(GetLibrarySectionsAllStreamType streamType) { Utils.checkNotNull(streamType, "streamType"); this.streamType = streamType; return this; @@ -950,7 +950,7 @@ public class GetAllMediaLibraryStream { /** * Format of the stream (e.g., srt). */ - public GetAllMediaLibraryStream withFormat(String format) { + public GetLibrarySectionsAllStream withFormat(String format) { Utils.checkNotNull(format, "format"); this.format = Optional.ofNullable(format); return this; @@ -959,7 +959,7 @@ public class GetAllMediaLibraryStream { /** * Format of the stream (e.g., srt). */ - public GetAllMediaLibraryStream withFormat(Optional format) { + public GetLibrarySectionsAllStream withFormat(Optional format) { Utils.checkNotNull(format, "format"); this.format = format; return this; @@ -968,7 +968,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if this stream is default. */ - public GetAllMediaLibraryStream withDefault(boolean default_) { + public GetLibrarySectionsAllStream withDefault(boolean default_) { Utils.checkNotNull(default_, "default_"); this.default_ = Optional.ofNullable(default_); return this; @@ -977,7 +977,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if this stream is default. */ - public GetAllMediaLibraryStream withDefault(Optional default_) { + public GetLibrarySectionsAllStream withDefault(Optional default_) { Utils.checkNotNull(default_, "default_"); this.default_ = default_; return this; @@ -986,7 +986,7 @@ public class GetAllMediaLibraryStream { /** * Codec used by the stream. */ - public GetAllMediaLibraryStream withCodec(String codec) { + public GetLibrarySectionsAllStream withCodec(String codec) { Utils.checkNotNull(codec, "codec"); this.codec = codec; return this; @@ -995,7 +995,7 @@ public class GetAllMediaLibraryStream { /** * Index of the stream. */ - public GetAllMediaLibraryStream withIndex(int index) { + public GetLibrarySectionsAllStream withIndex(int index) { Utils.checkNotNull(index, "index"); this.index = Optional.ofNullable(index); return this; @@ -1004,7 +1004,7 @@ public class GetAllMediaLibraryStream { /** * Index of the stream. */ - public GetAllMediaLibraryStream withIndex(Optional index) { + public GetLibrarySectionsAllStream withIndex(Optional index) { Utils.checkNotNull(index, "index"); this.index = index; return this; @@ -1013,7 +1013,7 @@ public class GetAllMediaLibraryStream { /** * Bitrate of the stream. */ - public GetAllMediaLibraryStream withBitrate(int bitrate) { + public GetLibrarySectionsAllStream withBitrate(int bitrate) { Utils.checkNotNull(bitrate, "bitrate"); this.bitrate = Optional.ofNullable(bitrate); return this; @@ -1022,7 +1022,7 @@ public class GetAllMediaLibraryStream { /** * Bitrate of the stream. */ - public GetAllMediaLibraryStream withBitrate(Optional bitrate) { + public GetLibrarySectionsAllStream withBitrate(Optional bitrate) { Utils.checkNotNull(bitrate, "bitrate"); this.bitrate = bitrate; return this; @@ -1031,7 +1031,7 @@ public class GetAllMediaLibraryStream { /** * Language of the stream. */ - public GetAllMediaLibraryStream withLanguage(String language) { + public GetLibrarySectionsAllStream withLanguage(String language) { Utils.checkNotNull(language, "language"); this.language = Optional.ofNullable(language); return this; @@ -1040,7 +1040,7 @@ public class GetAllMediaLibraryStream { /** * Language of the stream. */ - public GetAllMediaLibraryStream withLanguage(Optional language) { + public GetLibrarySectionsAllStream withLanguage(Optional language) { Utils.checkNotNull(language, "language"); this.language = language; return this; @@ -1049,7 +1049,7 @@ public class GetAllMediaLibraryStream { /** * Language tag (e.g., en). */ - public GetAllMediaLibraryStream withLanguageTag(String languageTag) { + public GetLibrarySectionsAllStream withLanguageTag(String languageTag) { Utils.checkNotNull(languageTag, "languageTag"); this.languageTag = Optional.ofNullable(languageTag); return this; @@ -1058,7 +1058,7 @@ public class GetAllMediaLibraryStream { /** * Language tag (e.g., en). */ - public GetAllMediaLibraryStream withLanguageTag(Optional languageTag) { + public GetLibrarySectionsAllStream withLanguageTag(Optional languageTag) { Utils.checkNotNull(languageTag, "languageTag"); this.languageTag = languageTag; return this; @@ -1067,7 +1067,7 @@ public class GetAllMediaLibraryStream { /** * ISO language code. */ - public GetAllMediaLibraryStream withLanguageCode(String languageCode) { + public GetLibrarySectionsAllStream withLanguageCode(String languageCode) { Utils.checkNotNull(languageCode, "languageCode"); this.languageCode = Optional.ofNullable(languageCode); return this; @@ -1076,7 +1076,7 @@ public class GetAllMediaLibraryStream { /** * ISO language code. */ - public GetAllMediaLibraryStream withLanguageCode(Optional languageCode) { + public GetLibrarySectionsAllStream withLanguageCode(Optional languageCode) { Utils.checkNotNull(languageCode, "languageCode"); this.languageCode = languageCode; return this; @@ -1085,7 +1085,7 @@ public class GetAllMediaLibraryStream { /** * Indicates whether header compression is enabled. */ - public GetAllMediaLibraryStream withHeaderCompression(boolean headerCompression) { + public GetLibrarySectionsAllStream withHeaderCompression(boolean headerCompression) { Utils.checkNotNull(headerCompression, "headerCompression"); this.headerCompression = Optional.ofNullable(headerCompression); return this; @@ -1094,7 +1094,7 @@ public class GetAllMediaLibraryStream { /** * Indicates whether header compression is enabled. */ - public GetAllMediaLibraryStream withHeaderCompression(Optional headerCompression) { + public GetLibrarySectionsAllStream withHeaderCompression(Optional headerCompression) { Utils.checkNotNull(headerCompression, "headerCompression"); this.headerCompression = headerCompression; return this; @@ -1103,7 +1103,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision BL compatibility ID. */ - public GetAllMediaLibraryStream withDOVIBLCompatID(int doviblCompatID) { + public GetLibrarySectionsAllStream withDOVIBLCompatID(int doviblCompatID) { Utils.checkNotNull(doviblCompatID, "doviblCompatID"); this.doviblCompatID = Optional.ofNullable(doviblCompatID); return this; @@ -1112,7 +1112,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision BL compatibility ID. */ - public GetAllMediaLibraryStream withDOVIBLCompatID(Optional doviblCompatID) { + public GetLibrarySectionsAllStream withDOVIBLCompatID(Optional doviblCompatID) { Utils.checkNotNull(doviblCompatID, "doviblCompatID"); this.doviblCompatID = doviblCompatID; return this; @@ -1121,7 +1121,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision BL is present. */ - public GetAllMediaLibraryStream withDOVIBLPresent(boolean doviblPresent) { + public GetLibrarySectionsAllStream withDOVIBLPresent(boolean doviblPresent) { Utils.checkNotNull(doviblPresent, "doviblPresent"); this.doviblPresent = Optional.ofNullable(doviblPresent); return this; @@ -1130,7 +1130,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision BL is present. */ - public GetAllMediaLibraryStream withDOVIBLPresent(Optional doviblPresent) { + public GetLibrarySectionsAllStream withDOVIBLPresent(Optional doviblPresent) { Utils.checkNotNull(doviblPresent, "doviblPresent"); this.doviblPresent = doviblPresent; return this; @@ -1139,7 +1139,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision EL is present. */ - public GetAllMediaLibraryStream withDOVIELPresent(boolean dovielPresent) { + public GetLibrarySectionsAllStream withDOVIELPresent(boolean dovielPresent) { Utils.checkNotNull(dovielPresent, "dovielPresent"); this.dovielPresent = Optional.ofNullable(dovielPresent); return this; @@ -1148,7 +1148,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision EL is present. */ - public GetAllMediaLibraryStream withDOVIELPresent(Optional dovielPresent) { + public GetLibrarySectionsAllStream withDOVIELPresent(Optional dovielPresent) { Utils.checkNotNull(dovielPresent, "dovielPresent"); this.dovielPresent = dovielPresent; return this; @@ -1157,7 +1157,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision level. */ - public GetAllMediaLibraryStream withDOVILevel(int doviLevel) { + public GetLibrarySectionsAllStream withDOVILevel(int doviLevel) { Utils.checkNotNull(doviLevel, "doviLevel"); this.doviLevel = Optional.ofNullable(doviLevel); return this; @@ -1166,7 +1166,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision level. */ - public GetAllMediaLibraryStream withDOVILevel(Optional doviLevel) { + public GetLibrarySectionsAllStream withDOVILevel(Optional doviLevel) { Utils.checkNotNull(doviLevel, "doviLevel"); this.doviLevel = doviLevel; return this; @@ -1175,7 +1175,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision is present. */ - public GetAllMediaLibraryStream withDOVIPresent(boolean doviPresent) { + public GetLibrarySectionsAllStream withDOVIPresent(boolean doviPresent) { Utils.checkNotNull(doviPresent, "doviPresent"); this.doviPresent = Optional.ofNullable(doviPresent); return this; @@ -1184,7 +1184,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision is present. */ - public GetAllMediaLibraryStream withDOVIPresent(Optional doviPresent) { + public GetLibrarySectionsAllStream withDOVIPresent(Optional doviPresent) { Utils.checkNotNull(doviPresent, "doviPresent"); this.doviPresent = doviPresent; return this; @@ -1193,7 +1193,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision profile. */ - public GetAllMediaLibraryStream withDOVIProfile(int doviProfile) { + public GetLibrarySectionsAllStream withDOVIProfile(int doviProfile) { Utils.checkNotNull(doviProfile, "doviProfile"); this.doviProfile = Optional.ofNullable(doviProfile); return this; @@ -1202,7 +1202,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision profile. */ - public GetAllMediaLibraryStream withDOVIProfile(Optional doviProfile) { + public GetLibrarySectionsAllStream withDOVIProfile(Optional doviProfile) { Utils.checkNotNull(doviProfile, "doviProfile"); this.doviProfile = doviProfile; return this; @@ -1211,7 +1211,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision RPU is present. */ - public GetAllMediaLibraryStream withDOVIRPUPresent(boolean dovirpuPresent) { + public GetLibrarySectionsAllStream withDOVIRPUPresent(boolean dovirpuPresent) { Utils.checkNotNull(dovirpuPresent, "dovirpuPresent"); this.dovirpuPresent = Optional.ofNullable(dovirpuPresent); return this; @@ -1220,7 +1220,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if Dolby Vision RPU is present. */ - public GetAllMediaLibraryStream withDOVIRPUPresent(Optional dovirpuPresent) { + public GetLibrarySectionsAllStream withDOVIRPUPresent(Optional dovirpuPresent) { Utils.checkNotNull(dovirpuPresent, "dovirpuPresent"); this.dovirpuPresent = dovirpuPresent; return this; @@ -1229,7 +1229,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision version. */ - public GetAllMediaLibraryStream withDOVIVersion(String doviVersion) { + public GetLibrarySectionsAllStream withDOVIVersion(String doviVersion) { Utils.checkNotNull(doviVersion, "doviVersion"); this.doviVersion = Optional.ofNullable(doviVersion); return this; @@ -1238,7 +1238,7 @@ public class GetAllMediaLibraryStream { /** * Dolby Vision version. */ - public GetAllMediaLibraryStream withDOVIVersion(Optional doviVersion) { + public GetLibrarySectionsAllStream withDOVIVersion(Optional doviVersion) { Utils.checkNotNull(doviVersion, "doviVersion"); this.doviVersion = doviVersion; return this; @@ -1247,7 +1247,7 @@ public class GetAllMediaLibraryStream { /** * Bit depth of the video stream. */ - public GetAllMediaLibraryStream withBitDepth(int bitDepth) { + public GetLibrarySectionsAllStream withBitDepth(int bitDepth) { Utils.checkNotNull(bitDepth, "bitDepth"); this.bitDepth = Optional.ofNullable(bitDepth); return this; @@ -1256,7 +1256,7 @@ public class GetAllMediaLibraryStream { /** * Bit depth of the video stream. */ - public GetAllMediaLibraryStream withBitDepth(Optional bitDepth) { + public GetLibrarySectionsAllStream withBitDepth(Optional bitDepth) { Utils.checkNotNull(bitDepth, "bitDepth"); this.bitDepth = bitDepth; return this; @@ -1265,7 +1265,7 @@ public class GetAllMediaLibraryStream { /** * Chroma sample location. */ - public GetAllMediaLibraryStream withChromaLocation(String chromaLocation) { + public GetLibrarySectionsAllStream withChromaLocation(String chromaLocation) { Utils.checkNotNull(chromaLocation, "chromaLocation"); this.chromaLocation = Optional.ofNullable(chromaLocation); return this; @@ -1274,7 +1274,7 @@ public class GetAllMediaLibraryStream { /** * Chroma sample location. */ - public GetAllMediaLibraryStream withChromaLocation(Optional chromaLocation) { + public GetLibrarySectionsAllStream withChromaLocation(Optional chromaLocation) { Utils.checkNotNull(chromaLocation, "chromaLocation"); this.chromaLocation = chromaLocation; return this; @@ -1283,7 +1283,7 @@ public class GetAllMediaLibraryStream { /** * Chroma subsampling format. */ - public GetAllMediaLibraryStream withChromaSubsampling(String chromaSubsampling) { + public GetLibrarySectionsAllStream withChromaSubsampling(String chromaSubsampling) { Utils.checkNotNull(chromaSubsampling, "chromaSubsampling"); this.chromaSubsampling = Optional.ofNullable(chromaSubsampling); return this; @@ -1292,7 +1292,7 @@ public class GetAllMediaLibraryStream { /** * Chroma subsampling format. */ - public GetAllMediaLibraryStream withChromaSubsampling(Optional chromaSubsampling) { + public GetLibrarySectionsAllStream withChromaSubsampling(Optional chromaSubsampling) { Utils.checkNotNull(chromaSubsampling, "chromaSubsampling"); this.chromaSubsampling = chromaSubsampling; return this; @@ -1301,7 +1301,7 @@ public class GetAllMediaLibraryStream { /** * Coded video height. */ - public GetAllMediaLibraryStream withCodedHeight(int codedHeight) { + public GetLibrarySectionsAllStream withCodedHeight(int codedHeight) { Utils.checkNotNull(codedHeight, "codedHeight"); this.codedHeight = Optional.ofNullable(codedHeight); return this; @@ -1310,7 +1310,7 @@ public class GetAllMediaLibraryStream { /** * Coded video height. */ - public GetAllMediaLibraryStream withCodedHeight(Optional codedHeight) { + public GetLibrarySectionsAllStream withCodedHeight(Optional codedHeight) { Utils.checkNotNull(codedHeight, "codedHeight"); this.codedHeight = codedHeight; return this; @@ -1319,7 +1319,7 @@ public class GetAllMediaLibraryStream { /** * Coded video width. */ - public GetAllMediaLibraryStream withCodedWidth(int codedWidth) { + public GetLibrarySectionsAllStream withCodedWidth(int codedWidth) { Utils.checkNotNull(codedWidth, "codedWidth"); this.codedWidth = Optional.ofNullable(codedWidth); return this; @@ -1328,19 +1328,19 @@ public class GetAllMediaLibraryStream { /** * Coded video width. */ - public GetAllMediaLibraryStream withCodedWidth(Optional codedWidth) { + public GetLibrarySectionsAllStream withCodedWidth(Optional codedWidth) { Utils.checkNotNull(codedWidth, "codedWidth"); this.codedWidth = codedWidth; return this; } - public GetAllMediaLibraryStream withClosedCaptions(boolean closedCaptions) { + public GetLibrarySectionsAllStream withClosedCaptions(boolean closedCaptions) { Utils.checkNotNull(closedCaptions, "closedCaptions"); this.closedCaptions = Optional.ofNullable(closedCaptions); return this; } - public GetAllMediaLibraryStream withClosedCaptions(Optional closedCaptions) { + public GetLibrarySectionsAllStream withClosedCaptions(Optional closedCaptions) { Utils.checkNotNull(closedCaptions, "closedCaptions"); this.closedCaptions = closedCaptions; return this; @@ -1349,7 +1349,7 @@ public class GetAllMediaLibraryStream { /** * Color primaries used. */ - public GetAllMediaLibraryStream withColorPrimaries(String colorPrimaries) { + public GetLibrarySectionsAllStream withColorPrimaries(String colorPrimaries) { Utils.checkNotNull(colorPrimaries, "colorPrimaries"); this.colorPrimaries = Optional.ofNullable(colorPrimaries); return this; @@ -1358,7 +1358,7 @@ public class GetAllMediaLibraryStream { /** * Color primaries used. */ - public GetAllMediaLibraryStream withColorPrimaries(Optional colorPrimaries) { + public GetLibrarySectionsAllStream withColorPrimaries(Optional colorPrimaries) { Utils.checkNotNull(colorPrimaries, "colorPrimaries"); this.colorPrimaries = colorPrimaries; return this; @@ -1367,7 +1367,7 @@ public class GetAllMediaLibraryStream { /** * Color range (e.g., tv). */ - public GetAllMediaLibraryStream withColorRange(String colorRange) { + public GetLibrarySectionsAllStream withColorRange(String colorRange) { Utils.checkNotNull(colorRange, "colorRange"); this.colorRange = Optional.ofNullable(colorRange); return this; @@ -1376,7 +1376,7 @@ public class GetAllMediaLibraryStream { /** * Color range (e.g., tv). */ - public GetAllMediaLibraryStream withColorRange(Optional colorRange) { + public GetLibrarySectionsAllStream withColorRange(Optional colorRange) { Utils.checkNotNull(colorRange, "colorRange"); this.colorRange = colorRange; return this; @@ -1385,7 +1385,7 @@ public class GetAllMediaLibraryStream { /** * Color space. */ - public GetAllMediaLibraryStream withColorSpace(String colorSpace) { + public GetLibrarySectionsAllStream withColorSpace(String colorSpace) { Utils.checkNotNull(colorSpace, "colorSpace"); this.colorSpace = Optional.ofNullable(colorSpace); return this; @@ -1394,7 +1394,7 @@ public class GetAllMediaLibraryStream { /** * Color space. */ - public GetAllMediaLibraryStream withColorSpace(Optional colorSpace) { + public GetLibrarySectionsAllStream withColorSpace(Optional colorSpace) { Utils.checkNotNull(colorSpace, "colorSpace"); this.colorSpace = colorSpace; return this; @@ -1403,7 +1403,7 @@ public class GetAllMediaLibraryStream { /** * Color transfer characteristics. */ - public GetAllMediaLibraryStream withColorTrc(String colorTrc) { + public GetLibrarySectionsAllStream withColorTrc(String colorTrc) { Utils.checkNotNull(colorTrc, "colorTrc"); this.colorTrc = Optional.ofNullable(colorTrc); return this; @@ -1412,7 +1412,7 @@ public class GetAllMediaLibraryStream { /** * Color transfer characteristics. */ - public GetAllMediaLibraryStream withColorTrc(Optional colorTrc) { + public GetLibrarySectionsAllStream withColorTrc(Optional colorTrc) { Utils.checkNotNull(colorTrc, "colorTrc"); this.colorTrc = colorTrc; return this; @@ -1421,7 +1421,7 @@ public class GetAllMediaLibraryStream { /** * Frame rate of the stream. */ - public GetAllMediaLibraryStream withFrameRate(float frameRate) { + public GetLibrarySectionsAllStream withFrameRate(float frameRate) { Utils.checkNotNull(frameRate, "frameRate"); this.frameRate = Optional.ofNullable(frameRate); return this; @@ -1430,7 +1430,7 @@ public class GetAllMediaLibraryStream { /** * Frame rate of the stream. */ - public GetAllMediaLibraryStream withFrameRate(Optional frameRate) { + public GetLibrarySectionsAllStream withFrameRate(Optional frameRate) { Utils.checkNotNull(frameRate, "frameRate"); this.frameRate = frameRate; return this; @@ -1439,7 +1439,7 @@ public class GetAllMediaLibraryStream { /** * Key to access this stream part. */ - public GetAllMediaLibraryStream withKey(String key) { + public GetLibrarySectionsAllStream withKey(String key) { Utils.checkNotNull(key, "key"); this.key = Optional.ofNullable(key); return this; @@ -1448,7 +1448,7 @@ public class GetAllMediaLibraryStream { /** * Key to access this stream part. */ - public GetAllMediaLibraryStream withKey(Optional key) { + public GetLibrarySectionsAllStream withKey(Optional key) { Utils.checkNotNull(key, "key"); this.key = key; return this; @@ -1457,7 +1457,7 @@ public class GetAllMediaLibraryStream { /** * Height of the video stream. */ - public GetAllMediaLibraryStream withHeight(int height) { + public GetLibrarySectionsAllStream withHeight(int height) { Utils.checkNotNull(height, "height"); this.height = Optional.ofNullable(height); return this; @@ -1466,7 +1466,7 @@ public class GetAllMediaLibraryStream { /** * Height of the video stream. */ - public GetAllMediaLibraryStream withHeight(Optional height) { + public GetLibrarySectionsAllStream withHeight(Optional height) { Utils.checkNotNull(height, "height"); this.height = height; return this; @@ -1475,7 +1475,7 @@ public class GetAllMediaLibraryStream { /** * Video level. */ - public GetAllMediaLibraryStream withLevel(int level) { + public GetLibrarySectionsAllStream withLevel(int level) { Utils.checkNotNull(level, "level"); this.level = Optional.ofNullable(level); return this; @@ -1484,7 +1484,7 @@ public class GetAllMediaLibraryStream { /** * Video level. */ - public GetAllMediaLibraryStream withLevel(Optional level) { + public GetLibrarySectionsAllStream withLevel(Optional level) { Utils.checkNotNull(level, "level"); this.level = level; return this; @@ -1493,7 +1493,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if this is the original stream. */ - public GetAllMediaLibraryStream withOriginal(boolean original) { + public GetLibrarySectionsAllStream withOriginal(boolean original) { Utils.checkNotNull(original, "original"); this.original = Optional.ofNullable(original); return this; @@ -1502,19 +1502,19 @@ public class GetAllMediaLibraryStream { /** * Indicates if this is the original stream. */ - public GetAllMediaLibraryStream withOriginal(Optional original) { + public GetLibrarySectionsAllStream withOriginal(Optional original) { Utils.checkNotNull(original, "original"); this.original = original; return this; } - public GetAllMediaLibraryStream withHasScalingMatrix(boolean hasScalingMatrix) { + public GetLibrarySectionsAllStream withHasScalingMatrix(boolean hasScalingMatrix) { Utils.checkNotNull(hasScalingMatrix, "hasScalingMatrix"); this.hasScalingMatrix = Optional.ofNullable(hasScalingMatrix); return this; } - public GetAllMediaLibraryStream withHasScalingMatrix(Optional hasScalingMatrix) { + public GetLibrarySectionsAllStream withHasScalingMatrix(Optional hasScalingMatrix) { Utils.checkNotNull(hasScalingMatrix, "hasScalingMatrix"); this.hasScalingMatrix = hasScalingMatrix; return this; @@ -1523,7 +1523,7 @@ public class GetAllMediaLibraryStream { /** * Video profile. */ - public GetAllMediaLibraryStream withProfile(String profile) { + public GetLibrarySectionsAllStream withProfile(String profile) { Utils.checkNotNull(profile, "profile"); this.profile = Optional.ofNullable(profile); return this; @@ -1532,31 +1532,31 @@ public class GetAllMediaLibraryStream { /** * Video profile. */ - public GetAllMediaLibraryStream withProfile(Optional profile) { + public GetLibrarySectionsAllStream withProfile(Optional profile) { Utils.checkNotNull(profile, "profile"); this.profile = profile; return this; } - public GetAllMediaLibraryStream withScanType(String scanType) { + public GetLibrarySectionsAllStream withScanType(String scanType) { Utils.checkNotNull(scanType, "scanType"); this.scanType = Optional.ofNullable(scanType); return this; } - public GetAllMediaLibraryStream withScanType(Optional scanType) { + public GetLibrarySectionsAllStream withScanType(Optional scanType) { Utils.checkNotNull(scanType, "scanType"); this.scanType = scanType; return this; } - public GetAllMediaLibraryStream withEmbeddedInVideo(String embeddedInVideo) { + public GetLibrarySectionsAllStream withEmbeddedInVideo(String embeddedInVideo) { Utils.checkNotNull(embeddedInVideo, "embeddedInVideo"); this.embeddedInVideo = Optional.ofNullable(embeddedInVideo); return this; } - public GetAllMediaLibraryStream withEmbeddedInVideo(Optional embeddedInVideo) { + public GetLibrarySectionsAllStream withEmbeddedInVideo(Optional embeddedInVideo) { Utils.checkNotNull(embeddedInVideo, "embeddedInVideo"); this.embeddedInVideo = embeddedInVideo; return this; @@ -1565,7 +1565,7 @@ public class GetAllMediaLibraryStream { /** * Number of reference frames. */ - public GetAllMediaLibraryStream withRefFrames(int refFrames) { + public GetLibrarySectionsAllStream withRefFrames(int refFrames) { Utils.checkNotNull(refFrames, "refFrames"); this.refFrames = Optional.ofNullable(refFrames); return this; @@ -1574,7 +1574,7 @@ public class GetAllMediaLibraryStream { /** * Number of reference frames. */ - public GetAllMediaLibraryStream withRefFrames(Optional refFrames) { + public GetLibrarySectionsAllStream withRefFrames(Optional refFrames) { Utils.checkNotNull(refFrames, "refFrames"); this.refFrames = refFrames; return this; @@ -1583,7 +1583,7 @@ public class GetAllMediaLibraryStream { /** * Width of the video stream. */ - public GetAllMediaLibraryStream withWidth(int width) { + public GetLibrarySectionsAllStream withWidth(int width) { Utils.checkNotNull(width, "width"); this.width = Optional.ofNullable(width); return this; @@ -1592,7 +1592,7 @@ public class GetAllMediaLibraryStream { /** * Width of the video stream. */ - public GetAllMediaLibraryStream withWidth(Optional width) { + public GetLibrarySectionsAllStream withWidth(Optional width) { Utils.checkNotNull(width, "width"); this.width = width; return this; @@ -1601,7 +1601,7 @@ public class GetAllMediaLibraryStream { /** * Display title for the stream. */ - public GetAllMediaLibraryStream withDisplayTitle(String displayTitle) { + public GetLibrarySectionsAllStream withDisplayTitle(String displayTitle) { Utils.checkNotNull(displayTitle, "displayTitle"); this.displayTitle = displayTitle; return this; @@ -1610,7 +1610,7 @@ public class GetAllMediaLibraryStream { /** * Extended display title for the stream. */ - public GetAllMediaLibraryStream withExtendedDisplayTitle(String extendedDisplayTitle) { + public GetLibrarySectionsAllStream withExtendedDisplayTitle(String extendedDisplayTitle) { Utils.checkNotNull(extendedDisplayTitle, "extendedDisplayTitle"); this.extendedDisplayTitle = extendedDisplayTitle; return this; @@ -1619,7 +1619,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if this stream is selected (applicable for audio streams). */ - public GetAllMediaLibraryStream withSelected(boolean selected) { + public GetLibrarySectionsAllStream withSelected(boolean selected) { Utils.checkNotNull(selected, "selected"); this.selected = Optional.ofNullable(selected); return this; @@ -1628,19 +1628,19 @@ public class GetAllMediaLibraryStream { /** * Indicates if this stream is selected (applicable for audio streams). */ - public GetAllMediaLibraryStream withSelected(Optional selected) { + public GetLibrarySectionsAllStream withSelected(Optional selected) { Utils.checkNotNull(selected, "selected"); this.selected = selected; return this; } - public GetAllMediaLibraryStream withForced(boolean forced) { + public GetLibrarySectionsAllStream withForced(boolean forced) { Utils.checkNotNull(forced, "forced"); this.forced = Optional.ofNullable(forced); return this; } - public GetAllMediaLibraryStream withForced(Optional forced) { + public GetLibrarySectionsAllStream withForced(Optional forced) { Utils.checkNotNull(forced, "forced"); this.forced = forced; return this; @@ -1649,7 +1649,7 @@ public class GetAllMediaLibraryStream { /** * Number of audio channels (for audio streams). */ - public GetAllMediaLibraryStream withChannels(int channels) { + public GetLibrarySectionsAllStream withChannels(int channels) { Utils.checkNotNull(channels, "channels"); this.channels = Optional.ofNullable(channels); return this; @@ -1658,7 +1658,7 @@ public class GetAllMediaLibraryStream { /** * Number of audio channels (for audio streams). */ - public GetAllMediaLibraryStream withChannels(Optional channels) { + public GetLibrarySectionsAllStream withChannels(Optional channels) { Utils.checkNotNull(channels, "channels"); this.channels = channels; return this; @@ -1667,7 +1667,7 @@ public class GetAllMediaLibraryStream { /** * Audio channel layout. */ - public GetAllMediaLibraryStream withAudioChannelLayout(String audioChannelLayout) { + public GetLibrarySectionsAllStream withAudioChannelLayout(String audioChannelLayout) { Utils.checkNotNull(audioChannelLayout, "audioChannelLayout"); this.audioChannelLayout = Optional.ofNullable(audioChannelLayout); return this; @@ -1676,7 +1676,7 @@ public class GetAllMediaLibraryStream { /** * Audio channel layout. */ - public GetAllMediaLibraryStream withAudioChannelLayout(Optional audioChannelLayout) { + public GetLibrarySectionsAllStream withAudioChannelLayout(Optional audioChannelLayout) { Utils.checkNotNull(audioChannelLayout, "audioChannelLayout"); this.audioChannelLayout = audioChannelLayout; return this; @@ -1685,7 +1685,7 @@ public class GetAllMediaLibraryStream { /** * Sampling rate for the audio stream. */ - public GetAllMediaLibraryStream withSamplingRate(int samplingRate) { + public GetLibrarySectionsAllStream withSamplingRate(int samplingRate) { Utils.checkNotNull(samplingRate, "samplingRate"); this.samplingRate = Optional.ofNullable(samplingRate); return this; @@ -1694,7 +1694,7 @@ public class GetAllMediaLibraryStream { /** * Sampling rate for the audio stream. */ - public GetAllMediaLibraryStream withSamplingRate(Optional samplingRate) { + public GetLibrarySectionsAllStream withSamplingRate(Optional samplingRate) { Utils.checkNotNull(samplingRate, "samplingRate"); this.samplingRate = samplingRate; return this; @@ -1703,7 +1703,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if the stream can auto-sync. */ - public GetAllMediaLibraryStream withCanAutoSync(boolean canAutoSync) { + public GetLibrarySectionsAllStream withCanAutoSync(boolean canAutoSync) { Utils.checkNotNull(canAutoSync, "canAutoSync"); this.canAutoSync = Optional.ofNullable(canAutoSync); return this; @@ -1712,7 +1712,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if the stream can auto-sync. */ - public GetAllMediaLibraryStream withCanAutoSync(Optional canAutoSync) { + public GetLibrarySectionsAllStream withCanAutoSync(Optional canAutoSync) { Utils.checkNotNull(canAutoSync, "canAutoSync"); this.canAutoSync = canAutoSync; return this; @@ -1721,7 +1721,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if the stream is for the hearing impaired. */ - public GetAllMediaLibraryStream withHearingImpaired(boolean hearingImpaired) { + public GetLibrarySectionsAllStream withHearingImpaired(boolean hearingImpaired) { Utils.checkNotNull(hearingImpaired, "hearingImpaired"); this.hearingImpaired = Optional.ofNullable(hearingImpaired); return this; @@ -1730,7 +1730,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if the stream is for the hearing impaired. */ - public GetAllMediaLibraryStream withHearingImpaired(Optional hearingImpaired) { + public GetLibrarySectionsAllStream withHearingImpaired(Optional hearingImpaired) { Utils.checkNotNull(hearingImpaired, "hearingImpaired"); this.hearingImpaired = hearingImpaired; return this; @@ -1739,7 +1739,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if the stream is a dub. */ - public GetAllMediaLibraryStream withDub(boolean dub) { + public GetLibrarySectionsAllStream withDub(boolean dub) { Utils.checkNotNull(dub, "dub"); this.dub = Optional.ofNullable(dub); return this; @@ -1748,7 +1748,7 @@ public class GetAllMediaLibraryStream { /** * Indicates if the stream is a dub. */ - public GetAllMediaLibraryStream withDub(Optional dub) { + public GetLibrarySectionsAllStream withDub(Optional dub) { Utils.checkNotNull(dub, "dub"); this.dub = dub; return this; @@ -1757,7 +1757,7 @@ public class GetAllMediaLibraryStream { /** * Optional title for the stream (e.g., language variant). */ - public GetAllMediaLibraryStream withTitle(String title) { + public GetLibrarySectionsAllStream withTitle(String title) { Utils.checkNotNull(title, "title"); this.title = Optional.ofNullable(title); return this; @@ -1766,7 +1766,7 @@ public class GetAllMediaLibraryStream { /** * Optional title for the stream (e.g., language variant). */ - public GetAllMediaLibraryStream withTitle(Optional title) { + public GetLibrarySectionsAllStream withTitle(Optional title) { Utils.checkNotNull(title, "title"); this.title = title; return this; @@ -1781,7 +1781,7 @@ public class GetAllMediaLibraryStream { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryStream other = (GetAllMediaLibraryStream) o; + GetLibrarySectionsAllStream other = (GetLibrarySectionsAllStream) o; return Objects.deepEquals(this.id, other.id) && Objects.deepEquals(this.streamType, other.streamType) && @@ -1894,7 +1894,7 @@ public class GetAllMediaLibraryStream { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryStream.class, + return Utils.toString(GetLibrarySectionsAllStream.class, "id", id, "streamType", streamType, "format", format, @@ -1952,7 +1952,7 @@ public class GetAllMediaLibraryStream { private Long id; - private GetAllMediaLibraryStreamType streamType; + private GetLibrarySectionsAllStreamType streamType; private Optional format = Optional.empty(); @@ -2071,7 +2071,7 @@ public class GetAllMediaLibraryStream { * - 2 = audio * - 3 = subtitle */ - public Builder streamType(GetAllMediaLibraryStreamType streamType) { + public Builder streamType(GetLibrarySectionsAllStreamType streamType) { Utils.checkNotNull(streamType, "streamType"); this.streamType = streamType; return this; @@ -2902,8 +2902,8 @@ public class GetAllMediaLibraryStream { return this; } - public GetAllMediaLibraryStream build() { - return new GetAllMediaLibraryStream( + public GetLibrarySectionsAllStream build() { + return new GetLibrarySectionsAllStream( id, streamType, format, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStreamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStreamType.java similarity index 60% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStreamType.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStreamType.java index 004492ef..7d593763 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryStreamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllStreamType.java @@ -43,45 +43,45 @@ import java.util.Optional; * */ /** - * GetAllMediaLibraryStreamType + * GetLibrarySectionsAllStreamType * *

Stream type: * - 1 = video * - 2 = audio * - 3 = subtitle */ -@JsonDeserialize(using = GetAllMediaLibraryStreamType._Deserializer.class) -@JsonSerialize(using = GetAllMediaLibraryStreamType._Serializer.class) -public class GetAllMediaLibraryStreamType { +@JsonDeserialize(using = GetLibrarySectionsAllStreamType._Deserializer.class) +@JsonSerialize(using = GetLibrarySectionsAllStreamType._Serializer.class) +public class GetLibrarySectionsAllStreamType { - public static final GetAllMediaLibraryStreamType Video = new GetAllMediaLibraryStreamType(1); - public static final GetAllMediaLibraryStreamType Audio = new GetAllMediaLibraryStreamType(2); - public static final GetAllMediaLibraryStreamType Subtitle = new GetAllMediaLibraryStreamType(3); + public static final GetLibrarySectionsAllStreamType Video = new GetLibrarySectionsAllStreamType(1); + public static final GetLibrarySectionsAllStreamType Audio = new GetLibrarySectionsAllStreamType(2); + public static final GetLibrarySectionsAllStreamType Subtitle = new GetLibrarySectionsAllStreamType(3); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not // careful). Keep this field lower case to avoid clashing with // generated member names which will always be upper cased (Java // convention) - private static final Map values = createValuesMap(); - private static final Map enums = createEnumsMap(); + private static final Map values = createValuesMap(); + private static final Map enums = createEnumsMap(); private final int value; - private GetAllMediaLibraryStreamType(int value) { + private GetLibrarySectionsAllStreamType(int value) { this.value = value; } /** - * Returns a GetAllMediaLibraryStreamType with the given value. For a specific value the + * Returns a GetLibrarySectionsAllStreamType with the given value. For a specific value the * returned object will always be a singleton so reference equality * is satisfied when the values are the same. * - * @param value value to be wrapped as GetAllMediaLibraryStreamType + * @param value value to be wrapped as GetLibrarySectionsAllStreamType */ - public static GetAllMediaLibraryStreamType of(int value) { - synchronized (GetAllMediaLibraryStreamType.class) { - return values.computeIfAbsent(value, v -> new GetAllMediaLibraryStreamType(v)); + public static GetLibrarySectionsAllStreamType of(int value) { + synchronized (GetLibrarySectionsAllStreamType.class) { + return values.computeIfAbsent(value, v -> new GetLibrarySectionsAllStreamType(v)); } } @@ -89,7 +89,7 @@ public class GetAllMediaLibraryStreamType { return value; } - public Optional asEnum() { + public Optional asEnum() { return Optional.ofNullable(enums.getOrDefault(value, null)); } @@ -110,69 +110,69 @@ public class GetAllMediaLibraryStreamType { return false; if (getClass() != obj.getClass()) return false; - GetAllMediaLibraryStreamType other = (GetAllMediaLibraryStreamType) obj; + GetLibrarySectionsAllStreamType other = (GetLibrarySectionsAllStreamType) obj; return Objects.equals(value, other.value); } @Override public String toString() { - return "GetAllMediaLibraryStreamType [value=" + value + "]"; + return "GetLibrarySectionsAllStreamType [value=" + value + "]"; } // return an array just like an enum - public static GetAllMediaLibraryStreamType[] values() { - synchronized (GetAllMediaLibraryStreamType.class) { - return values.values().toArray(new GetAllMediaLibraryStreamType[] {}); + public static GetLibrarySectionsAllStreamType[] values() { + synchronized (GetLibrarySectionsAllStreamType.class) { + return values.values().toArray(new GetLibrarySectionsAllStreamType[] {}); } } - private static final Map createValuesMap() { - Map map = new LinkedHashMap<>(); + private static final Map createValuesMap() { + Map map = new LinkedHashMap<>(); map.put(1, Video); map.put(2, Audio); map.put(3, Subtitle); return map; } - private static final Map createEnumsMap() { - Map map = new HashMap<>(); - map.put(1, GetAllMediaLibraryStreamTypeEnum.Video); - map.put(2, GetAllMediaLibraryStreamTypeEnum.Audio); - map.put(3, GetAllMediaLibraryStreamTypeEnum.Subtitle); + private static final Map createEnumsMap() { + Map map = new HashMap<>(); + map.put(1, GetLibrarySectionsAllStreamTypeEnum.Video); + map.put(2, GetLibrarySectionsAllStreamTypeEnum.Audio); + map.put(3, GetLibrarySectionsAllStreamTypeEnum.Subtitle); return map; } @SuppressWarnings("serial") - public static final class _Serializer extends StdSerializer { + public static final class _Serializer extends StdSerializer { protected _Serializer() { - super(GetAllMediaLibraryStreamType.class); + super(GetLibrarySectionsAllStreamType.class); } @Override - public void serialize(GetAllMediaLibraryStreamType value, JsonGenerator g, SerializerProvider provider) + public void serialize(GetLibrarySectionsAllStreamType value, JsonGenerator g, SerializerProvider provider) throws IOException, JsonProcessingException { g.writeObject(value.value); } } @SuppressWarnings("serial") - public static final class _Deserializer extends StdDeserializer { + public static final class _Deserializer extends StdDeserializer { protected _Deserializer() { - super(GetAllMediaLibraryStreamType.class); + super(GetLibrarySectionsAllStreamType.class); } @Override - public GetAllMediaLibraryStreamType deserialize(JsonParser p, DeserializationContext ctxt) + public GetLibrarySectionsAllStreamType deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException { int v = p.readValueAs(new TypeReference() {}); // use the factory method to ensure we get singletons - return GetAllMediaLibraryStreamType.of(v); + return GetLibrarySectionsAllStreamType.of(v); } } - public enum GetAllMediaLibraryStreamTypeEnum { + public enum GetLibrarySectionsAllStreamTypeEnum { Video(1), Audio(2), @@ -180,7 +180,7 @@ public class GetAllMediaLibraryStreamType { private final int value; - private GetAllMediaLibraryStreamTypeEnum(int value) { + private GetLibrarySectionsAllStreamTypeEnum(int value) { this.value = value; } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllType.java similarity index 72% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryType.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllType.java index 0c9ac7d6..adb8ea6a 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllType.java @@ -17,7 +17,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; -public class GetAllMediaLibraryType { +public class GetLibrarySectionsAllType { @JsonProperty("key") private String key; @@ -37,26 +37,26 @@ public class GetAllMediaLibraryType { @JsonInclude(Include.NON_ABSENT) @JsonProperty("Filter") - private Optional> filter; + private Optional> filter; @JsonInclude(Include.NON_ABSENT) @JsonProperty("Sort") - private Optional> sort; + private Optional> sort; @JsonInclude(Include.NON_ABSENT) @JsonProperty("Field") - private Optional> field; + private Optional> field; @JsonCreator - public GetAllMediaLibraryType( + public GetLibrarySectionsAllType( @JsonProperty("key") String key, @JsonProperty("type") String type, @JsonProperty("subtype") Optional subtype, @JsonProperty("title") String title, @JsonProperty("active") boolean active, - @JsonProperty("Filter") Optional> filter, - @JsonProperty("Sort") Optional> sort, - @JsonProperty("Field") Optional> field) { + @JsonProperty("Filter") Optional> filter, + @JsonProperty("Sort") Optional> sort, + @JsonProperty("Field") Optional> field) { Utils.checkNotNull(key, "key"); Utils.checkNotNull(type, "type"); Utils.checkNotNull(subtype, "subtype"); @@ -75,7 +75,7 @@ public class GetAllMediaLibraryType { this.field = field; } - public GetAllMediaLibraryType( + public GetLibrarySectionsAllType( String key, String type, String title, @@ -110,93 +110,93 @@ public class GetAllMediaLibraryType { @SuppressWarnings("unchecked") @JsonIgnore - public Optional> filter() { - return (Optional>) filter; + public Optional> filter() { + return (Optional>) filter; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> sort() { - return (Optional>) sort; + public Optional> sort() { + return (Optional>) sort; } @SuppressWarnings("unchecked") @JsonIgnore - public Optional> field() { - return (Optional>) field; + public Optional> field() { + return (Optional>) field; } public final static Builder builder() { return new Builder(); } - public GetAllMediaLibraryType withKey(String key) { + public GetLibrarySectionsAllType withKey(String key) { Utils.checkNotNull(key, "key"); this.key = key; return this; } - public GetAllMediaLibraryType withType(String type) { + public GetLibrarySectionsAllType withType(String type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } - public GetAllMediaLibraryType withSubtype(String subtype) { + public GetLibrarySectionsAllType withSubtype(String subtype) { Utils.checkNotNull(subtype, "subtype"); this.subtype = Optional.ofNullable(subtype); return this; } - public GetAllMediaLibraryType withSubtype(Optional subtype) { + public GetLibrarySectionsAllType withSubtype(Optional subtype) { Utils.checkNotNull(subtype, "subtype"); this.subtype = subtype; return this; } - public GetAllMediaLibraryType withTitle(String title) { + public GetLibrarySectionsAllType withTitle(String title) { Utils.checkNotNull(title, "title"); this.title = title; return this; } - public GetAllMediaLibraryType withActive(boolean active) { + public GetLibrarySectionsAllType withActive(boolean active) { Utils.checkNotNull(active, "active"); this.active = active; return this; } - public GetAllMediaLibraryType withFilter(List filter) { + public GetLibrarySectionsAllType withFilter(List filter) { Utils.checkNotNull(filter, "filter"); this.filter = Optional.ofNullable(filter); return this; } - public GetAllMediaLibraryType withFilter(Optional> filter) { + public GetLibrarySectionsAllType withFilter(Optional> filter) { Utils.checkNotNull(filter, "filter"); this.filter = filter; return this; } - public GetAllMediaLibraryType withSort(List sort) { + public GetLibrarySectionsAllType withSort(List sort) { Utils.checkNotNull(sort, "sort"); this.sort = Optional.ofNullable(sort); return this; } - public GetAllMediaLibraryType withSort(Optional> sort) { + public GetLibrarySectionsAllType withSort(Optional> sort) { Utils.checkNotNull(sort, "sort"); this.sort = sort; return this; } - public GetAllMediaLibraryType withField(List field) { + public GetLibrarySectionsAllType withField(List field) { Utils.checkNotNull(field, "field"); this.field = Optional.ofNullable(field); return this; } - public GetAllMediaLibraryType withField(Optional> field) { + public GetLibrarySectionsAllType withField(Optional> field) { Utils.checkNotNull(field, "field"); this.field = field; return this; @@ -211,7 +211,7 @@ public class GetAllMediaLibraryType { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryType other = (GetAllMediaLibraryType) o; + GetLibrarySectionsAllType other = (GetLibrarySectionsAllType) o; return Objects.deepEquals(this.key, other.key) && Objects.deepEquals(this.type, other.type) && @@ -238,7 +238,7 @@ public class GetAllMediaLibraryType { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryType.class, + return Utils.toString(GetLibrarySectionsAllType.class, "key", key, "type", type, "subtype", subtype, @@ -261,11 +261,11 @@ public class GetAllMediaLibraryType { private Boolean active; - private Optional> filter = Optional.empty(); + private Optional> filter = Optional.empty(); - private Optional> sort = Optional.empty(); + private Optional> sort = Optional.empty(); - private Optional> field = Optional.empty(); + private Optional> field = Optional.empty(); private Builder() { // force use of static builder() method @@ -307,44 +307,44 @@ public class GetAllMediaLibraryType { return this; } - public Builder filter(List filter) { + public Builder filter(List filter) { Utils.checkNotNull(filter, "filter"); this.filter = Optional.ofNullable(filter); return this; } - public Builder filter(Optional> filter) { + public Builder filter(Optional> filter) { Utils.checkNotNull(filter, "filter"); this.filter = filter; return this; } - public Builder sort(List sort) { + public Builder sort(List sort) { Utils.checkNotNull(sort, "sort"); this.sort = Optional.ofNullable(sort); return this; } - public Builder sort(Optional> sort) { + public Builder sort(Optional> sort) { Utils.checkNotNull(sort, "sort"); this.sort = sort; return this; } - public Builder field(List field) { + public Builder field(List field) { Utils.checkNotNull(field, "field"); this.field = Optional.ofNullable(field); return this; } - public Builder field(Optional> field) { + public Builder field(Optional> field) { Utils.checkNotNull(field, "field"); this.field = field; return this; } - public GetAllMediaLibraryType build() { - return new GetAllMediaLibraryType( + public GetLibrarySectionsAllType build() { + return new GetLibrarySectionsAllType( key, type, subtype, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryUltraBlurColors.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllUltraBlurColors.java similarity index 85% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryUltraBlurColors.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllUltraBlurColors.java index ec5d0d63..939dd740 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryUltraBlurColors.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllUltraBlurColors.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryUltraBlurColors { +public class GetLibrarySectionsAllUltraBlurColors { @JsonProperty("topLeft") private String topLeft; @@ -26,7 +26,7 @@ public class GetAllMediaLibraryUltraBlurColors { private String bottomLeft; @JsonCreator - public GetAllMediaLibraryUltraBlurColors( + public GetLibrarySectionsAllUltraBlurColors( @JsonProperty("topLeft") String topLeft, @JsonProperty("topRight") String topRight, @JsonProperty("bottomRight") String bottomRight, @@ -65,25 +65,25 @@ public class GetAllMediaLibraryUltraBlurColors { return new Builder(); } - public GetAllMediaLibraryUltraBlurColors withTopLeft(String topLeft) { + public GetLibrarySectionsAllUltraBlurColors withTopLeft(String topLeft) { Utils.checkNotNull(topLeft, "topLeft"); this.topLeft = topLeft; return this; } - public GetAllMediaLibraryUltraBlurColors withTopRight(String topRight) { + public GetLibrarySectionsAllUltraBlurColors withTopRight(String topRight) { Utils.checkNotNull(topRight, "topRight"); this.topRight = topRight; return this; } - public GetAllMediaLibraryUltraBlurColors withBottomRight(String bottomRight) { + public GetLibrarySectionsAllUltraBlurColors withBottomRight(String bottomRight) { Utils.checkNotNull(bottomRight, "bottomRight"); this.bottomRight = bottomRight; return this; } - public GetAllMediaLibraryUltraBlurColors withBottomLeft(String bottomLeft) { + public GetLibrarySectionsAllUltraBlurColors withBottomLeft(String bottomLeft) { Utils.checkNotNull(bottomLeft, "bottomLeft"); this.bottomLeft = bottomLeft; return this; @@ -98,7 +98,7 @@ public class GetAllMediaLibraryUltraBlurColors { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryUltraBlurColors other = (GetAllMediaLibraryUltraBlurColors) o; + GetLibrarySectionsAllUltraBlurColors other = (GetLibrarySectionsAllUltraBlurColors) o; return Objects.deepEquals(this.topLeft, other.topLeft) && Objects.deepEquals(this.topRight, other.topRight) && @@ -117,7 +117,7 @@ public class GetAllMediaLibraryUltraBlurColors { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryUltraBlurColors.class, + return Utils.toString(GetLibrarySectionsAllUltraBlurColors.class, "topLeft", topLeft, "topRight", topRight, "bottomRight", bottomRight, @@ -162,8 +162,8 @@ public class GetAllMediaLibraryUltraBlurColors { return this; } - public GetAllMediaLibraryUltraBlurColors build() { - return new GetAllMediaLibraryUltraBlurColors( + public GetLibrarySectionsAllUltraBlurColors build() { + return new GetLibrarySectionsAllUltraBlurColors( topLeft, topRight, bottomRight, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryWriter.java b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllWriter.java similarity index 82% rename from src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryWriter.java rename to src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllWriter.java index fc20af2d..07456d75 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetAllMediaLibraryWriter.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetLibrarySectionsAllWriter.java @@ -11,7 +11,7 @@ import java.lang.Override; import java.lang.String; import java.util.Objects; -public class GetAllMediaLibraryWriter { +public class GetLibrarySectionsAllWriter { /** * The role of Writer @@ -20,7 +20,7 @@ public class GetAllMediaLibraryWriter { private String tag; @JsonCreator - public GetAllMediaLibraryWriter( + public GetLibrarySectionsAllWriter( @JsonProperty("tag") String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; @@ -41,7 +41,7 @@ public class GetAllMediaLibraryWriter { /** * The role of Writer */ - public GetAllMediaLibraryWriter withTag(String tag) { + public GetLibrarySectionsAllWriter withTag(String tag) { Utils.checkNotNull(tag, "tag"); this.tag = tag; return this; @@ -56,7 +56,7 @@ public class GetAllMediaLibraryWriter { if (o == null || getClass() != o.getClass()) { return false; } - GetAllMediaLibraryWriter other = (GetAllMediaLibraryWriter) o; + GetLibrarySectionsAllWriter other = (GetLibrarySectionsAllWriter) o; return Objects.deepEquals(this.tag, other.tag); } @@ -69,7 +69,7 @@ public class GetAllMediaLibraryWriter { @Override public String toString() { - return Utils.toString(GetAllMediaLibraryWriter.class, + return Utils.toString(GetLibrarySectionsAllWriter.class, "tag", tag); } @@ -90,8 +90,8 @@ public class GetAllMediaLibraryWriter { return this; } - public GetAllMediaLibraryWriter build() { - return new GetAllMediaLibraryWriter( + public GetLibrarySectionsAllWriter build() { + return new GetLibrarySectionsAllWriter( tag); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataCountry.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataCountry.java index 0689ae72..a48e0b6a 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataCountry.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataCountry.java @@ -5,15 +5,12 @@ package dev.plexapi.sdk.models.operations; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; -import java.util.Optional; /** * GetMediaMetaDataCountry @@ -22,6 +19,10 @@ import java.util.Optional; */ public class GetMediaMetaDataCountry { + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonProperty("id") private int id; @@ -31,15 +32,14 @@ public class GetMediaMetaDataCountry { @JsonProperty("tag") private String tag; - @JsonInclude(Include.NON_ABSENT) @JsonProperty("filter") - private Optional filter; + private String filter; @JsonCreator public GetMediaMetaDataCountry( @JsonProperty("id") int id, @JsonProperty("tag") String tag, - @JsonProperty("filter") Optional filter) { + @JsonProperty("filter") String filter) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(tag, "tag"); Utils.checkNotNull(filter, "filter"); @@ -47,13 +47,11 @@ public class GetMediaMetaDataCountry { this.tag = tag; this.filter = filter; } - - public GetMediaMetaDataCountry( - int id, - String tag) { - this(id, tag, Optional.empty()); - } + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonIgnore public int id() { return id; @@ -68,7 +66,7 @@ public class GetMediaMetaDataCountry { } @JsonIgnore - public Optional filter() { + public String filter() { return filter; } @@ -76,6 +74,10 @@ public class GetMediaMetaDataCountry { return new Builder(); } + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ public GetMediaMetaDataCountry withId(int id) { Utils.checkNotNull(id, "id"); this.id = id; @@ -92,12 +94,6 @@ public class GetMediaMetaDataCountry { } public GetMediaMetaDataCountry withFilter(String filter) { - Utils.checkNotNull(filter, "filter"); - this.filter = Optional.ofNullable(filter); - return this; - } - - public GetMediaMetaDataCountry withFilter(Optional filter) { Utils.checkNotNull(filter, "filter"); this.filter = filter; return this; @@ -141,12 +137,16 @@ public class GetMediaMetaDataCountry { private String tag; - private Optional filter = Optional.empty(); + private String filter; private Builder() { // force use of static builder() method } + /** + * The unique identifier for the country. + * NOTE: This is different for each Plex server and is not globally unique. + */ public Builder id(int id) { Utils.checkNotNull(id, "id"); this.id = id; @@ -163,12 +163,6 @@ public class GetMediaMetaDataCountry { } public Builder filter(String filter) { - Utils.checkNotNull(filter, "filter"); - this.filter = Optional.ofNullable(filter); - return this; - } - - public Builder filter(Optional filter) { Utils.checkNotNull(filter, "filter"); this.filter = filter; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataDirector.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataDirector.java index 1885f797..1e67f8cd 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataDirector.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataDirector.java @@ -36,14 +36,13 @@ public class GetMediaMetaDataDirector { private String filter; /** - * A unique key associated with the director's tag, used for internal identification. + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. */ - @JsonInclude(Include.NON_ABSENT) @JsonProperty("tagKey") - private Optional tagKey; + private String tagKey; /** - * The URL of the thumbnail image for the director. + * The absolute URL of the thumbnail image for the director. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("thumb") @@ -54,7 +53,7 @@ public class GetMediaMetaDataDirector { @JsonProperty("id") int id, @JsonProperty("tag") String tag, @JsonProperty("filter") String filter, - @JsonProperty("tagKey") Optional tagKey, + @JsonProperty("tagKey") String tagKey, @JsonProperty("thumb") Optional thumb) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(tag, "tag"); @@ -71,8 +70,9 @@ public class GetMediaMetaDataDirector { public GetMediaMetaDataDirector( int id, String tag, - String filter) { - this(id, tag, filter, Optional.empty(), Optional.empty()); + String filter, + String tagKey) { + this(id, tag, filter, tagKey, Optional.empty()); } /** @@ -100,15 +100,15 @@ public class GetMediaMetaDataDirector { } /** - * A unique key associated with the director's tag, used for internal identification. + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. */ @JsonIgnore - public Optional tagKey() { + public String tagKey() { return tagKey; } /** - * The URL of the thumbnail image for the director. + * The absolute URL of the thumbnail image for the director. */ @JsonIgnore public Optional thumb() { @@ -147,25 +147,16 @@ public class GetMediaMetaDataDirector { } /** - * A unique key associated with the director's tag, used for internal identification. + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. */ public GetMediaMetaDataDirector withTagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the director's tag, used for internal identification. - */ - public GetMediaMetaDataDirector withTagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; } /** - * The URL of the thumbnail image for the director. + * The absolute URL of the thumbnail image for the director. */ public GetMediaMetaDataDirector withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -174,7 +165,7 @@ public class GetMediaMetaDataDirector { } /** - * The URL of the thumbnail image for the director. + * The absolute URL of the thumbnail image for the director. */ public GetMediaMetaDataDirector withThumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -228,7 +219,7 @@ public class GetMediaMetaDataDirector { private String filter; - private Optional tagKey = Optional.empty(); + private String tagKey; private Optional thumb = Optional.empty(); @@ -264,25 +255,16 @@ public class GetMediaMetaDataDirector { } /** - * A unique key associated with the director's tag, used for internal identification. + * A unique 24-character hexadecimal key associated with the director's tag, used for internal identification. */ public Builder tagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the director's tag, used for internal identification. - */ - public Builder tagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; } /** - * The URL of the thumbnail image for the director. + * The absolute URL of the thumbnail image for the director. */ public Builder thumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -291,7 +273,7 @@ public class GetMediaMetaDataDirector { } /** - * The URL of the thumbnail image for the director. + * The absolute URL of the thumbnail image for the director. */ public Builder thumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGenre.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGenre.java index 4f344c25..f3a4f3f0 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGenre.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGenre.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; -import java.lang.Long; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; @@ -19,8 +19,12 @@ import java.util.Objects; */ public class GetMediaMetaDataGenre { + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonProperty("id") - private long id; + private int id; /** * The genre name of this media-item @@ -33,7 +37,7 @@ public class GetMediaMetaDataGenre { @JsonCreator public GetMediaMetaDataGenre( - @JsonProperty("id") long id, + @JsonProperty("id") int id, @JsonProperty("tag") String tag, @JsonProperty("filter") String filter) { Utils.checkNotNull(id, "id"); @@ -44,8 +48,12 @@ public class GetMediaMetaDataGenre { this.filter = filter; } + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ @JsonIgnore - public long id() { + public int id() { return id; } @@ -66,7 +74,11 @@ public class GetMediaMetaDataGenre { return new Builder(); } - public GetMediaMetaDataGenre withId(long id) { + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ + public GetMediaMetaDataGenre withId(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -121,7 +133,7 @@ public class GetMediaMetaDataGenre { public final static class Builder { - private Long id; + private Integer id; private String tag; @@ -131,7 +143,11 @@ public class GetMediaMetaDataGenre { // force use of static builder() method } - public Builder id(long id) { + /** + * The unique identifier for the genre. + * NOTE: This is different for each Plex server and is not globally unique. + */ + public Builder id(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGuids.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGuids.java index a6aa62eb..aca5c4b4 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGuids.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataGuids.java @@ -14,7 +14,7 @@ import java.util.Objects; public class GetMediaMetaDataGuids { /** - * The GUID value. + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ @JsonProperty("id") private String id; @@ -27,7 +27,7 @@ public class GetMediaMetaDataGuids { } /** - * The GUID value. + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ @JsonIgnore public String id() { @@ -39,7 +39,7 @@ public class GetMediaMetaDataGuids { } /** - * The GUID value. + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ public GetMediaMetaDataGuids withId(String id) { Utils.checkNotNull(id, "id"); @@ -82,7 +82,7 @@ public class GetMediaMetaDataGuids { } /** - * The GUID value. + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ public Builder id(String id) { Utils.checkNotNull(id, "id"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataMetadata.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataMetadata.java index 89513646..6eff9ea2 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataMetadata.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataMetadata.java @@ -406,6 +406,10 @@ public class GetMediaMetaDataMetadata { @JsonProperty("librarySectionKey") private String librarySectionKey; + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Guid") + private Optional> guids; + @JsonInclude(Include.NON_ABSENT) @JsonProperty("Media") private Optional> media; @@ -434,10 +438,6 @@ public class GetMediaMetaDataMetadata { @JsonProperty("Role") private Optional> role; - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Guid") - private Optional> guids; - @JsonInclude(Include.NON_ABSENT) @JsonProperty("Rating") private Optional> ratings; @@ -523,6 +523,7 @@ public class GetMediaMetaDataMetadata { @JsonProperty("librarySectionID") long librarySectionID, @JsonProperty("librarySectionTitle") String librarySectionTitle, @JsonProperty("librarySectionKey") String librarySectionKey, + @JsonProperty("Guid") Optional> guids, @JsonProperty("Media") Optional> media, @JsonProperty("Genre") Optional> genre, @JsonProperty("Country") Optional> country, @@ -530,7 +531,6 @@ public class GetMediaMetaDataMetadata { @JsonProperty("Writer") Optional> writer, @JsonProperty("Producer") Optional> producer, @JsonProperty("Role") Optional> role, - @JsonProperty("Guid") Optional> guids, @JsonProperty("Rating") Optional> ratings, @JsonProperty("Similar") Optional> similar, @JsonProperty("Location") Optional> location, @@ -596,6 +596,7 @@ public class GetMediaMetaDataMetadata { Utils.checkNotNull(librarySectionID, "librarySectionID"); Utils.checkNotNull(librarySectionTitle, "librarySectionTitle"); Utils.checkNotNull(librarySectionKey, "librarySectionKey"); + Utils.checkNotNull(guids, "guids"); Utils.checkNotNull(media, "media"); Utils.checkNotNull(genre, "genre"); Utils.checkNotNull(country, "country"); @@ -603,7 +604,6 @@ public class GetMediaMetaDataMetadata { Utils.checkNotNull(writer, "writer"); Utils.checkNotNull(producer, "producer"); Utils.checkNotNull(role, "role"); - Utils.checkNotNull(guids, "guids"); Utils.checkNotNull(ratings, "ratings"); Utils.checkNotNull(similar, "similar"); Utils.checkNotNull(location, "location"); @@ -669,6 +669,7 @@ public class GetMediaMetaDataMetadata { this.librarySectionID = librarySectionID; this.librarySectionTitle = librarySectionTitle; this.librarySectionKey = librarySectionKey; + this.guids = guids; this.media = media; this.genre = genre; this.country = country; @@ -676,7 +677,6 @@ public class GetMediaMetaDataMetadata { this.writer = writer; this.producer = producer; this.role = role; - this.guids = guids; this.ratings = ratings; this.similar = similar; this.location = location; @@ -1174,6 +1174,12 @@ public class GetMediaMetaDataMetadata { return librarySectionKey; } + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional> guids() { + return (Optional>) guids; + } + @SuppressWarnings("unchecked") @JsonIgnore public Optional> media() { @@ -1216,12 +1222,6 @@ public class GetMediaMetaDataMetadata { return (Optional>) role; } - @SuppressWarnings("unchecked") - @JsonIgnore - public Optional> guids() { - return (Optional>) guids; - } - @SuppressWarnings("unchecked") @JsonIgnore public Optional> ratings() { @@ -2099,6 +2099,18 @@ public class GetMediaMetaDataMetadata { return this; } + public GetMediaMetaDataMetadata withGuids(List guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = Optional.ofNullable(guids); + return this; + } + + public GetMediaMetaDataMetadata withGuids(Optional> guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = guids; + return this; + } + public GetMediaMetaDataMetadata withMedia(List media) { Utils.checkNotNull(media, "media"); this.media = Optional.ofNullable(media); @@ -2183,18 +2195,6 @@ public class GetMediaMetaDataMetadata { return this; } - public GetMediaMetaDataMetadata withGuids(List guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = Optional.ofNullable(guids); - return this; - } - - public GetMediaMetaDataMetadata withGuids(Optional> guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = guids; - return this; - } - public GetMediaMetaDataMetadata withRatings(List ratings) { Utils.checkNotNull(ratings, "ratings"); this.ratings = Optional.ofNullable(ratings); @@ -2337,6 +2337,7 @@ public class GetMediaMetaDataMetadata { Objects.deepEquals(this.librarySectionID, other.librarySectionID) && Objects.deepEquals(this.librarySectionTitle, other.librarySectionTitle) && Objects.deepEquals(this.librarySectionKey, other.librarySectionKey) && + Objects.deepEquals(this.guids, other.guids) && Objects.deepEquals(this.media, other.media) && Objects.deepEquals(this.genre, other.genre) && Objects.deepEquals(this.country, other.country) && @@ -2344,7 +2345,6 @@ public class GetMediaMetaDataMetadata { Objects.deepEquals(this.writer, other.writer) && Objects.deepEquals(this.producer, other.producer) && Objects.deepEquals(this.role, other.role) && - Objects.deepEquals(this.guids, other.guids) && Objects.deepEquals(this.ratings, other.ratings) && Objects.deepEquals(this.similar, other.similar) && Objects.deepEquals(this.location, other.location) && @@ -2415,6 +2415,7 @@ public class GetMediaMetaDataMetadata { librarySectionID, librarySectionTitle, librarySectionKey, + guids, media, genre, country, @@ -2422,7 +2423,6 @@ public class GetMediaMetaDataMetadata { writer, producer, role, - guids, ratings, similar, location, @@ -2493,6 +2493,7 @@ public class GetMediaMetaDataMetadata { "librarySectionID", librarySectionID, "librarySectionTitle", librarySectionTitle, "librarySectionKey", librarySectionKey, + "guids", guids, "media", media, "genre", genre, "country", country, @@ -2500,7 +2501,6 @@ public class GetMediaMetaDataMetadata { "writer", writer, "producer", producer, "role", role, - "guids", guids, "ratings", ratings, "similar", similar, "location", location, @@ -2629,6 +2629,8 @@ public class GetMediaMetaDataMetadata { private String librarySectionKey; + private Optional> guids = Optional.empty(); + private Optional> media = Optional.empty(); private Optional> genre = Optional.empty(); @@ -2643,8 +2645,6 @@ public class GetMediaMetaDataMetadata { private Optional> role = Optional.empty(); - private Optional> guids = Optional.empty(); - private Optional> ratings = Optional.empty(); private Optional> similar = Optional.empty(); @@ -3498,6 +3498,18 @@ public class GetMediaMetaDataMetadata { return this; } + public Builder guids(List guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = Optional.ofNullable(guids); + return this; + } + + public Builder guids(Optional> guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = guids; + return this; + } + public Builder media(List media) { Utils.checkNotNull(media, "media"); this.media = Optional.ofNullable(media); @@ -3582,18 +3594,6 @@ public class GetMediaMetaDataMetadata { return this; } - public Builder guids(List guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = Optional.ofNullable(guids); - return this; - } - - public Builder guids(Optional> guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = guids; - return this; - } - public Builder ratings(List ratings) { Utils.checkNotNull(ratings, "ratings"); this.ratings = Optional.ofNullable(ratings); @@ -3727,6 +3727,7 @@ public class GetMediaMetaDataMetadata { librarySectionID, librarySectionTitle, librarySectionKey, + guids, media, genre, country, @@ -3734,7 +3735,6 @@ public class GetMediaMetaDataMetadata { writer, producer, role, - guids, ratings, similar, location, diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRequest.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRequest.java index eac20d87..40a3791f 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRequest.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRequest.java @@ -8,7 +8,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import dev.plexapi.sdk.utils.SpeakeasyMetadata; import dev.plexapi.sdk.utils.Utils; import java.lang.Boolean; -import java.lang.Long; import java.lang.Override; import java.lang.String; import java.util.Objects; @@ -17,10 +16,10 @@ import java.util.Optional; public class GetMediaMetaDataRequest { /** - * the id of the library item to return the children of. + * The id(s) of the library item(s) to return metadata for. Can be a single ID or comma-separated list of IDs. */ @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey") - private long ratingKey; + private String ratingKey; /** * Include concerts data if set to true. @@ -102,7 +101,7 @@ public class GetMediaMetaDataRequest { @JsonCreator public GetMediaMetaDataRequest( - long ratingKey, + String ratingKey, Optional includeConcerts, Optional includeExtras, Optional includeOnDeck, @@ -147,15 +146,15 @@ public class GetMediaMetaDataRequest { } public GetMediaMetaDataRequest( - long ratingKey) { + String ratingKey) { this(ratingKey, Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); } /** - * the id of the library item to return the children of. + * The id(s) of the library item(s) to return metadata for. Can be a single ID or comma-separated list of IDs. */ @JsonIgnore - public long ratingKey() { + public String ratingKey() { return ratingKey; } @@ -268,9 +267,9 @@ public class GetMediaMetaDataRequest { } /** - * the id of the library item to return the children of. + * The id(s) of the library item(s) to return metadata for. Can be a single ID or comma-separated list of IDs. */ - public GetMediaMetaDataRequest withRatingKey(long ratingKey) { + public GetMediaMetaDataRequest withRatingKey(String ratingKey) { Utils.checkNotNull(ratingKey, "ratingKey"); this.ratingKey = ratingKey; return this; @@ -577,7 +576,7 @@ public class GetMediaMetaDataRequest { public final static class Builder { - private Long ratingKey; + private String ratingKey; private Optional includeConcerts = Optional.empty(); @@ -610,9 +609,9 @@ public class GetMediaMetaDataRequest { } /** - * the id of the library item to return the children of. + * The id(s) of the library item(s) to return metadata for. Can be a single ID or comma-separated list of IDs. */ - public Builder ratingKey(long ratingKey) { + public Builder ratingKey(String ratingKey) { Utils.checkNotNull(ratingKey, "ratingKey"); this.ratingKey = ratingKey; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRole.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRole.java index dee95335..d4af138d 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRole.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataRole.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; -import java.lang.Long; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; @@ -18,10 +18,11 @@ import java.util.Optional; public class GetMediaMetaDataRole { /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ @JsonProperty("id") - private long id; + private int id; /** * The display tag for the actor (typically the actor's name). @@ -43,14 +44,14 @@ public class GetMediaMetaDataRole { private String filter; /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ - @JsonInclude(Include.NON_ABSENT) @JsonProperty("tagKey") - private Optional tagKey; + private String tagKey; /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("thumb") @@ -58,11 +59,11 @@ public class GetMediaMetaDataRole { @JsonCreator public GetMediaMetaDataRole( - @JsonProperty("id") long id, + @JsonProperty("id") int id, @JsonProperty("tag") String tag, @JsonProperty("role") Optional role, @JsonProperty("filter") String filter, - @JsonProperty("tagKey") Optional tagKey, + @JsonProperty("tagKey") String tagKey, @JsonProperty("thumb") Optional thumb) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(tag, "tag"); @@ -79,17 +80,19 @@ public class GetMediaMetaDataRole { } public GetMediaMetaDataRole( - long id, + int id, String tag, - String filter) { - this(id, tag, Optional.empty(), filter, Optional.empty(), Optional.empty()); + String filter, + String tagKey) { + this(id, tag, Optional.empty(), filter, tagKey, Optional.empty()); } /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ @JsonIgnore - public long id() { + public int id() { return id; } @@ -118,15 +121,16 @@ public class GetMediaMetaDataRole { } /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ @JsonIgnore - public Optional tagKey() { + public String tagKey() { return tagKey; } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ @JsonIgnore public Optional thumb() { @@ -138,9 +142,10 @@ public class GetMediaMetaDataRole { } /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ - public GetMediaMetaDataRole withId(long id) { + public GetMediaMetaDataRole withId(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -183,25 +188,17 @@ public class GetMediaMetaDataRole { } /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ public GetMediaMetaDataRole withTagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the actor's tag, used for internal identification. - */ - public GetMediaMetaDataRole withTagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public GetMediaMetaDataRole withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -210,7 +207,7 @@ public class GetMediaMetaDataRole { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public GetMediaMetaDataRole withThumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -261,7 +258,7 @@ public class GetMediaMetaDataRole { public final static class Builder { - private Long id; + private Integer id; private String tag; @@ -269,7 +266,7 @@ public class GetMediaMetaDataRole { private String filter; - private Optional tagKey = Optional.empty(); + private String tagKey; private Optional thumb = Optional.empty(); @@ -278,9 +275,10 @@ public class GetMediaMetaDataRole { } /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ - public Builder id(long id) { + public Builder id(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -323,25 +321,17 @@ public class GetMediaMetaDataRole { } /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ public Builder tagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the actor's tag, used for internal identification. - */ - public Builder tagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public Builder thumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -350,7 +340,7 @@ public class GetMediaMetaDataRole { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public Builder thumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataType.java index 482adebd..123af9ea 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataType.java @@ -44,7 +44,7 @@ import java.util.Optional; /** * GetMediaMetaDataType * - *

The type of media content + *

The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonDeserialize(using = GetMediaMetaDataType._Deserializer.class) @JsonSerialize(using = GetMediaMetaDataType._Serializer.class) @@ -56,6 +56,10 @@ public class GetMediaMetaDataType { public static final GetMediaMetaDataType Episode = new GetMediaMetaDataType("episode"); public static final GetMediaMetaDataType Artist = new GetMediaMetaDataType("artist"); public static final GetMediaMetaDataType Album = new GetMediaMetaDataType("album"); + public static final GetMediaMetaDataType Track = new GetMediaMetaDataType("track"); + public static final GetMediaMetaDataType PhotoAlbum = new GetMediaMetaDataType("photoalbum"); + public static final GetMediaMetaDataType Photo = new GetMediaMetaDataType("photo"); + public static final GetMediaMetaDataType Collection = new GetMediaMetaDataType("collection"); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -133,6 +137,10 @@ public class GetMediaMetaDataType { map.put("episode", Episode); map.put("artist", Artist); map.put("album", Album); + map.put("track", Track); + map.put("photoalbum", PhotoAlbum); + map.put("photo", Photo); + map.put("collection", Collection); return map; } @@ -144,6 +152,10 @@ public class GetMediaMetaDataType { map.put("episode", GetMediaMetaDataTypeEnum.Episode); map.put("artist", GetMediaMetaDataTypeEnum.Artist); map.put("album", GetMediaMetaDataTypeEnum.Album); + map.put("track", GetMediaMetaDataTypeEnum.Track); + map.put("photoalbum", GetMediaMetaDataTypeEnum.PhotoAlbum); + map.put("photo", GetMediaMetaDataTypeEnum.Photo); + map.put("collection", GetMediaMetaDataTypeEnum.Collection); return map; } @@ -184,7 +196,11 @@ public class GetMediaMetaDataType { Season("season"), Episode("episode"), Artist("artist"), - Album("album"),; + Album("album"), + Track("track"), + PhotoAlbum("photoalbum"), + Photo("photo"), + Collection("collection"),; private final String value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataWriter.java b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataWriter.java index 7e31bf50..672e1d94 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataWriter.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetMediaMetaDataWriter.java @@ -36,14 +36,14 @@ public class GetMediaMetaDataWriter { private String filter; /** - * The URL of the thumbnail image for the writer. + * The absolute URL of the thumbnail image for the writer. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("thumb") private Optional thumb; /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("tagKey") @@ -100,7 +100,7 @@ public class GetMediaMetaDataWriter { } /** - * The URL of the thumbnail image for the writer. + * The absolute URL of the thumbnail image for the writer. */ @JsonIgnore public Optional thumb() { @@ -108,7 +108,7 @@ public class GetMediaMetaDataWriter { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ @JsonIgnore public Optional tagKey() { @@ -147,7 +147,7 @@ public class GetMediaMetaDataWriter { } /** - * The URL of the thumbnail image for the writer. + * The absolute URL of the thumbnail image for the writer. */ public GetMediaMetaDataWriter withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -156,7 +156,7 @@ public class GetMediaMetaDataWriter { } /** - * The URL of the thumbnail image for the writer. + * The absolute URL of the thumbnail image for the writer. */ public GetMediaMetaDataWriter withThumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -165,7 +165,7 @@ public class GetMediaMetaDataWriter { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public GetMediaMetaDataWriter withTagKey(String tagKey) { Utils.checkNotNull(tagKey, "tagKey"); @@ -174,7 +174,7 @@ public class GetMediaMetaDataWriter { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public GetMediaMetaDataWriter withTagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); @@ -264,7 +264,7 @@ public class GetMediaMetaDataWriter { } /** - * The URL of the thumbnail image for the writer. + * The absolute URL of the thumbnail image for the writer. */ public Builder thumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -273,7 +273,7 @@ public class GetMediaMetaDataWriter { } /** - * The URL of the thumbnail image for the writer. + * The absolute URL of the thumbnail image for the writer. */ public Builder thumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -282,7 +282,7 @@ public class GetMediaMetaDataWriter { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public Builder tagKey(String tagKey) { Utils.checkNotNull(tagKey, "tagKey"); @@ -291,7 +291,7 @@ public class GetMediaMetaDataWriter { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public Builder tagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetPlaylistContentsQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetPlaylistContentsQueryParamType.java index ecc81d30..f0a63707 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetPlaylistContentsQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetPlaylistContentsQueryParamType.java @@ -60,9 +60,11 @@ public class GetPlaylistContentsQueryParamType { public static final GetPlaylistContentsQueryParamType TvShow = new GetPlaylistContentsQueryParamType(2L); public static final GetPlaylistContentsQueryParamType Season = new GetPlaylistContentsQueryParamType(3L); public static final GetPlaylistContentsQueryParamType Episode = new GetPlaylistContentsQueryParamType(4L); - public static final GetPlaylistContentsQueryParamType Audio = new GetPlaylistContentsQueryParamType(8L); - public static final GetPlaylistContentsQueryParamType Album = new GetPlaylistContentsQueryParamType(9L); - public static final GetPlaylistContentsQueryParamType Track = new GetPlaylistContentsQueryParamType(10L); + public static final GetPlaylistContentsQueryParamType Artist = new GetPlaylistContentsQueryParamType(5L); + public static final GetPlaylistContentsQueryParamType Album = new GetPlaylistContentsQueryParamType(6L); + public static final GetPlaylistContentsQueryParamType Track = new GetPlaylistContentsQueryParamType(7L); + public static final GetPlaylistContentsQueryParamType PhotoAlbum = new GetPlaylistContentsQueryParamType(8L); + public static final GetPlaylistContentsQueryParamType Photo = new GetPlaylistContentsQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class GetPlaylistContentsQueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class GetPlaylistContentsQueryParamType { map.put(2L, GetPlaylistContentsQueryParamTypeEnum.TvShow); map.put(3L, GetPlaylistContentsQueryParamTypeEnum.Season); map.put(4L, GetPlaylistContentsQueryParamTypeEnum.Episode); - map.put(8L, GetPlaylistContentsQueryParamTypeEnum.Audio); - map.put(9L, GetPlaylistContentsQueryParamTypeEnum.Album); - map.put(10L, GetPlaylistContentsQueryParamTypeEnum.Track); + map.put(5L, GetPlaylistContentsQueryParamTypeEnum.Artist); + map.put(6L, GetPlaylistContentsQueryParamTypeEnum.Album); + map.put(7L, GetPlaylistContentsQueryParamTypeEnum.Track); + map.put(8L, GetPlaylistContentsQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetPlaylistContentsQueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class GetPlaylistContentsQueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedHubsType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedHubsType.java index 98817966..dffa49fe 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedHubsType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedHubsType.java @@ -44,7 +44,7 @@ import java.util.Optional; /** * GetRecentlyAddedHubsType * - *

The type of media content + *

The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonDeserialize(using = GetRecentlyAddedHubsType._Deserializer.class) @JsonSerialize(using = GetRecentlyAddedHubsType._Serializer.class) @@ -56,6 +56,10 @@ public class GetRecentlyAddedHubsType { public static final GetRecentlyAddedHubsType Episode = new GetRecentlyAddedHubsType("episode"); public static final GetRecentlyAddedHubsType Artist = new GetRecentlyAddedHubsType("artist"); public static final GetRecentlyAddedHubsType Album = new GetRecentlyAddedHubsType("album"); + public static final GetRecentlyAddedHubsType Track = new GetRecentlyAddedHubsType("track"); + public static final GetRecentlyAddedHubsType PhotoAlbum = new GetRecentlyAddedHubsType("photoalbum"); + public static final GetRecentlyAddedHubsType Photo = new GetRecentlyAddedHubsType("photo"); + public static final GetRecentlyAddedHubsType Collection = new GetRecentlyAddedHubsType("collection"); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -133,6 +137,10 @@ public class GetRecentlyAddedHubsType { map.put("episode", Episode); map.put("artist", Artist); map.put("album", Album); + map.put("track", Track); + map.put("photoalbum", PhotoAlbum); + map.put("photo", Photo); + map.put("collection", Collection); return map; } @@ -144,6 +152,10 @@ public class GetRecentlyAddedHubsType { map.put("episode", GetRecentlyAddedHubsTypeEnum.Episode); map.put("artist", GetRecentlyAddedHubsTypeEnum.Artist); map.put("album", GetRecentlyAddedHubsTypeEnum.Album); + map.put("track", GetRecentlyAddedHubsTypeEnum.Track); + map.put("photoalbum", GetRecentlyAddedHubsTypeEnum.PhotoAlbum); + map.put("photo", GetRecentlyAddedHubsTypeEnum.Photo); + map.put("collection", GetRecentlyAddedHubsTypeEnum.Collection); return map; } @@ -184,7 +196,11 @@ public class GetRecentlyAddedHubsType { Season("season"), Episode("episode"), Artist("artist"), - Album("album"),; + Album("album"), + Track("track"), + PhotoAlbum("photoalbum"), + Photo("photo"), + Collection("collection"),; private final String value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedMetadata.java b/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedMetadata.java index b07636f3..06428b70 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedMetadata.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetRecentlyAddedMetadata.java @@ -432,6 +432,10 @@ public class GetRecentlyAddedMetadata { @JsonProperty("UltraBlurColors") private Optional ultraBlurColors; + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Guid") + private Optional> guids; + @JsonInclude(Include.NON_ABSENT) @JsonProperty("Media") private Optional> media; @@ -472,10 +476,6 @@ public class GetRecentlyAddedMetadata { @JsonProperty("Location") private Optional> location; - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("Guid") - private Optional> guids; - @JsonInclude(Include.NON_ABSENT) @JsonProperty("Collection") private Optional> collection; @@ -545,6 +545,7 @@ public class GetRecentlyAddedMetadata { @JsonProperty("year") Optional year, @JsonProperty("Image") Optional> image, @JsonProperty("UltraBlurColors") Optional ultraBlurColors, + @JsonProperty("Guid") Optional> guids, @JsonProperty("Media") Optional> media, @JsonProperty("Genre") Optional> genre, @JsonProperty("Country") Optional> country, @@ -555,7 +556,6 @@ public class GetRecentlyAddedMetadata { @JsonProperty("Rating") Optional> rating1, @JsonProperty("Similar") Optional> similar, @JsonProperty("Location") Optional> location, - @JsonProperty("Guid") Optional> guids, @JsonProperty("Collection") Optional> collection) { Utils.checkNotNull(addedAt, "addedAt"); Utils.checkNotNull(art, "art"); @@ -620,6 +620,7 @@ public class GetRecentlyAddedMetadata { Utils.checkNotNull(year, "year"); Utils.checkNotNull(image, "image"); Utils.checkNotNull(ultraBlurColors, "ultraBlurColors"); + Utils.checkNotNull(guids, "guids"); Utils.checkNotNull(media, "media"); Utils.checkNotNull(genre, "genre"); Utils.checkNotNull(country, "country"); @@ -630,7 +631,6 @@ public class GetRecentlyAddedMetadata { Utils.checkNotNull(rating1, "rating1"); Utils.checkNotNull(similar, "similar"); Utils.checkNotNull(location, "location"); - Utils.checkNotNull(guids, "guids"); Utils.checkNotNull(collection, "collection"); this.addedAt = addedAt; this.art = art; @@ -695,6 +695,7 @@ public class GetRecentlyAddedMetadata { this.year = year; this.image = image; this.ultraBlurColors = ultraBlurColors; + this.guids = guids; this.media = media; this.genre = genre; this.country = country; @@ -705,7 +706,6 @@ public class GetRecentlyAddedMetadata { this.rating1 = rating1; this.similar = similar; this.location = location; - this.guids = guids; this.collection = collection; } @@ -1232,6 +1232,12 @@ public class GetRecentlyAddedMetadata { return (Optional) ultraBlurColors; } + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional> guids() { + return (Optional>) guids; + } + @SuppressWarnings("unchecked") @JsonIgnore public Optional> media() { @@ -1292,12 +1298,6 @@ public class GetRecentlyAddedMetadata { return (Optional>) location; } - @SuppressWarnings("unchecked") - @JsonIgnore - public Optional> guids() { - return (Optional>) guids; - } - @SuppressWarnings("unchecked") @JsonIgnore public Optional> collection() { @@ -2199,6 +2199,18 @@ public class GetRecentlyAddedMetadata { return this; } + public GetRecentlyAddedMetadata withGuids(List guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = Optional.ofNullable(guids); + return this; + } + + public GetRecentlyAddedMetadata withGuids(Optional> guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = guids; + return this; + } + public GetRecentlyAddedMetadata withMedia(List media) { Utils.checkNotNull(media, "media"); this.media = Optional.ofNullable(media); @@ -2319,18 +2331,6 @@ public class GetRecentlyAddedMetadata { return this; } - public GetRecentlyAddedMetadata withGuids(List guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = Optional.ofNullable(guids); - return this; - } - - public GetRecentlyAddedMetadata withGuids(Optional> guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = guids; - return this; - } - public GetRecentlyAddedMetadata withCollection(List collection) { Utils.checkNotNull(collection, "collection"); this.collection = Optional.ofNullable(collection); @@ -2417,6 +2417,7 @@ public class GetRecentlyAddedMetadata { Objects.deepEquals(this.year, other.year) && Objects.deepEquals(this.image, other.image) && Objects.deepEquals(this.ultraBlurColors, other.ultraBlurColors) && + Objects.deepEquals(this.guids, other.guids) && Objects.deepEquals(this.media, other.media) && Objects.deepEquals(this.genre, other.genre) && Objects.deepEquals(this.country, other.country) && @@ -2427,7 +2428,6 @@ public class GetRecentlyAddedMetadata { Objects.deepEquals(this.rating1, other.rating1) && Objects.deepEquals(this.similar, other.similar) && Objects.deepEquals(this.location, other.location) && - Objects.deepEquals(this.guids, other.guids) && Objects.deepEquals(this.collection, other.collection); } @@ -2497,6 +2497,7 @@ public class GetRecentlyAddedMetadata { year, image, ultraBlurColors, + guids, media, genre, country, @@ -2507,7 +2508,6 @@ public class GetRecentlyAddedMetadata { rating1, similar, location, - guids, collection); } @@ -2577,6 +2577,7 @@ public class GetRecentlyAddedMetadata { "year", year, "image", image, "ultraBlurColors", ultraBlurColors, + "guids", guids, "media", media, "genre", genre, "country", country, @@ -2587,7 +2588,6 @@ public class GetRecentlyAddedMetadata { "rating1", rating1, "similar", similar, "location", location, - "guids", guids, "collection", collection); } @@ -2719,6 +2719,8 @@ public class GetRecentlyAddedMetadata { private Optional ultraBlurColors = Optional.empty(); + private Optional> guids = Optional.empty(); + private Optional> media = Optional.empty(); private Optional> genre = Optional.empty(); @@ -2739,8 +2741,6 @@ public class GetRecentlyAddedMetadata { private Optional> location = Optional.empty(); - private Optional> guids = Optional.empty(); - private Optional> collection = Optional.empty(); private Builder() { @@ -3638,6 +3638,18 @@ public class GetRecentlyAddedMetadata { return this; } + public Builder guids(List guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = Optional.ofNullable(guids); + return this; + } + + public Builder guids(Optional> guids) { + Utils.checkNotNull(guids, "guids"); + this.guids = guids; + return this; + } + public Builder media(List media) { Utils.checkNotNull(media, "media"); this.media = Optional.ofNullable(media); @@ -3758,18 +3770,6 @@ public class GetRecentlyAddedMetadata { return this; } - public Builder guids(List guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = Optional.ofNullable(guids); - return this; - } - - public Builder guids(Optional> guids) { - Utils.checkNotNull(guids, "guids"); - this.guids = guids; - return this; - } - public Builder collection(List collection) { Utils.checkNotNull(collection, "collection"); this.collection = Optional.ofNullable(collection); @@ -3847,6 +3847,7 @@ public class GetRecentlyAddedMetadata { year, image, ultraBlurColors, + guids, media, genre, country, @@ -3857,7 +3858,6 @@ public class GetRecentlyAddedMetadata { rating1, similar, location, - guids, collection); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesMetadata.java b/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesMetadata.java index 04618401..a2267c0f 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesMetadata.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesMetadata.java @@ -57,7 +57,7 @@ public class GetSearchAllLibrariesMetadata { private Optional librarySectionKey; /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonProperty("type") private GetSearchAllLibrariesType type; @@ -647,7 +647,7 @@ public class GetSearchAllLibrariesMetadata { } /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonIgnore public GetSearchAllLibrariesType type() { @@ -1124,7 +1124,7 @@ public class GetSearchAllLibrariesMetadata { } /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ public GetSearchAllLibrariesMetadata withType(GetSearchAllLibrariesType type) { Utils.checkNotNull(type, "type"); @@ -2471,7 +2471,7 @@ public class GetSearchAllLibrariesMetadata { } /** - * The type of media content + * The type of media content in the Plex library. This can represent videos, music, or photos. */ public Builder type(GetSearchAllLibrariesType type) { Utils.checkNotNull(type, "type"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesType.java index ac414b7c..4799f86d 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesType.java @@ -44,7 +44,7 @@ import java.util.Optional; /** * GetSearchAllLibrariesType * - *

The type of media content + *

The type of media content in the Plex library. This can represent videos, music, or photos. */ @JsonDeserialize(using = GetSearchAllLibrariesType._Deserializer.class) @JsonSerialize(using = GetSearchAllLibrariesType._Serializer.class) @@ -56,6 +56,10 @@ public class GetSearchAllLibrariesType { public static final GetSearchAllLibrariesType Episode = new GetSearchAllLibrariesType("episode"); public static final GetSearchAllLibrariesType Artist = new GetSearchAllLibrariesType("artist"); public static final GetSearchAllLibrariesType Album = new GetSearchAllLibrariesType("album"); + public static final GetSearchAllLibrariesType Track = new GetSearchAllLibrariesType("track"); + public static final GetSearchAllLibrariesType PhotoAlbum = new GetSearchAllLibrariesType("photoalbum"); + public static final GetSearchAllLibrariesType Photo = new GetSearchAllLibrariesType("photo"); + public static final GetSearchAllLibrariesType Collection = new GetSearchAllLibrariesType("collection"); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -133,6 +137,10 @@ public class GetSearchAllLibrariesType { map.put("episode", Episode); map.put("artist", Artist); map.put("album", Album); + map.put("track", Track); + map.put("photoalbum", PhotoAlbum); + map.put("photo", Photo); + map.put("collection", Collection); return map; } @@ -144,6 +152,10 @@ public class GetSearchAllLibrariesType { map.put("episode", GetSearchAllLibrariesTypeEnum.Episode); map.put("artist", GetSearchAllLibrariesTypeEnum.Artist); map.put("album", GetSearchAllLibrariesTypeEnum.Album); + map.put("track", GetSearchAllLibrariesTypeEnum.Track); + map.put("photoalbum", GetSearchAllLibrariesTypeEnum.PhotoAlbum); + map.put("photo", GetSearchAllLibrariesTypeEnum.Photo); + map.put("collection", GetSearchAllLibrariesTypeEnum.Collection); return map; } @@ -184,7 +196,11 @@ public class GetSearchAllLibrariesType { Season("season"), Episode("episode"), Artist("artist"), - Album("album"),; + Album("album"), + Track("track"), + PhotoAlbum("photoalbum"), + Photo("photo"), + Collection("collection"),; private final String value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetSearchLibraryQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetSearchLibraryQueryParamType.java index 14648ed0..38b93e79 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetSearchLibraryQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetSearchLibraryQueryParamType.java @@ -60,9 +60,11 @@ public class GetSearchLibraryQueryParamType { public static final GetSearchLibraryQueryParamType TvShow = new GetSearchLibraryQueryParamType(2L); public static final GetSearchLibraryQueryParamType Season = new GetSearchLibraryQueryParamType(3L); public static final GetSearchLibraryQueryParamType Episode = new GetSearchLibraryQueryParamType(4L); - public static final GetSearchLibraryQueryParamType Audio = new GetSearchLibraryQueryParamType(8L); - public static final GetSearchLibraryQueryParamType Album = new GetSearchLibraryQueryParamType(9L); - public static final GetSearchLibraryQueryParamType Track = new GetSearchLibraryQueryParamType(10L); + public static final GetSearchLibraryQueryParamType Artist = new GetSearchLibraryQueryParamType(5L); + public static final GetSearchLibraryQueryParamType Album = new GetSearchLibraryQueryParamType(6L); + public static final GetSearchLibraryQueryParamType Track = new GetSearchLibraryQueryParamType(7L); + public static final GetSearchLibraryQueryParamType PhotoAlbum = new GetSearchLibraryQueryParamType(8L); + public static final GetSearchLibraryQueryParamType Photo = new GetSearchLibraryQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class GetSearchLibraryQueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class GetSearchLibraryQueryParamType { map.put(2L, GetSearchLibraryQueryParamTypeEnum.TvShow); map.put(3L, GetSearchLibraryQueryParamTypeEnum.Season); map.put(4L, GetSearchLibraryQueryParamTypeEnum.Episode); - map.put(8L, GetSearchLibraryQueryParamTypeEnum.Audio); - map.put(9L, GetSearchLibraryQueryParamTypeEnum.Album); - map.put(10L, GetSearchLibraryQueryParamTypeEnum.Track); + map.put(5L, GetSearchLibraryQueryParamTypeEnum.Artist); + map.put(6L, GetSearchLibraryQueryParamTypeEnum.Album); + map.put(7L, GetSearchLibraryQueryParamTypeEnum.Track); + map.put(8L, GetSearchLibraryQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetSearchLibraryQueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class GetSearchLibraryQueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentMediaContainer.java b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentMediaContainer.java index 7ac93515..4d960356 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentMediaContainer.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentMediaContainer.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; import java.lang.Boolean; import java.lang.Integer; +import java.lang.Long; import java.lang.Override; import java.lang.String; import java.lang.SuppressWarnings; @@ -20,25 +21,35 @@ import java.util.Optional; public class GetTopWatchedContentMediaContainer { - @JsonInclude(Include.NON_ABSENT) + /** + * Number of media items returned in this response. + */ @JsonProperty("size") - private Optional size; + private int size; - @JsonInclude(Include.NON_ABSENT) + /** + * Indicates whether syncing is allowed. + */ @JsonProperty("allowSync") - private Optional allowSync; + private boolean allowSync; - @JsonInclude(Include.NON_ABSENT) + /** + * An plugin identifier for the media container. + */ @JsonProperty("identifier") - private Optional identifier; + private String identifier; - @JsonInclude(Include.NON_ABSENT) + /** + * The prefix used for media tag resource paths. + */ @JsonProperty("mediaTagPrefix") - private Optional mediaTagPrefix; + private String mediaTagPrefix; - @JsonInclude(Include.NON_ABSENT) + /** + * The version number for media tags. + */ @JsonProperty("mediaTagVersion") - private Optional mediaTagVersion; + private long mediaTagVersion; @JsonInclude(Include.NON_ABSENT) @JsonProperty("Metadata") @@ -46,11 +57,11 @@ public class GetTopWatchedContentMediaContainer { @JsonCreator public GetTopWatchedContentMediaContainer( - @JsonProperty("size") Optional size, - @JsonProperty("allowSync") Optional allowSync, - @JsonProperty("identifier") Optional identifier, - @JsonProperty("mediaTagPrefix") Optional mediaTagPrefix, - @JsonProperty("mediaTagVersion") Optional mediaTagVersion, + @JsonProperty("size") int size, + @JsonProperty("allowSync") boolean allowSync, + @JsonProperty("identifier") String identifier, + @JsonProperty("mediaTagPrefix") String mediaTagPrefix, + @JsonProperty("mediaTagVersion") long mediaTagVersion, @JsonProperty("Metadata") Optional> metadata) { Utils.checkNotNull(size, "size"); Utils.checkNotNull(allowSync, "allowSync"); @@ -66,32 +77,52 @@ public class GetTopWatchedContentMediaContainer { this.metadata = metadata; } - public GetTopWatchedContentMediaContainer() { - this(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty()); + public GetTopWatchedContentMediaContainer( + int size, + boolean allowSync, + String identifier, + String mediaTagPrefix, + long mediaTagVersion) { + this(size, allowSync, identifier, mediaTagPrefix, mediaTagVersion, Optional.empty()); } + /** + * Number of media items returned in this response. + */ @JsonIgnore - public Optional size() { + public int size() { return size; } + /** + * Indicates whether syncing is allowed. + */ @JsonIgnore - public Optional allowSync() { + public boolean allowSync() { return allowSync; } + /** + * An plugin identifier for the media container. + */ @JsonIgnore - public Optional identifier() { + public String identifier() { return identifier; } + /** + * The prefix used for media tag resource paths. + */ @JsonIgnore - public Optional mediaTagPrefix() { + public String mediaTagPrefix() { return mediaTagPrefix; } + /** + * The version number for media tags. + */ @JsonIgnore - public Optional mediaTagVersion() { + public long mediaTagVersion() { return mediaTagVersion; } @@ -105,61 +136,46 @@ public class GetTopWatchedContentMediaContainer { return new Builder(); } + /** + * Number of media items returned in this response. + */ public GetTopWatchedContentMediaContainer withSize(int size) { - Utils.checkNotNull(size, "size"); - this.size = Optional.ofNullable(size); - return this; - } - - public GetTopWatchedContentMediaContainer withSize(Optional size) { Utils.checkNotNull(size, "size"); this.size = size; return this; } + /** + * Indicates whether syncing is allowed. + */ public GetTopWatchedContentMediaContainer withAllowSync(boolean allowSync) { - Utils.checkNotNull(allowSync, "allowSync"); - this.allowSync = Optional.ofNullable(allowSync); - return this; - } - - public GetTopWatchedContentMediaContainer withAllowSync(Optional allowSync) { Utils.checkNotNull(allowSync, "allowSync"); this.allowSync = allowSync; return this; } + /** + * An plugin identifier for the media container. + */ public GetTopWatchedContentMediaContainer withIdentifier(String identifier) { - Utils.checkNotNull(identifier, "identifier"); - this.identifier = Optional.ofNullable(identifier); - return this; - } - - public GetTopWatchedContentMediaContainer withIdentifier(Optional identifier) { Utils.checkNotNull(identifier, "identifier"); this.identifier = identifier; return this; } + /** + * The prefix used for media tag resource paths. + */ public GetTopWatchedContentMediaContainer withMediaTagPrefix(String mediaTagPrefix) { - Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); - this.mediaTagPrefix = Optional.ofNullable(mediaTagPrefix); - return this; - } - - public GetTopWatchedContentMediaContainer withMediaTagPrefix(Optional mediaTagPrefix) { Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); this.mediaTagPrefix = mediaTagPrefix; return this; } - public GetTopWatchedContentMediaContainer withMediaTagVersion(int mediaTagVersion) { - Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); - this.mediaTagVersion = Optional.ofNullable(mediaTagVersion); - return this; - } - - public GetTopWatchedContentMediaContainer withMediaTagVersion(Optional mediaTagVersion) { + /** + * The version number for media tags. + */ + public GetTopWatchedContentMediaContainer withMediaTagVersion(long mediaTagVersion) { Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); this.mediaTagVersion = mediaTagVersion; return this; @@ -220,15 +236,15 @@ public class GetTopWatchedContentMediaContainer { public final static class Builder { - private Optional size = Optional.empty(); + private Integer size; - private Optional allowSync = Optional.empty(); + private Boolean allowSync; - private Optional identifier = Optional.empty(); + private String identifier; - private Optional mediaTagPrefix = Optional.empty(); + private String mediaTagPrefix; - private Optional mediaTagVersion = Optional.empty(); + private Long mediaTagVersion; private Optional> metadata = Optional.empty(); @@ -236,61 +252,46 @@ public class GetTopWatchedContentMediaContainer { // force use of static builder() method } + /** + * Number of media items returned in this response. + */ public Builder size(int size) { - Utils.checkNotNull(size, "size"); - this.size = Optional.ofNullable(size); - return this; - } - - public Builder size(Optional size) { Utils.checkNotNull(size, "size"); this.size = size; return this; } + /** + * Indicates whether syncing is allowed. + */ public Builder allowSync(boolean allowSync) { - Utils.checkNotNull(allowSync, "allowSync"); - this.allowSync = Optional.ofNullable(allowSync); - return this; - } - - public Builder allowSync(Optional allowSync) { Utils.checkNotNull(allowSync, "allowSync"); this.allowSync = allowSync; return this; } + /** + * An plugin identifier for the media container. + */ public Builder identifier(String identifier) { - Utils.checkNotNull(identifier, "identifier"); - this.identifier = Optional.ofNullable(identifier); - return this; - } - - public Builder identifier(Optional identifier) { Utils.checkNotNull(identifier, "identifier"); this.identifier = identifier; return this; } + /** + * The prefix used for media tag resource paths. + */ public Builder mediaTagPrefix(String mediaTagPrefix) { - Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); - this.mediaTagPrefix = Optional.ofNullable(mediaTagPrefix); - return this; - } - - public Builder mediaTagPrefix(Optional mediaTagPrefix) { Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); this.mediaTagPrefix = mediaTagPrefix; return this; } - public Builder mediaTagVersion(int mediaTagVersion) { - Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); - this.mediaTagVersion = Optional.ofNullable(mediaTagVersion); - return this; - } - - public Builder mediaTagVersion(Optional mediaTagVersion) { + /** + * The version number for media tags. + */ + public Builder mediaTagVersion(long mediaTagVersion) { Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); this.mediaTagVersion = mediaTagVersion; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamIncludeGuids.java b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamIncludeGuids.java new file mode 100644 index 00000000..5aaf2ca3 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamIncludeGuids.java @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package dev.plexapi.sdk.models.operations; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.util.Objects; +import java.util.Optional; + +/** + * GetTopWatchedContentQueryParamIncludeGuids + * + *

Adds the Guid object to the response + */ +public enum GetTopWatchedContentQueryParamIncludeGuids { + Disable(0), + Enable(1); + + @JsonValue + private final int value; + + private GetTopWatchedContentQueryParamIncludeGuids(int value) { + this.value = value; + } + + public int value() { + return value; + } + + public static Optional fromValue(int value) { + for (GetTopWatchedContentQueryParamIncludeGuids o: GetTopWatchedContentQueryParamIncludeGuids.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamType.java index 10eac8c1..f9fcdd8b 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentQueryParamType.java @@ -60,9 +60,11 @@ public class GetTopWatchedContentQueryParamType { public static final GetTopWatchedContentQueryParamType TvShow = new GetTopWatchedContentQueryParamType(2L); public static final GetTopWatchedContentQueryParamType Season = new GetTopWatchedContentQueryParamType(3L); public static final GetTopWatchedContentQueryParamType Episode = new GetTopWatchedContentQueryParamType(4L); - public static final GetTopWatchedContentQueryParamType Audio = new GetTopWatchedContentQueryParamType(8L); - public static final GetTopWatchedContentQueryParamType Album = new GetTopWatchedContentQueryParamType(9L); - public static final GetTopWatchedContentQueryParamType Track = new GetTopWatchedContentQueryParamType(10L); + public static final GetTopWatchedContentQueryParamType Artist = new GetTopWatchedContentQueryParamType(5L); + public static final GetTopWatchedContentQueryParamType Album = new GetTopWatchedContentQueryParamType(6L); + public static final GetTopWatchedContentQueryParamType Track = new GetTopWatchedContentQueryParamType(7L); + public static final GetTopWatchedContentQueryParamType PhotoAlbum = new GetTopWatchedContentQueryParamType(8L); + public static final GetTopWatchedContentQueryParamType Photo = new GetTopWatchedContentQueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class GetTopWatchedContentQueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class GetTopWatchedContentQueryParamType { map.put(2L, GetTopWatchedContentQueryParamTypeEnum.TvShow); map.put(3L, GetTopWatchedContentQueryParamTypeEnum.Season); map.put(4L, GetTopWatchedContentQueryParamTypeEnum.Episode); - map.put(8L, GetTopWatchedContentQueryParamTypeEnum.Audio); - map.put(9L, GetTopWatchedContentQueryParamTypeEnum.Album); - map.put(10L, GetTopWatchedContentQueryParamTypeEnum.Track); + map.put(5L, GetTopWatchedContentQueryParamTypeEnum.Artist); + map.put(6L, GetTopWatchedContentQueryParamTypeEnum.Album); + map.put(7L, GetTopWatchedContentQueryParamTypeEnum.Track); + map.put(8L, GetTopWatchedContentQueryParamTypeEnum.PhotoAlbum); + map.put(9L, GetTopWatchedContentQueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class GetTopWatchedContentQueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequest.java b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequest.java index f827e1dd..9a2eed15 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequest.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequest.java @@ -5,22 +5,18 @@ package dev.plexapi.sdk.models.operations; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.type.TypeReference; +import dev.plexapi.sdk.utils.LazySingletonValue; import dev.plexapi.sdk.utils.SpeakeasyMetadata; import dev.plexapi.sdk.utils.Utils; -import java.lang.Long; import java.lang.Override; import java.lang.String; +import java.lang.SuppressWarnings; import java.util.Objects; import java.util.Optional; public class GetTopWatchedContentRequest { - /** - * Adds the Guids object to the response - */ - @SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeGuids") - private Optional includeGuids; - /** * The type of media to retrieve or filter by. * 1 = movie @@ -32,27 +28,25 @@ public class GetTopWatchedContentRequest { @SpeakeasyMetadata("queryParam:style=form,explode=true,name=type") private GetTopWatchedContentQueryParamType type; + /** + * Adds the Guid object to the response + */ + @SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeGuids") + private Optional includeGuids; + @JsonCreator public GetTopWatchedContentRequest( - Optional includeGuids, - GetTopWatchedContentQueryParamType type) { - Utils.checkNotNull(includeGuids, "includeGuids"); + GetTopWatchedContentQueryParamType type, + Optional includeGuids) { Utils.checkNotNull(type, "type"); - this.includeGuids = includeGuids; + Utils.checkNotNull(includeGuids, "includeGuids"); this.type = type; + this.includeGuids = includeGuids; } public GetTopWatchedContentRequest( GetTopWatchedContentQueryParamType type) { - this(Optional.empty(), type); - } - - /** - * Adds the Guids object to the response - */ - @JsonIgnore - public Optional includeGuids() { - return includeGuids; + this(type, Optional.empty()); } /** @@ -68,28 +62,19 @@ public class GetTopWatchedContentRequest { return type; } + /** + * Adds the Guid object to the response + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional includeGuids() { + return (Optional) includeGuids; + } + public final static Builder builder() { return new Builder(); } - /** - * Adds the Guids object to the response - */ - public GetTopWatchedContentRequest withIncludeGuids(long includeGuids) { - Utils.checkNotNull(includeGuids, "includeGuids"); - this.includeGuids = Optional.ofNullable(includeGuids); - return this; - } - - /** - * Adds the Guids object to the response - */ - public GetTopWatchedContentRequest withIncludeGuids(Optional includeGuids) { - Utils.checkNotNull(includeGuids, "includeGuids"); - this.includeGuids = includeGuids; - return this; - } - /** * The type of media to retrieve or filter by. * 1 = movie @@ -104,6 +89,24 @@ public class GetTopWatchedContentRequest { return this; } + /** + * Adds the Guid object to the response + */ + public GetTopWatchedContentRequest withIncludeGuids(GetTopWatchedContentQueryParamIncludeGuids includeGuids) { + Utils.checkNotNull(includeGuids, "includeGuids"); + this.includeGuids = Optional.ofNullable(includeGuids); + return this; + } + + /** + * Adds the Guid object to the response + */ + public GetTopWatchedContentRequest withIncludeGuids(Optional includeGuids) { + Utils.checkNotNull(includeGuids, "includeGuids"); + this.includeGuids = includeGuids; + return this; + } + @Override public boolean equals(java.lang.Object o) { @@ -115,52 +118,34 @@ public class GetTopWatchedContentRequest { } GetTopWatchedContentRequest other = (GetTopWatchedContentRequest) o; return - Objects.deepEquals(this.includeGuids, other.includeGuids) && - Objects.deepEquals(this.type, other.type); + Objects.deepEquals(this.type, other.type) && + Objects.deepEquals(this.includeGuids, other.includeGuids); } @Override public int hashCode() { return Objects.hash( - includeGuids, - type); + type, + includeGuids); } @Override public String toString() { return Utils.toString(GetTopWatchedContentRequest.class, - "includeGuids", includeGuids, - "type", type); + "type", type, + "includeGuids", includeGuids); } public final static class Builder { - private Optional includeGuids = Optional.empty(); - private GetTopWatchedContentQueryParamType type; + + private Optional includeGuids; private Builder() { // force use of static builder() method } - /** - * Adds the Guids object to the response - */ - public Builder includeGuids(long includeGuids) { - Utils.checkNotNull(includeGuids, "includeGuids"); - this.includeGuids = Optional.ofNullable(includeGuids); - return this; - } - - /** - * Adds the Guids object to the response - */ - public Builder includeGuids(Optional includeGuids) { - Utils.checkNotNull(includeGuids, "includeGuids"); - this.includeGuids = includeGuids; - return this; - } - /** * The type of media to retrieve or filter by. * 1 = movie @@ -174,11 +159,38 @@ public class GetTopWatchedContentRequest { this.type = type; return this; } + + /** + * Adds the Guid object to the response + */ + public Builder includeGuids(GetTopWatchedContentQueryParamIncludeGuids includeGuids) { + Utils.checkNotNull(includeGuids, "includeGuids"); + this.includeGuids = Optional.ofNullable(includeGuids); + return this; + } + + /** + * Adds the Guid object to the response + */ + public Builder includeGuids(Optional includeGuids) { + Utils.checkNotNull(includeGuids, "includeGuids"); + this.includeGuids = includeGuids; + return this; + } public GetTopWatchedContentRequest build() { + if (includeGuids == null) { + includeGuids = _SINGLETON_VALUE_IncludeGuids.value(); + } return new GetTopWatchedContentRequest( - includeGuids, - type); + type, + includeGuids); } + + private static final LazySingletonValue> _SINGLETON_VALUE_IncludeGuids = + new LazySingletonValue<>( + "includeGuids", + "0", + new TypeReference>() {}); } } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequestBuilder.java b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequestBuilder.java index 3a655ae5..c76331c8 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequestBuilder.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetTopWatchedContentRequestBuilder.java @@ -3,43 +3,55 @@ */ package dev.plexapi.sdk.models.operations; +import com.fasterxml.jackson.core.type.TypeReference; +import dev.plexapi.sdk.utils.LazySingletonValue; import dev.plexapi.sdk.utils.Utils; import java.lang.Exception; -import java.lang.Long; import java.util.Optional; public class GetTopWatchedContentRequestBuilder { - private Optional includeGuids = Optional.empty(); private GetTopWatchedContentQueryParamType type; + private Optional includeGuids = Utils.readDefaultOrConstValue( + "includeGuids", + "0", + new TypeReference>() {}); private final SDKMethodInterfaces.MethodCallGetTopWatchedContent sdk; public GetTopWatchedContentRequestBuilder(SDKMethodInterfaces.MethodCallGetTopWatchedContent sdk) { this.sdk = sdk; } - - public GetTopWatchedContentRequestBuilder includeGuids(long includeGuids) { - Utils.checkNotNull(includeGuids, "includeGuids"); - this.includeGuids = Optional.of(includeGuids); - return this; - } - - public GetTopWatchedContentRequestBuilder includeGuids(Optional includeGuids) { - Utils.checkNotNull(includeGuids, "includeGuids"); - this.includeGuids = includeGuids; - return this; - } public GetTopWatchedContentRequestBuilder type(GetTopWatchedContentQueryParamType type) { Utils.checkNotNull(type, "type"); this.type = type; return this; } + + public GetTopWatchedContentRequestBuilder includeGuids(GetTopWatchedContentQueryParamIncludeGuids includeGuids) { + Utils.checkNotNull(includeGuids, "includeGuids"); + this.includeGuids = Optional.of(includeGuids); + return this; + } + + public GetTopWatchedContentRequestBuilder includeGuids(Optional includeGuids) { + Utils.checkNotNull(includeGuids, "includeGuids"); + this.includeGuids = includeGuids; + return this; + } public GetTopWatchedContentResponse call() throws Exception { - + if (includeGuids == null) { + includeGuids = _SINGLETON_VALUE_IncludeGuids.value(); + } return sdk.getTopWatchedContent( - includeGuids, - type); + type, + includeGuids); } + + private static final LazySingletonValue> _SINGLETON_VALUE_IncludeGuids = + new LazySingletonValue<>( + "includeGuids", + "0", + new TypeReference>() {}); } diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Guids.java b/src/main/java/dev/plexapi/sdk/models/operations/Guids.java index cdefa09d..cb81721a 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Guids.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Guids.java @@ -5,40 +5,32 @@ package dev.plexapi.sdk.models.operations; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; import java.lang.Override; import java.lang.String; import java.util.Objects; -import java.util.Optional; public class Guids { /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ - @JsonInclude(Include.NON_ABSENT) @JsonProperty("id") - private Optional id; + private String id; @JsonCreator public Guids( - @JsonProperty("id") Optional id) { + @JsonProperty("id") String id) { Utils.checkNotNull(id, "id"); this.id = id; } - - public Guids() { - this(Optional.empty()); - } /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ @JsonIgnore - public Optional id() { + public String id() { return id; } @@ -47,18 +39,9 @@ public class Guids { } /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ public Guids withId(String id) { - Utils.checkNotNull(id, "id"); - this.id = Optional.ofNullable(id); - return this; - } - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - public Guids withId(Optional id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -92,25 +75,16 @@ public class Guids { public final static class Builder { - private Optional id = Optional.empty(); + private String id; private Builder() { // force use of static builder() method } /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 + * The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb:// */ public Builder id(String id) { - Utils.checkNotNull(id, "id"); - this.id = Optional.ofNullable(id); - return this; - } - - /** - * The unique identifier for the Guid. Can be imdb://tt0286347, tmdb://1763, tvdb://2337 - */ - public Builder id(Optional id) { Utils.checkNotNull(id, "id"); this.id = id; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Producer.java b/src/main/java/dev/plexapi/sdk/models/operations/Producer.java index 1c9c7658..3e7554cf 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Producer.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Producer.java @@ -36,14 +36,13 @@ public class Producer { private String tag; /** - * A unique key associated with the producer's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the producer's tag, used for internal identification. */ - @JsonInclude(Include.NON_ABSENT) @JsonProperty("tagKey") - private Optional tagKey; + private String tagKey; /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the producer. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("thumb") @@ -54,7 +53,7 @@ public class Producer { @JsonProperty("id") int id, @JsonProperty("filter") String filter, @JsonProperty("tag") String tag, - @JsonProperty("tagKey") Optional tagKey, + @JsonProperty("tagKey") String tagKey, @JsonProperty("thumb") Optional thumb) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(filter, "filter"); @@ -71,8 +70,9 @@ public class Producer { public Producer( int id, String filter, - String tag) { - this(id, filter, tag, Optional.empty(), Optional.empty()); + String tag, + String tagKey) { + this(id, filter, tag, tagKey, Optional.empty()); } /** @@ -100,15 +100,15 @@ public class Producer { } /** - * A unique key associated with the producer's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the producer's tag, used for internal identification. */ @JsonIgnore - public Optional tagKey() { + public String tagKey() { return tagKey; } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the producer. */ @JsonIgnore public Optional thumb() { @@ -147,25 +147,16 @@ public class Producer { } /** - * A unique key associated with the producer's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the producer's tag, used for internal identification. */ public Producer withTagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the producer's tag, used for internal identification. - */ - public Producer withTagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the producer. */ public Producer withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -174,7 +165,7 @@ public class Producer { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the producer. */ public Producer withThumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -228,7 +219,7 @@ public class Producer { private String tag; - private Optional tagKey = Optional.empty(); + private String tagKey; private Optional thumb = Optional.empty(); @@ -264,25 +255,16 @@ public class Producer { } /** - * A unique key associated with the producer's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the producer's tag, used for internal identification. */ public Builder tagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the producer's tag, used for internal identification. - */ - public Builder tagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the producer. */ public Builder thumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -291,7 +273,7 @@ public class Producer { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the producer. */ public Builder thumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/QueryParamType.java b/src/main/java/dev/plexapi/sdk/models/operations/QueryParamType.java index 72cc9fc3..1654c588 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/QueryParamType.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/QueryParamType.java @@ -60,9 +60,11 @@ public class QueryParamType { public static final QueryParamType TvShow = new QueryParamType(2L); public static final QueryParamType Season = new QueryParamType(3L); public static final QueryParamType Episode = new QueryParamType(4L); - public static final QueryParamType Audio = new QueryParamType(8L); - public static final QueryParamType Album = new QueryParamType(9L); - public static final QueryParamType Track = new QueryParamType(10L); + public static final QueryParamType Artist = new QueryParamType(5L); + public static final QueryParamType Album = new QueryParamType(6L); + public static final QueryParamType Track = new QueryParamType(7L); + public static final QueryParamType PhotoAlbum = new QueryParamType(8L); + public static final QueryParamType Photo = new QueryParamType(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class QueryParamType { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class QueryParamType { map.put(2L, QueryParamTypeEnum.TvShow); map.put(3L, QueryParamTypeEnum.Season); map.put(4L, QueryParamTypeEnum.Episode); - map.put(8L, QueryParamTypeEnum.Audio); - map.put(9L, QueryParamTypeEnum.Album); - map.put(10L, QueryParamTypeEnum.Track); + map.put(5L, QueryParamTypeEnum.Artist); + map.put(6L, QueryParamTypeEnum.Album); + map.put(7L, QueryParamTypeEnum.Track); + map.put(8L, QueryParamTypeEnum.PhotoAlbum); + map.put(9L, QueryParamTypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class QueryParamType { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Rating.java b/src/main/java/dev/plexapi/sdk/models/operations/Rating.java index 61909a66..f9608a9b 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Rating.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Rating.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; -import java.lang.Double; +import java.lang.Float; import java.lang.Override; import java.lang.String; import java.util.Objects; @@ -19,11 +19,14 @@ import java.util.Objects; */ public class Rating { + /** + * The URL for the rating image, for example from IMDb. + */ @JsonProperty("image") private String image; @JsonProperty("value") - private double value; + private float value; @JsonProperty("type") private String type; @@ -31,7 +34,7 @@ public class Rating { @JsonCreator public Rating( @JsonProperty("image") String image, - @JsonProperty("value") double value, + @JsonProperty("value") float value, @JsonProperty("type") String type) { Utils.checkNotNull(image, "image"); Utils.checkNotNull(value, "value"); @@ -41,13 +44,16 @@ public class Rating { this.type = type; } + /** + * The URL for the rating image, for example from IMDb. + */ @JsonIgnore public String image() { return image; } @JsonIgnore - public double value() { + public float value() { return value; } @@ -60,13 +66,16 @@ public class Rating { return new Builder(); } + /** + * The URL for the rating image, for example from IMDb. + */ public Rating withImage(String image) { Utils.checkNotNull(image, "image"); this.image = image; return this; } - public Rating withValue(double value) { + public Rating withValue(float value) { Utils.checkNotNull(value, "value"); this.value = value; return this; @@ -114,7 +123,7 @@ public class Rating { private String image; - private Double value; + private Float value; private String type; @@ -122,13 +131,16 @@ public class Rating { // force use of static builder() method } + /** + * The URL for the rating image, for example from IMDb. + */ public Builder image(String image) { Utils.checkNotNull(image, "image"); this.image = image; return this; } - public Builder value(double value) { + public Builder value(float value) { Utils.checkNotNull(value, "value"); this.value = value; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Role.java b/src/main/java/dev/plexapi/sdk/models/operations/Role.java index c5df89d4..09548e22 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Role.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Role.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; -import java.lang.Long; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; @@ -18,10 +18,11 @@ import java.util.Optional; public class Role { /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ @JsonProperty("id") - private long id; + private int id; /** * The filter string used to query this actor. For example, it may indicate that this is an actor with a given key. @@ -36,11 +37,11 @@ public class Role { private String tag; /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ - @JsonInclude(Include.NON_ABSENT) @JsonProperty("tagKey") - private Optional tagKey; + private String tagKey; /** * The role played by the actor in the media item. @@ -50,7 +51,7 @@ public class Role { private Optional role; /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("thumb") @@ -58,10 +59,10 @@ public class Role { @JsonCreator public Role( - @JsonProperty("id") long id, + @JsonProperty("id") int id, @JsonProperty("filter") String filter, @JsonProperty("tag") String tag, - @JsonProperty("tagKey") Optional tagKey, + @JsonProperty("tagKey") String tagKey, @JsonProperty("role") Optional role, @JsonProperty("thumb") Optional thumb) { Utils.checkNotNull(id, "id"); @@ -79,17 +80,19 @@ public class Role { } public Role( - long id, + int id, String filter, - String tag) { - this(id, filter, tag, Optional.empty(), Optional.empty(), Optional.empty()); + String tag, + String tagKey) { + this(id, filter, tag, tagKey, Optional.empty(), Optional.empty()); } /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ @JsonIgnore - public long id() { + public int id() { return id; } @@ -110,10 +113,11 @@ public class Role { } /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ @JsonIgnore - public Optional tagKey() { + public String tagKey() { return tagKey; } @@ -126,7 +130,7 @@ public class Role { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ @JsonIgnore public Optional thumb() { @@ -138,9 +142,10 @@ public class Role { } /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ - public Role withId(long id) { + public Role withId(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -165,18 +170,10 @@ public class Role { } /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ public Role withTagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the actor's tag, used for internal identification. - */ - public Role withTagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; @@ -201,7 +198,7 @@ public class Role { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public Role withThumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -210,7 +207,7 @@ public class Role { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public Role withThumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -261,13 +258,13 @@ public class Role { public final static class Builder { - private Long id; + private Integer id; private String filter; private String tag; - private Optional tagKey = Optional.empty(); + private String tagKey; private Optional role = Optional.empty(); @@ -278,9 +275,10 @@ public class Role { } /** - * Unique identifier for the actor or role. + * The unique identifier for the role. + * NOTE: This is different for each Plex server and is not globally unique. */ - public Builder id(long id) { + public Builder id(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -305,18 +303,10 @@ public class Role { } /** - * A unique key associated with the actor's tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the actor's tag, used for internal identification. + * NOTE: This is globally unique across all Plex Servers. */ public Builder tagKey(String tagKey) { - Utils.checkNotNull(tagKey, "tagKey"); - this.tagKey = Optional.ofNullable(tagKey); - return this; - } - - /** - * A unique key associated with the actor's tag, used for internal identification. - */ - public Builder tagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; @@ -341,7 +331,7 @@ public class Role { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public Builder thumb(String thumb) { Utils.checkNotNull(thumb, "thumb"); @@ -350,7 +340,7 @@ public class Role { } /** - * The URL of the thumbnail image for the actor. + * The absolute URL of the thumbnail image for the actor. */ public Builder thumb(Optional thumb) { Utils.checkNotNull(thumb, "thumb"); diff --git a/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java b/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java index aacde83c..4c1590e0 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java @@ -225,9 +225,9 @@ public class SDKMethodInterfaces { GetLibraryItemsRequest request) throws Exception; } - public interface MethodCallGetAllMediaLibrary { - GetAllMediaLibraryResponse getAllMediaLibrary( - GetAllMediaLibraryRequest request) throws Exception; + public interface MethodCallGetLibrarySectionsAll { + GetLibrarySectionsAllResponse getLibrarySectionsAll( + GetLibrarySectionsAllRequest request) throws Exception; } public interface MethodCallGetRefreshLibraryMetadata { @@ -302,8 +302,8 @@ public class SDKMethodInterfaces { public interface MethodCallGetTopWatchedContent { GetTopWatchedContentResponse getTopWatchedContent( - Optional includeGuids, - GetTopWatchedContentQueryParamType type) throws Exception; + GetTopWatchedContentQueryParamType type, + Optional includeGuids) throws Exception; } public interface MethodCallGetWatchList { diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Similar.java b/src/main/java/dev/plexapi/sdk/models/operations/Similar.java index c5b7fd86..a4844f81 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Similar.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Similar.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import dev.plexapi.sdk.utils.Utils; -import java.lang.Long; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.Objects; @@ -20,7 +20,7 @@ import java.util.Objects; public class Similar { @JsonProperty("id") - private long id; + private int id; @JsonProperty("filter") private String filter; @@ -30,7 +30,7 @@ public class Similar { @JsonCreator public Similar( - @JsonProperty("id") long id, + @JsonProperty("id") int id, @JsonProperty("filter") String filter, @JsonProperty("tag") String tag) { Utils.checkNotNull(id, "id"); @@ -42,7 +42,7 @@ public class Similar { } @JsonIgnore - public long id() { + public int id() { return id; } @@ -60,7 +60,7 @@ public class Similar { return new Builder(); } - public Similar withId(long id) { + public Similar withId(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; @@ -112,7 +112,7 @@ public class Similar { public final static class Builder { - private Long id; + private Integer id; private String filter; @@ -122,7 +122,7 @@ public class Similar { // force use of static builder() method } - public Builder id(long id) { + public Builder id(int id) { Utils.checkNotNull(id, "id"); this.id = id; return this; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Type.java b/src/main/java/dev/plexapi/sdk/models/operations/Type.java index 8077a7a0..6b70a5ec 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Type.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Type.java @@ -60,9 +60,11 @@ public class Type { public static final Type TvShow = new Type(2L); public static final Type Season = new Type(3L); public static final Type Episode = new Type(4L); - public static final Type Audio = new Type(8L); - public static final Type Album = new Type(9L); - public static final Type Track = new Type(10L); + public static final Type Artist = new Type(5L); + public static final Type Album = new Type(6L); + public static final Type Track = new Type(7L); + public static final Type PhotoAlbum = new Type(8L); + public static final Type Photo = new Type(9L); // This map will grow whenever a Color gets created with a new // unrecognized value (a potential memory leak if the user is not @@ -138,9 +140,11 @@ public class Type { map.put(2L, TvShow); map.put(3L, Season); map.put(4L, Episode); - map.put(8L, Audio); - map.put(9L, Album); - map.put(10L, Track); + map.put(5L, Artist); + map.put(6L, Album); + map.put(7L, Track); + map.put(8L, PhotoAlbum); + map.put(9L, Photo); return map; } @@ -150,9 +154,11 @@ public class Type { map.put(2L, TypeEnum.TvShow); map.put(3L, TypeEnum.Season); map.put(4L, TypeEnum.Episode); - map.put(8L, TypeEnum.Audio); - map.put(9L, TypeEnum.Album); - map.put(10L, TypeEnum.Track); + map.put(5L, TypeEnum.Artist); + map.put(6L, TypeEnum.Album); + map.put(7L, TypeEnum.Track); + map.put(8L, TypeEnum.PhotoAlbum); + map.put(9L, TypeEnum.Photo); return map; } @@ -192,9 +198,11 @@ public class Type { TvShow(2L), Season(3L), Episode(4L), - Audio(8L), - Album(9L), - Track(10L),; + Artist(5L), + Album(6L), + Track(7L), + PhotoAlbum(8L), + Photo(9L),; private final long value; diff --git a/src/main/java/dev/plexapi/sdk/models/operations/Writer.java b/src/main/java/dev/plexapi/sdk/models/operations/Writer.java index 1e9a3b15..b715d0dc 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/Writer.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/Writer.java @@ -36,33 +36,43 @@ public class Writer { private String tag; /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ @JsonInclude(Include.NON_ABSENT) @JsonProperty("tagKey") private Optional tagKey; + /** + * The absolute URL of the thumbnail image for the writer. + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("thumb") + private Optional thumb; + @JsonCreator public Writer( @JsonProperty("id") int id, @JsonProperty("filter") String filter, @JsonProperty("tag") String tag, - @JsonProperty("tagKey") Optional tagKey) { + @JsonProperty("tagKey") Optional tagKey, + @JsonProperty("thumb") Optional thumb) { Utils.checkNotNull(id, "id"); Utils.checkNotNull(filter, "filter"); Utils.checkNotNull(tag, "tag"); Utils.checkNotNull(tagKey, "tagKey"); + Utils.checkNotNull(thumb, "thumb"); this.id = id; this.filter = filter; this.tag = tag; this.tagKey = tagKey; + this.thumb = thumb; } public Writer( int id, String filter, String tag) { - this(id, filter, tag, Optional.empty()); + this(id, filter, tag, Optional.empty(), Optional.empty()); } /** @@ -90,13 +100,21 @@ public class Writer { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ @JsonIgnore public Optional tagKey() { return tagKey; } + /** + * The absolute URL of the thumbnail image for the writer. + */ + @JsonIgnore + public Optional thumb() { + return thumb; + } + public final static Builder builder() { return new Builder(); } @@ -129,7 +147,7 @@ public class Writer { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public Writer withTagKey(String tagKey) { Utils.checkNotNull(tagKey, "tagKey"); @@ -138,7 +156,7 @@ public class Writer { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public Writer withTagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); @@ -146,6 +164,24 @@ public class Writer { return this; } + /** + * The absolute URL of the thumbnail image for the writer. + */ + public Writer withThumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = Optional.ofNullable(thumb); + return this; + } + + /** + * The absolute URL of the thumbnail image for the writer. + */ + public Writer withThumb(Optional thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } + @Override public boolean equals(java.lang.Object o) { @@ -160,7 +196,8 @@ public class Writer { Objects.deepEquals(this.id, other.id) && Objects.deepEquals(this.filter, other.filter) && Objects.deepEquals(this.tag, other.tag) && - Objects.deepEquals(this.tagKey, other.tagKey); + Objects.deepEquals(this.tagKey, other.tagKey) && + Objects.deepEquals(this.thumb, other.thumb); } @Override @@ -169,7 +206,8 @@ public class Writer { id, filter, tag, - tagKey); + tagKey, + thumb); } @Override @@ -178,7 +216,8 @@ public class Writer { "id", id, "filter", filter, "tag", tag, - "tagKey", tagKey); + "tagKey", tagKey, + "thumb", thumb); } public final static class Builder { @@ -190,6 +229,8 @@ public class Writer { private String tag; private Optional tagKey = Optional.empty(); + + private Optional thumb = Optional.empty(); private Builder() { // force use of static builder() method @@ -223,7 +264,7 @@ public class Writer { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public Builder tagKey(String tagKey) { Utils.checkNotNull(tagKey, "tagKey"); @@ -232,20 +273,39 @@ public class Writer { } /** - * A unique key associated with the writers tag, used for internal identification. + * A 24-character hexadecimal unique key associated with the writer’s tag, used for internal identification. */ public Builder tagKey(Optional tagKey) { Utils.checkNotNull(tagKey, "tagKey"); this.tagKey = tagKey; return this; } + + /** + * The absolute URL of the thumbnail image for the writer. + */ + public Builder thumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = Optional.ofNullable(thumb); + return this; + } + + /** + * The absolute URL of the thumbnail image for the writer. + */ + public Builder thumb(Optional thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } public Writer build() { return new Writer( id, filter, tag, - tagKey); + tagKey, + thumb); } } } diff --git a/src/main/java/dev/plexapi/sdk/utils/Hook.java b/src/main/java/dev/plexapi/sdk/utils/Hook.java index f10872d5..055401e7 100644 --- a/src/main/java/dev/plexapi/sdk/utils/Hook.java +++ b/src/main/java/dev/plexapi/sdk/utils/Hook.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Optional; import java.util.UUID; +import dev.plexapi.sdk.SDKConfiguration; import dev.plexapi.sdk.SecuritySource; /** @@ -26,6 +27,7 @@ public final class Hook { * Context for a hook call. */ public interface HookContext { + SDKConfiguration sdkConfiguration(); String baseUrl(); String operationId(); Optional> oauthScopes(); @@ -40,18 +42,25 @@ public final class Hook { public static final class BeforeRequestContextImpl implements BeforeRequestContext { + private final SDKConfiguration sdkConfiguration; private final String baseUrl; private final String operationId; private final Optional> oauthScopes; private final Optional securitySource; - public BeforeRequestContextImpl(String baseUrl, String operationId, Optional> oauthScopes, Optional securitySource) { + public BeforeRequestContextImpl(SDKConfiguration sdkConfiguration, String baseUrl, String operationId, Optional> oauthScopes, Optional securitySource) { + this.sdkConfiguration = sdkConfiguration; this.baseUrl = baseUrl; this.operationId = operationId; this.oauthScopes = oauthScopes; this.securitySource = securitySource; } + @Override + public SDKConfiguration sdkConfiguration() { + return sdkConfiguration; + } + @Override public String baseUrl() { return baseUrl; @@ -81,19 +90,26 @@ public final class Hook { public static final class AfterSuccessContextImpl implements AfterSuccessContext { + private final SDKConfiguration sdkConfiguration; private final String baseUrl; private final String operationId; private final Optional> oauthScopes; private final Optional securitySource; - public AfterSuccessContextImpl(String baseUrl, String operationId, Optional> oauthScopes, Optional securitySource) { + public AfterSuccessContextImpl(SDKConfiguration sdkConfiguration, String baseUrl, String operationId, Optional> oauthScopes, Optional securitySource) { Utils.checkNotNull(securitySource, "securitySource"); + this.sdkConfiguration = sdkConfiguration; this.baseUrl = baseUrl; this.operationId = operationId; this.oauthScopes = oauthScopes; this.securitySource = securitySource; } + @Override + public SDKConfiguration sdkConfiguration() { + return sdkConfiguration; + } + @Override public String baseUrl() { return baseUrl; @@ -123,19 +139,26 @@ public final class Hook { public static final class AfterErrorContextImpl implements AfterErrorContext { + private final SDKConfiguration sdkConfiguration; private final String baseUrl; private final String operationId; private final Optional> oauthScopes; private final Optional securitySource; - public AfterErrorContextImpl(String baseUrl, String operationId, Optional> oauthScopes, Optional securitySource) { + public AfterErrorContextImpl(SDKConfiguration sdkConfiguration, String baseUrl, String operationId, Optional> oauthScopes, Optional securitySource) { Utils.checkNotNull(securitySource, "securitySource"); + this.sdkConfiguration = sdkConfiguration; this.baseUrl = baseUrl; this.operationId = operationId; this.oauthScopes = oauthScopes; this.securitySource = securitySource; } + @Override + public SDKConfiguration sdkConfiguration() { + return sdkConfiguration; + } + @Override public String baseUrl() { return baseUrl; @@ -242,7 +265,7 @@ public final class Hook { } }; } - + public static final class SdkInitData { private final String baseUrl; private final HTTPClient client; @@ -260,12 +283,12 @@ public final class Hook { return client; } } - + /** * Transforms the HTTPClient before use. */ public interface SdkInit { - + /** * Returns a transformed {@link HTTPClient} and {@code baseUrl} for use in requests. * @@ -278,6 +301,7 @@ public final class Hook { * The default action is to return the client untouched. */ static SdkInit DEFAULT = data -> data; + }