diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 586a8ba..8771a53 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 01a51eb2-5d90-4a24-b154-68e491d02c36 management: - docChecksum: 82a4a9784fb0e66e1c64f130701cdd08 + docChecksum: 5e039359563b41bbe118fc6701ba22dc docVersion: 0.0.3 - speakeasyVersion: 1.401.2 - generationVersion: 2.421.3 - releaseVersion: 0.9.1 - configChecksum: 21ef7be3198d51c3f3393a34f95241db + speakeasyVersion: 1.402.14 + generationVersion: 2.422.22 + releaseVersion: 0.10.0 + configChecksum: 2922b9b3b78b0220103ba0c17b1ed6fa repoURL: https://github.com/LukeHagar/plexphp.git repoSubDirectory: . installationURL: https://github.com/LukeHagar/plexphp published: true features: php: - core: 3.4.4 + core: 3.4.5 deprecations: 2.81.1 enums: 2.81.1 errors: 0.1.2 @@ -26,7 +26,6 @@ features: nameOverrides: 2.81.2 nullables: 1.0.0 responseFormat: 0.1.0 - unions: 0.1.3 generatedFiles: - .gitattributes - CONTRIBUTING.md @@ -160,10 +159,10 @@ generatedFiles: - docs/Models/Errors/GetPlaylistsErrors.md - docs/Models/Errors/GetPlaylistsPlaylistsErrors.md - docs/Models/Errors/GetPlaylistsUnauthorized.md - - docs/Models/Errors/GetRecentlyAddedBadRequest.md - - docs/Models/Errors/GetRecentlyAddedErrors.md + - docs/Models/Errors/GetRecentlyAddedLibraryBadRequest.md - docs/Models/Errors/GetRecentlyAddedLibraryErrors.md - - docs/Models/Errors/GetRecentlyAddedUnauthorized.md + - docs/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.md + - docs/Models/Errors/GetRecentlyAddedLibraryUnauthorized.md - docs/Models/Errors/GetRefreshLibraryMetadataBadRequest.md - docs/Models/Errors/GetRefreshLibraryMetadataErrors.md - docs/Models/Errors/GetRefreshLibraryMetadataLibraryErrors.md @@ -410,11 +409,15 @@ generatedFiles: - docs/Models/Operations/GetHomeDataResponse.md - docs/Models/Operations/GetHomeDataResponseBody.md - docs/Models/Operations/GetLibraryDetailsDirectory.md + - docs/Models/Operations/GetLibraryDetailsField.md + - docs/Models/Operations/GetLibraryDetailsFieldType.md - docs/Models/Operations/GetLibraryDetailsFilter.md - docs/Models/Operations/GetLibraryDetailsMediaContainer.md + - docs/Models/Operations/GetLibraryDetailsOperator.md - docs/Models/Operations/GetLibraryDetailsRequest.md - docs/Models/Operations/GetLibraryDetailsResponse.md - docs/Models/Operations/GetLibraryDetailsResponseBody.md + - docs/Models/Operations/GetLibraryDetailsSort.md - docs/Models/Operations/GetLibraryDetailsType.md - docs/Models/Operations/GetLibraryHubsCountry.md - docs/Models/Operations/GetLibraryHubsDirector.md @@ -429,26 +432,48 @@ generatedFiles: - docs/Models/Operations/GetLibraryHubsResponseBody.md - docs/Models/Operations/GetLibraryHubsRole.md - docs/Models/Operations/GetLibraryHubsWriter.md + - docs/Models/Operations/GetLibraryItemsActiveDirection.md + - docs/Models/Operations/GetLibraryItemsCollection.md - docs/Models/Operations/GetLibraryItemsCountry.md + - docs/Models/Operations/GetLibraryItemsDefaultDirection.md - docs/Models/Operations/GetLibraryItemsDirector.md - docs/Models/Operations/GetLibraryItemsField.md - docs/Models/Operations/GetLibraryItemsFieldType.md - docs/Models/Operations/GetLibraryItemsFilter.md + - docs/Models/Operations/GetLibraryItemsFlattenSeasons.md - docs/Models/Operations/GetLibraryItemsGenre.md + - docs/Models/Operations/GetLibraryItemsHasThumbnail.md - docs/Models/Operations/GetLibraryItemsImage.md + - docs/Models/Operations/GetLibraryItemsLibraryActiveDirection.md + - docs/Models/Operations/GetLibraryItemsLibraryDefaultDirection.md + - docs/Models/Operations/GetLibraryItemsLibraryField.md + - docs/Models/Operations/GetLibraryItemsLibraryFieldType.md + - docs/Models/Operations/GetLibraryItemsLibraryFilter.md + - docs/Models/Operations/GetLibraryItemsLibraryOperator.md + - docs/Models/Operations/GetLibraryItemsLibraryResponse200Type.md - docs/Models/Operations/GetLibraryItemsLibraryResponseType.md + - docs/Models/Operations/GetLibraryItemsLibrarySort.md - docs/Models/Operations/GetLibraryItemsLibraryType.md - docs/Models/Operations/GetLibraryItemsMedia.md - docs/Models/Operations/GetLibraryItemsMediaContainer.md + - docs/Models/Operations/GetLibraryItemsMediaGuid.md + - docs/Models/Operations/GetLibraryItemsMeta.md + - docs/Models/Operations/GetLibraryItemsMetaDataRating.md - docs/Models/Operations/GetLibraryItemsMetadata.md - docs/Models/Operations/GetLibraryItemsOperator.md + - docs/Models/Operations/GetLibraryItemsOptimizedForStreaming.md - docs/Models/Operations/GetLibraryItemsPart.md + - docs/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.md + - docs/Models/Operations/GetLibraryItemsQueryParamType.md - docs/Models/Operations/GetLibraryItemsRequest.md - docs/Models/Operations/GetLibraryItemsResponse.md - docs/Models/Operations/GetLibraryItemsResponseBody.md - docs/Models/Operations/GetLibraryItemsRole.md + - docs/Models/Operations/GetLibraryItemsShowOrdering.md - docs/Models/Operations/GetLibraryItemsSort.md + - docs/Models/Operations/GetLibraryItemsStream.md - docs/Models/Operations/GetLibraryItemsType.md + - docs/Models/Operations/GetLibraryItemsUltraBlurColors.md - docs/Models/Operations/GetLibraryItemsWriter.md - docs/Models/Operations/GetMediaProvidersDirectory.md - docs/Models/Operations/GetMediaProvidersMediaContainer.md @@ -466,6 +491,7 @@ generatedFiles: - docs/Models/Operations/GetMetaDataByRatingKeyResponse.md - docs/Models/Operations/GetMetaDataByRatingKeyResponseBody.md - docs/Models/Operations/GetMetaDataByRatingKeyRole.md + - docs/Models/Operations/GetMetaDataByRatingKeyStream.md - docs/Models/Operations/GetMetaDataByRatingKeyWriter.md - docs/Models/Operations/GetMetadataChildrenDirectory.md - docs/Models/Operations/GetMetadataChildrenMediaContainer.md @@ -509,11 +535,36 @@ generatedFiles: - docs/Models/Operations/GetPlaylistsRequest.md - docs/Models/Operations/GetPlaylistsResponse.md - docs/Models/Operations/GetPlaylistsResponseBody.md + - docs/Models/Operations/GetRecentlyAddedActiveDirection.md + - docs/Models/Operations/GetRecentlyAddedDefaultDirection.md + - docs/Models/Operations/GetRecentlyAddedField.md + - docs/Models/Operations/GetRecentlyAddedFieldType.md + - docs/Models/Operations/GetRecentlyAddedFilter.md + - docs/Models/Operations/GetRecentlyAddedHubsResponseType.md + - docs/Models/Operations/GetRecentlyAddedHubsType.md + - docs/Models/Operations/GetRecentlyAddedImage.md + - docs/Models/Operations/GetRecentlyAddedLibraryCountry.md + - docs/Models/Operations/GetRecentlyAddedLibraryDirector.md + - docs/Models/Operations/GetRecentlyAddedLibraryFilter.md + - docs/Models/Operations/GetRecentlyAddedLibraryGenre.md + - docs/Models/Operations/GetRecentlyAddedLibraryMedia.md + - docs/Models/Operations/GetRecentlyAddedLibraryMediaContainer.md + - docs/Models/Operations/GetRecentlyAddedLibraryMetadata.md + - docs/Models/Operations/GetRecentlyAddedLibraryPart.md + - docs/Models/Operations/GetRecentlyAddedLibraryRequest.md + - docs/Models/Operations/GetRecentlyAddedLibraryResponse.md + - docs/Models/Operations/GetRecentlyAddedLibraryResponseBody.md + - docs/Models/Operations/GetRecentlyAddedLibraryRole.md + - docs/Models/Operations/GetRecentlyAddedLibraryType.md + - docs/Models/Operations/GetRecentlyAddedLibraryWriter.md - docs/Models/Operations/GetRecentlyAddedMediaContainer.md - docs/Models/Operations/GetRecentlyAddedMetadata.md + - docs/Models/Operations/GetRecentlyAddedOperator.md - docs/Models/Operations/GetRecentlyAddedRequest.md - docs/Models/Operations/GetRecentlyAddedResponse.md - docs/Models/Operations/GetRecentlyAddedResponseBody.md + - docs/Models/Operations/GetRecentlyAddedSort.md + - docs/Models/Operations/GetRecentlyAddedType.md - docs/Models/Operations/GetRefreshLibraryMetadataRequest.md - docs/Models/Operations/GetRefreshLibraryMetadataResponse.md - docs/Models/Operations/GetResizedPhotoRequest.md @@ -524,6 +575,7 @@ generatedFiles: - docs/Models/Operations/GetResourcesStatisticsResponseBody.md - docs/Models/Operations/GetSearchLibraryMediaContainer.md - docs/Models/Operations/GetSearchLibraryMetadata.md + - docs/Models/Operations/GetSearchLibraryQueryParamType.md - docs/Models/Operations/GetSearchLibraryRequest.md - docs/Models/Operations/GetSearchLibraryResponse.md - docs/Models/Operations/GetSearchLibraryResponseBody.md @@ -628,7 +680,6 @@ generatedFiles: - docs/Models/Operations/IncludeRelay.md - docs/Models/Operations/InternalPaymentMethod.md - docs/Models/Operations/Level.md - - docs/Models/Operations/LibrarySectionID.md - docs/Models/Operations/Libtype.md - docs/Models/Operations/Location.md - docs/Models/Operations/LogLineRequest.md @@ -645,11 +696,13 @@ generatedFiles: - docs/Models/Operations/MediaProvider.md - docs/Models/Operations/MediaReviewsVisibility.md - docs/Models/Operations/Meta.md + - docs/Models/Operations/MetaDataRating.md - docs/Models/Operations/Metadata.md - docs/Models/Operations/MinSize.md - docs/Models/Operations/MyPlex.md - docs/Models/Operations/OnlyTransient.md - docs/Models/Operations/Operator.md + - docs/Models/Operations/OptimizedForStreaming.md - docs/Models/Operations/Part.md - docs/Models/Operations/PastSubscription.md - docs/Models/Operations/PathParamTaskName.md @@ -671,6 +724,7 @@ generatedFiles: - docs/Models/Operations/PostUsersSignInDataFeatures.md - docs/Models/Operations/PostUsersSignInDataMailingListStatus.md - docs/Models/Operations/PostUsersSignInDataMediaReviewsVisibility.md + - docs/Models/Operations/PostUsersSignInDataRequest.md - docs/Models/Operations/PostUsersSignInDataRequestBody.md - docs/Models/Operations/PostUsersSignInDataResponse.md - docs/Models/Operations/PostUsersSignInDataServices.md @@ -685,6 +739,7 @@ generatedFiles: - docs/Models/Operations/Provider.md - docs/Models/Operations/QueryParamFilter.md - docs/Models/Operations/QueryParamForce.md + - docs/Models/Operations/QueryParamIncludeMeta.md - docs/Models/Operations/QueryParamOnlyTransient.md - docs/Models/Operations/QueryParamSmart.md - docs/Models/Operations/QueryParamType.md @@ -957,12 +1012,12 @@ generatedFiles: - src/Models/Errors/GetPlaylistsPlaylistsErrors.php - src/Models/Errors/GetPlaylistsUnauthorized.php - src/Models/Errors/GetPlaylistsUnauthorizedThrowable.php - - src/Models/Errors/GetRecentlyAddedBadRequest.php - - src/Models/Errors/GetRecentlyAddedBadRequestThrowable.php - - src/Models/Errors/GetRecentlyAddedErrors.php + - src/Models/Errors/GetRecentlyAddedLibraryBadRequest.php + - src/Models/Errors/GetRecentlyAddedLibraryBadRequestThrowable.php - src/Models/Errors/GetRecentlyAddedLibraryErrors.php - - src/Models/Errors/GetRecentlyAddedUnauthorized.php - - src/Models/Errors/GetRecentlyAddedUnauthorizedThrowable.php + - src/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.php + - src/Models/Errors/GetRecentlyAddedLibraryUnauthorized.php + - src/Models/Errors/GetRecentlyAddedLibraryUnauthorizedThrowable.php - src/Models/Errors/GetRefreshLibraryMetadataBadRequest.php - src/Models/Errors/GetRefreshLibraryMetadataBadRequestThrowable.php - src/Models/Errors/GetRefreshLibraryMetadataErrors.php @@ -1291,11 +1346,15 @@ generatedFiles: - src/Models/Operations/GetHomeDataResponse.php - src/Models/Operations/GetHomeDataResponseBody.php - src/Models/Operations/GetLibraryDetailsDirectory.php + - src/Models/Operations/GetLibraryDetailsField.php + - src/Models/Operations/GetLibraryDetailsFieldType.php - src/Models/Operations/GetLibraryDetailsFilter.php - src/Models/Operations/GetLibraryDetailsMediaContainer.php + - src/Models/Operations/GetLibraryDetailsOperator.php - src/Models/Operations/GetLibraryDetailsRequest.php - src/Models/Operations/GetLibraryDetailsResponse.php - src/Models/Operations/GetLibraryDetailsResponseBody.php + - src/Models/Operations/GetLibraryDetailsSort.php - src/Models/Operations/GetLibraryDetailsType.php - src/Models/Operations/GetLibraryHubsCountry.php - src/Models/Operations/GetLibraryHubsDirector.php @@ -1310,26 +1369,48 @@ generatedFiles: - src/Models/Operations/GetLibraryHubsResponseBody.php - src/Models/Operations/GetLibraryHubsRole.php - src/Models/Operations/GetLibraryHubsWriter.php + - src/Models/Operations/GetLibraryItemsActiveDirection.php + - src/Models/Operations/GetLibraryItemsCollection.php - src/Models/Operations/GetLibraryItemsCountry.php + - src/Models/Operations/GetLibraryItemsDefaultDirection.php - src/Models/Operations/GetLibraryItemsDirector.php - src/Models/Operations/GetLibraryItemsField.php - src/Models/Operations/GetLibraryItemsFieldType.php - src/Models/Operations/GetLibraryItemsFilter.php + - src/Models/Operations/GetLibraryItemsFlattenSeasons.php - src/Models/Operations/GetLibraryItemsGenre.php + - src/Models/Operations/GetLibraryItemsHasThumbnail.php - src/Models/Operations/GetLibraryItemsImage.php + - src/Models/Operations/GetLibraryItemsLibraryActiveDirection.php + - src/Models/Operations/GetLibraryItemsLibraryDefaultDirection.php + - src/Models/Operations/GetLibraryItemsLibraryField.php + - src/Models/Operations/GetLibraryItemsLibraryFieldType.php + - src/Models/Operations/GetLibraryItemsLibraryFilter.php + - src/Models/Operations/GetLibraryItemsLibraryOperator.php + - src/Models/Operations/GetLibraryItemsLibraryResponse200Type.php - src/Models/Operations/GetLibraryItemsLibraryResponseType.php + - src/Models/Operations/GetLibraryItemsLibrarySort.php - src/Models/Operations/GetLibraryItemsLibraryType.php - src/Models/Operations/GetLibraryItemsMedia.php - src/Models/Operations/GetLibraryItemsMediaContainer.php + - src/Models/Operations/GetLibraryItemsMediaGuid.php + - src/Models/Operations/GetLibraryItemsMeta.php + - src/Models/Operations/GetLibraryItemsMetaDataRating.php - src/Models/Operations/GetLibraryItemsMetadata.php - src/Models/Operations/GetLibraryItemsOperator.php + - src/Models/Operations/GetLibraryItemsOptimizedForStreaming.php - src/Models/Operations/GetLibraryItemsPart.php + - src/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.php + - src/Models/Operations/GetLibraryItemsQueryParamType.php - src/Models/Operations/GetLibraryItemsRequest.php - src/Models/Operations/GetLibraryItemsResponse.php - src/Models/Operations/GetLibraryItemsResponseBody.php - src/Models/Operations/GetLibraryItemsRole.php + - src/Models/Operations/GetLibraryItemsShowOrdering.php - src/Models/Operations/GetLibraryItemsSort.php + - src/Models/Operations/GetLibraryItemsStream.php - src/Models/Operations/GetLibraryItemsType.php + - src/Models/Operations/GetLibraryItemsUltraBlurColors.php - src/Models/Operations/GetLibraryItemsWriter.php - src/Models/Operations/GetMediaProvidersDirectory.php - src/Models/Operations/GetMediaProvidersMediaContainer.php @@ -1347,6 +1428,7 @@ generatedFiles: - src/Models/Operations/GetMetaDataByRatingKeyResponse.php - src/Models/Operations/GetMetaDataByRatingKeyResponseBody.php - src/Models/Operations/GetMetaDataByRatingKeyRole.php + - src/Models/Operations/GetMetaDataByRatingKeyStream.php - src/Models/Operations/GetMetaDataByRatingKeyWriter.php - src/Models/Operations/GetMetadataChildrenDirectory.php - src/Models/Operations/GetMetadataChildrenMediaContainer.php @@ -1390,11 +1472,36 @@ generatedFiles: - src/Models/Operations/GetPlaylistsRequest.php - src/Models/Operations/GetPlaylistsResponse.php - src/Models/Operations/GetPlaylistsResponseBody.php + - src/Models/Operations/GetRecentlyAddedActiveDirection.php + - src/Models/Operations/GetRecentlyAddedDefaultDirection.php + - src/Models/Operations/GetRecentlyAddedField.php + - src/Models/Operations/GetRecentlyAddedFieldType.php + - src/Models/Operations/GetRecentlyAddedFilter.php + - src/Models/Operations/GetRecentlyAddedHubsResponseType.php + - src/Models/Operations/GetRecentlyAddedHubsType.php + - src/Models/Operations/GetRecentlyAddedImage.php + - src/Models/Operations/GetRecentlyAddedLibraryCountry.php + - src/Models/Operations/GetRecentlyAddedLibraryDirector.php + - src/Models/Operations/GetRecentlyAddedLibraryFilter.php + - src/Models/Operations/GetRecentlyAddedLibraryGenre.php + - src/Models/Operations/GetRecentlyAddedLibraryMedia.php + - src/Models/Operations/GetRecentlyAddedLibraryMediaContainer.php + - src/Models/Operations/GetRecentlyAddedLibraryMetadata.php + - src/Models/Operations/GetRecentlyAddedLibraryPart.php + - src/Models/Operations/GetRecentlyAddedLibraryRequest.php + - src/Models/Operations/GetRecentlyAddedLibraryResponse.php + - src/Models/Operations/GetRecentlyAddedLibraryResponseBody.php + - src/Models/Operations/GetRecentlyAddedLibraryRole.php + - src/Models/Operations/GetRecentlyAddedLibraryType.php + - src/Models/Operations/GetRecentlyAddedLibraryWriter.php - src/Models/Operations/GetRecentlyAddedMediaContainer.php - src/Models/Operations/GetRecentlyAddedMetadata.php + - src/Models/Operations/GetRecentlyAddedOperator.php - src/Models/Operations/GetRecentlyAddedRequest.php - src/Models/Operations/GetRecentlyAddedResponse.php - src/Models/Operations/GetRecentlyAddedResponseBody.php + - src/Models/Operations/GetRecentlyAddedSort.php + - src/Models/Operations/GetRecentlyAddedType.php - src/Models/Operations/GetRefreshLibraryMetadataRequest.php - src/Models/Operations/GetRefreshLibraryMetadataResponse.php - src/Models/Operations/GetResizedPhotoRequest.php @@ -1405,6 +1512,7 @@ generatedFiles: - src/Models/Operations/GetResourcesStatisticsResponseBody.php - src/Models/Operations/GetSearchLibraryMediaContainer.php - src/Models/Operations/GetSearchLibraryMetadata.php + - src/Models/Operations/GetSearchLibraryQueryParamType.php - src/Models/Operations/GetSearchLibraryRequest.php - src/Models/Operations/GetSearchLibraryResponse.php - src/Models/Operations/GetSearchLibraryResponseBody.php @@ -1525,11 +1633,13 @@ generatedFiles: - src/Models/Operations/MediaProvider.php - src/Models/Operations/MediaReviewsVisibility.php - src/Models/Operations/Meta.php + - src/Models/Operations/MetaDataRating.php - src/Models/Operations/Metadata.php - src/Models/Operations/MinSize.php - src/Models/Operations/MyPlex.php - src/Models/Operations/OnlyTransient.php - src/Models/Operations/Operator.php + - src/Models/Operations/OptimizedForStreaming.php - src/Models/Operations/Part.php - src/Models/Operations/PastSubscription.php - src/Models/Operations/PathParamTaskName.php @@ -1551,6 +1661,7 @@ generatedFiles: - src/Models/Operations/PostUsersSignInDataFeatures.php - src/Models/Operations/PostUsersSignInDataMailingListStatus.php - src/Models/Operations/PostUsersSignInDataMediaReviewsVisibility.php + - src/Models/Operations/PostUsersSignInDataRequest.php - src/Models/Operations/PostUsersSignInDataRequestBody.php - src/Models/Operations/PostUsersSignInDataResponse.php - src/Models/Operations/PostUsersSignInDataServices.php @@ -1565,6 +1676,7 @@ generatedFiles: - src/Models/Operations/Provider.php - src/Models/Operations/QueryParamFilter.php - src/Models/Operations/QueryParamForce.php + - src/Models/Operations/QueryParamIncludeMeta.php - src/Models/Operations/QueryParamOnlyTransient.php - src/Models/Operations/QueryParamSmart.php - src/Models/Operations/QueryParamType.php @@ -1975,6 +2087,7 @@ examples: X-Plex-Device: "Linux" X-Plex-Version: "4.133.0" X-Plex-Platform: "Chrome" + X-Plex-Client-Identifier: "gcgzw5rz2xovp84b4vha3a40" responses: "200": 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} @@ -2134,7 +2247,7 @@ examples: X-Plex-Container-Size: 50 responses: "200": - application/json: {"MediaContainer": {"size": 70, "totalSize": 170, "offset": 0, "content": "secondary", "allowSync": true, "nocache": true, "art": "/:/resources/movie-fanart.jpg", "identifier": "com.plexapp.plugins.library", "librarySectionID": "", "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, "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", "showOrdering": "dvd", "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", "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, "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", "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1"}, {"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", "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1"}, {"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", "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1"}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [{"tag": "James Cameron"}], "Collection": [{"tag": "Working NL Subs"}], "Role": [{"tag": "Sigourney Weaver"}, {"tag": "Sigourney Weaver"}, {"tag": "Sigourney Weaver"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "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, "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", "showOrdering": "dvd", "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", "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, "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", "videoProfile": "main 10", "indexes": "sd", "hasThumbnail": "1"}]}], "Genre": [], "Country": [{"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"}], "Role": [{"tag": "Sigourney Weaver"}, {"tag": "Sigourney Weaver"}, {"tag": "Sigourney Weaver"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "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": [], "Sort": [], "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": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [], "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": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}]}}} + application/json: {"MediaContainer": {"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"}, {"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"}], "Field": [{"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"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"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", "showOrdering": "dvd", "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": 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}]}]}], "Genre": [{"tag": "Adventure"}, {"tag": "Adventure"}, {"tag": "Adventure"}], "Country": [{"tag": "United States of America"}, {"tag": "United States of America"}], "Director": [{"tag": "James Cameron"}, {"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"}], "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"}, {"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", "showOrdering": "dvd", "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": [], "Country": [{"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"}], "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"}], "Guid": [{"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [], "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": [], "Sort": [], "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": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}], "Sort": [], "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": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}, {"type": "tag", "Operator": [{"key": "=", "title": "is"}, {"key": "=", "title": "is"}]}]}}} "400": application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} "401": @@ -2431,6 +2544,23 @@ examples: application/json: {"errors": []} "401": application/json: {"errors": []} + "": + parameters: + query: + X-Plex-Client-Identifier: "gcgzw5rz2xovp84b4vha3a40" + X-Plex-Product: "Plex Web" + X-Plex-Device: "Linux" + X-Plex-Version: "4.133.0" + X-Plex-Platform: "Chrome" + requestBody: + application/x-www-form-urlencoded: {"login": "username@email.com", "password": "password123", "verificationCode": "123456"} + responses: + "201": + application/json: {"adsConsent": true, "adsConsentReminderAt": "2019-08-24T14:15:22Z", "adsConsentSetAt": "2019-08-24T14:15:22Z", "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": 1721154902, "locale": null, "mailingListActive": false, "mailingListStatus": "unsubscribed", "maxHomeSize": 15, "pin": "string", "profile": {"autoSelectAudio": true, "defaultAudioLanguage": "ja", "defaultSubtitleLanguage": "en", "autoSelectSubtitle": 1, "defaultSubtitleAccessibility": 1, "defaultSubtitleForced": 1, "watchedIndicator": 1, "mediaReviewsVisibility": 1}, "protected": false, "rememberExpiresAt": 1722364046, "restricted": false, "roles": ["string"], "scrobbleTypes": "", "services": [{"identifier": "metadata-dev", "endpoint": "https://epg.provider.plex.tv", "token": "DjoMtqFAGRL1uVtCyF1dKIorTbShJeqv", "secret": "string", "status": "online"}], "subscription": {"features": ["Android - Dolby Vision"], "active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive", "paymentService": "string", "plan": "string"}, "subscriptionDescription": "string", "subscriptions": [{"features": ["Android - Dolby Vision"], "active": true, "subscribedAt": "2021-04-12T18:21:12Z", "status": "Inactive", "paymentService": "string", "plan": "string"}], "thumb": "https://plex.tv/users/a4f43c1ebfde43a5/avatar?c=8372075101", "title": "UsernameTitle", "twoFactorEnabled": false, "username": "Username", "uuid": "dae343c1f45beb4f", "attributionPartner": null, "pastSubscriptions": [{"id": "string", "mode": "string", "renewsAt": "string", "endsAt": "1556281940", "canceled": "0", "gracePeriod": "0", "onHold": "0", "canReactivate": "0", "canUpgrade": "0", "canDowngrade": "0", "canConvert": "0", "type": "plexpass", "transfer": "string", "state": "ended", "billing": {"paymentMethodId": 481656}}], "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}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + "401": + application/json: {"errors": []} getStatistics: "": parameters: @@ -2603,3 +2733,34 @@ examples: application/json: {"errors": []} "401": application/json: {"errors": []} + get-recently-added: + speakeasy-default-get-recently-added: + parameters: + query: + contentDirectoryID: 470161 + sectionID: 2 + type: 2 + includeMeta: 1 + X-Plex-Container-Start: 0 + X-Plex-Container-Size: 50 + responses: + "200": + application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "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"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "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"}, {"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": "show", "title": "TV Shows", "active": false, "Filter": [{"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "filter"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "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"}, {"key": "show.title", "title": "Show Title", "type": "string", "subType": "rating"}]}, {"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"}, {"filter": "genre", "filterType": "string", "key": "/library/sections/2/genre?type=2", "title": "Genre", "type": "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"}], "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": [{"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", "showOrdering": "dvd", "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": 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": []}]}], "Genre": [{"tag": "Adventure"}], "Country": [], "Director": [{"tag": "James Cameron"}, {"tag": "James Cameron"}], "Writer": [], "Collection": [], "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"}], "Guid": [{"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}, {"id": "imdb://tt13015952"}], "UltraBlurColors": {"topLeft": "11333b", "topRight": "0a232d", "bottomRight": "73958", "bottomLeft": "1f5066"}, "Rating": [], "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"}]}} + get-recently-added-library: + speakeasy-default-get-recently-added-library: + parameters: + query: + contentDirectoryID: 2 + pinnedContentDirectoryID: [3, 5, 7, 13, 12, 1, 6, 14, 2, 10, 16, 17] + sectionID: 2 + type: 2 + includeMeta: 1 + X-Plex-Container-Start: 0 + X-Plex-Container-Size: 50 + responses: + "200": + application/json: {"MediaContainer": {"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"}]}, {"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": [], "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": []}], "Genre": [], "Director": [{"tag": "Peyton Reed"}], "Writer": [], "Country": [], "Role": [{"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}, {"tag": "Paul Rudd"}]}]}} + "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}]} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index d76a016..cb5926f 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -12,7 +12,7 @@ generation: auth: oAuth2ClientCredentialsEnabled: false php: - version: 0.9.1 + version: 0.10.0 clientServerStatusCodesAsErrors: true flattenGlobalSecurity: true imports: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index ca2d1b2..a04d143 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.401.2 +speakeasyVersion: 1.402.14 sources: my-source: sourceNamespace: my-source @@ -9,8 +9,8 @@ sources: - main plexapi: sourceNamespace: plexapi - sourceRevisionDigest: sha256:fc6eebe661455e23b1aa352a91c14ef773fa72331330ec4caeddc2c460dc16bb - sourceBlobDigest: sha256:2e81e86c83d7f4e8842efca0d43a2db84a4932534c8439e3737e1f65c873f855 + sourceRevisionDigest: sha256:b7081644a59eca24a22b8009506fcf459bf18b07dce0462b39bc36c40d94862e + sourceBlobDigest: sha256:6b822f23afbc630bbc0fc12299316ea03d3671a2c2a81241ad4caa49022b430e tags: - latest - main @@ -18,10 +18,10 @@ targets: plexphp: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:fc6eebe661455e23b1aa352a91c14ef773fa72331330ec4caeddc2c460dc16bb - sourceBlobDigest: sha256:2e81e86c83d7f4e8842efca0d43a2db84a4932534c8439e3737e1f65c873f855 + sourceRevisionDigest: sha256:b7081644a59eca24a22b8009506fcf459bf18b07dce0462b39bc36c40d94862e + sourceBlobDigest: sha256:6b822f23afbc630bbc0fc12299316ea03d3671a2c2a81241ad4caa49022b430e codeSamplesNamespace: code-samples-php-plexphp - codeSamplesRevisionDigest: sha256:2aef293ad566ab27122b647acfe022f3b6c648d564d9c05f6a8a7951841e4c8f + codeSamplesRevisionDigest: sha256:79772c55deda5b6a51423f1e52bde30280ceb6babc20a243a4905190cee8f142 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 32e666b..f292e75 100644 --- a/README.md +++ b/README.md @@ -100,12 +100,13 @@ try { ### [Hubs](docs/sdks/hubs/README.md) * [getGlobalHubs](docs/sdks/hubs/README.md#getglobalhubs) - Get Global Hubs +* [getRecentlyAdded](docs/sdks/hubs/README.md#getrecentlyadded) - Get Recently Added * [getLibraryHubs](docs/sdks/hubs/README.md#getlibraryhubs) - Get library specific hubs ### [Library](docs/sdks/library/README.md) * [getFileHash](docs/sdks/library/README.md#getfilehash) - Get Hash Value -* [getRecentlyAdded](docs/sdks/library/README.md#getrecentlyadded) - Get Recently Added +* [getRecentlyAddedLibrary](docs/sdks/library/README.md#getrecentlyaddedlibrary) - Get Recently Added * [getAllLibraries](docs/sdks/library/README.md#getalllibraries) - Get All Libraries * [getLibraryDetails](docs/sdks/library/README.md#getlibrarydetails) - Get Library Details * [deleteLibrary](docs/sdks/library/README.md#deletelibrary) - Delete Library Section diff --git a/RELEASES.md b/RELEASES.md index 82ee5ac..adc3baa 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -622,4 +622,14 @@ Based on: ### Generated - [php v0.9.1] . ### Releases -- [Composer v0.9.1] https://packagist.org/packages/lukehagar/plex-api#v0.9.1 - . \ No newline at end of file +- [Composer v0.9.1] https://packagist.org/packages/lukehagar/plex-api#v0.9.1 - . + +## 2024-09-26 00:09:11 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.402.14 (2.422.22) https://github.com/speakeasy-api/speakeasy +### Generated +- [php v0.10.0] . +### Releases +- [Composer v0.10.0] https://packagist.org/packages/lukehagar/plex-api#v0.10.0 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 694fc4e..639d27f 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -695,6 +695,49 @@ actions: $response = $sdk->hubs->getGlobalHubs(1262.49, Operations\OnlyTransient::One); + if ($response->object !== null) { + // handle response + } + } catch (Throwable $e) { + // handle exception + } + - target: $["paths"]["/hubs/home/recentlyAdded"]["get"] + update: + x-codeSamples: + - lang: php + label: added + source: |- + declare(strict_types=1); + + require 'vendor/autoload.php'; + + use LukeHagar\Plex_API; + use LukeHagar\Plex_API\Models\Components; + use LukeHagar\Plex_API\Models\Operations; + + $security = new Components\Security( + accessToken: "", + ); + + $sdk = Plex_API\PlexAPI::builder() + ->setClientID('gcgzw5rz2xovp84b4vha3a40') + ->setClientName('Plex Web') + ->setClientVersion('4.133.0') + ->setClientPlatform('Chrome') + ->setDeviceName('Linux') + ->setSecurity($security)->build(); + + try { + $request = new Operations\GetRecentlyAddedRequest( + contentDirectoryID: 470161, + sectionID: 2, + type: Operations\Type::TvShow, + includeMeta: Operations\IncludeMeta::Enable, + xPlexContainerStart: 0, + xPlexContainerSize: 50, + ); + $response = $sdk->hubs->getRecentlyAdded($request); + if ($response->object !== null) { // handle response } @@ -728,7 +771,7 @@ actions: try { - $response = $sdk->search->performSearch('dylan', 5838.67, 5); + $response = $sdk->search->performSearch('dylan', 9372.69, 5); if ($response->statusCode === 200) { // handle response @@ -1101,7 +1144,7 @@ actions: update: x-codeSamples: - lang: php - label: getRecentlyAdded + label: library source: |- declare(strict_types=1); @@ -1109,6 +1152,7 @@ actions: use LukeHagar\Plex_API; use LukeHagar\Plex_API\Models\Components; + use LukeHagar\Plex_API\Models\Operations; $security = new Components\Security( accessToken: "", @@ -1123,8 +1167,29 @@ actions: ->setSecurity($security)->build(); try { - - $response = $sdk->library->getRecentlyAdded(0, 50); + $request = new Operations\GetRecentlyAddedLibraryRequest( + contentDirectoryID: 2, + pinnedContentDirectoryID: [ + 3, + 5, + 7, + 13, + 12, + 1, + 6, + 14, + 2, + 10, + 16, + 17, + ], + sectionID: 2, + type: Operations\QueryParamType::TvShow, + includeMeta: Operations\QueryParamIncludeMeta::Enable, + xPlexContainerStart: 0, + xPlexContainerSize: 50, + ); + $response = $sdk->library->getRecentlyAddedLibrary($request); if ($response->object !== null) { // handle response @@ -1342,7 +1407,7 @@ actions: try { - $response = $sdk->library->getSearchLibrary(9518, Operations\QueryParamType::TvShow); + $response = $sdk->library->getSearchLibrary(9518, Operations\GetSearchLibraryQueryParamType::TvShow); if ($response->object !== null) { // handle response @@ -1381,8 +1446,8 @@ actions: sectionKey: 9518, tag: Operations\Tag::Edition, includeGuids: Operations\IncludeGuids::Enable, - includeMeta: Operations\IncludeMeta::Enable, - type: Operations\Type::TvShow, + type: Operations\GetLibraryItemsQueryParamType::TvShow, + includeMeta: Operations\GetLibraryItemsQueryParamIncludeMeta::Enable, xPlexContainerStart: 0, xPlexContainerSize: 50, ); @@ -1601,9 +1666,9 @@ actions: width: 110, height: 165, opacity: 643869, - blur: 4000, + blur: 0, minSize: Operations\MinSize::One, - upscale: Operations\Upscale::Zero, + upscale: Operations\Upscale::One, url: '/library/metadata/49564/thumb/1654258204', ); $response = $sdk->server->getResizedPhoto($request); @@ -2097,7 +2162,7 @@ actions: try { - $response = $sdk->authentication->getSourceConnectionInformation('provider://provider-identifier'); + $response = $sdk->authentication->getSourceConnectionInformation('server://client-identifier'); if ($response->statusCode === 200) { // handle response @@ -2581,10 +2646,12 @@ actions: ->build(); try { - $request = new Operations\PostUsersSignInDataRequestBody( - login: 'username@email.com', - password: 'password123', - verificationCode: '123456', + $request = new Operations\PostUsersSignInDataRequest( + requestBody: new Operations\PostUsersSignInDataRequestBody( + login: 'username@email.com', + password: 'password123', + verificationCode: '123456', + ), ); $response = $sdk->authentication->postUsersSignInData($request); diff --git a/docs/Models/Errors/GetRecentlyAddedBadRequest.md b/docs/Models/Errors/GetRecentlyAddedBadRequest.md deleted file mode 100644 index 7d22979..0000000 --- a/docs/Models/Errors/GetRecentlyAddedBadRequest.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetRecentlyAddedBadRequest - -Bad Request - A parameter was not specified, or was specified incorrectly. - - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `errors` | array<[Errors\GetRecentlyAddedErrors](../../Models/Errors/GetRecentlyAddedErrors.md)> | :heavy_minus_sign: | N/A | -| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/Models/Errors/GetRecentlyAddedErrors.md b/docs/Models/Errors/GetRecentlyAddedErrors.md deleted file mode 100644 index aa360b3..0000000 --- a/docs/Models/Errors/GetRecentlyAddedErrors.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetRecentlyAddedErrors - - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `code` | *?int* | :heavy_minus_sign: | N/A | 1000 | -| `message` | *?string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | -| `status` | *?int* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/Models/Errors/GetRecentlyAddedUnauthorized.md b/docs/Models/Errors/GetRecentlyAddedLibraryBadRequest.md similarity index 94% rename from docs/Models/Errors/GetRecentlyAddedUnauthorized.md rename to docs/Models/Errors/GetRecentlyAddedLibraryBadRequest.md index eaf4d8f..e0a7e55 100644 --- a/docs/Models/Errors/GetRecentlyAddedUnauthorized.md +++ b/docs/Models/Errors/GetRecentlyAddedLibraryBadRequest.md @@ -1,6 +1,6 @@ -# GetRecentlyAddedUnauthorized +# GetRecentlyAddedLibraryBadRequest -Unauthorized - Returned if the X-Plex-Token is missing from the header or query. +Bad Request - A parameter was not specified, or was specified incorrectly. ## Fields diff --git a/docs/Models/Errors/GetRecentlyAddedLibraryErrors.md b/docs/Models/Errors/GetRecentlyAddedLibraryErrors.md index 84e7468..425e2dd 100644 --- a/docs/Models/Errors/GetRecentlyAddedLibraryErrors.md +++ b/docs/Models/Errors/GetRecentlyAddedLibraryErrors.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | -| `code` | *?int* | :heavy_minus_sign: | N/A | 1001 | -| `message` | *?string* | :heavy_minus_sign: | N/A | User could not be authenticated | -| `status` | *?int* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `code` | *?int* | :heavy_minus_sign: | N/A | 1000 | +| `message` | *?string* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | +| `status` | *?int* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.md b/docs/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.md new file mode 100644 index 0000000..1361220 --- /dev/null +++ b/docs/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.md @@ -0,0 +1,10 @@ +# GetRecentlyAddedLibraryLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *?int* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *?string* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *?int* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/Models/Errors/GetRecentlyAddedLibraryUnauthorized.md b/docs/Models/Errors/GetRecentlyAddedLibraryUnauthorized.md new file mode 100644 index 0000000..60f683e --- /dev/null +++ b/docs/Models/Errors/GetRecentlyAddedLibraryUnauthorized.md @@ -0,0 +1,11 @@ +# GetRecentlyAddedLibraryUnauthorized + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `errors` | array<[Errors\GetRecentlyAddedLibraryLibraryErrors](../../Models/Errors/GetRecentlyAddedLibraryLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/Models/Operations/Director.md b/docs/Models/Operations/Director.md index 7719fbb..d51adbb 100644 --- a/docs/Models/Operations/Director.md +++ b/docs/Models/Operations/Director.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | Example | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?string* | :heavy_minus_sign: | N/A | Peyton Reed | \ No newline at end of file +| `tag` | *?string* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file diff --git a/docs/Models/Operations/Field.md b/docs/Models/Operations/Field.md index e033639..e5caf0b 100644 --- a/docs/Models/Operations/Field.md +++ b/docs/Models/Operations/Field.md @@ -5,7 +5,7 @@ | Field | Type | Required | Description | Example | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `key` | *?string* | :heavy_minus_sign: | N/A | label | -| `title` | *?string* | :heavy_minus_sign: | N/A | Label | -| `type` | *?string* | :heavy_minus_sign: | N/A | tag | -| `subType` | *?string* | :heavy_minus_sign: | N/A | bitrate | \ No newline at end of file +| `key` | *string* | :heavy_check_mark: | N/A | show.title | +| `title` | *string* | :heavy_check_mark: | N/A | Show Title | +| `type` | *string* | :heavy_check_mark: | N/A | string | +| `subType` | *?string* | :heavy_minus_sign: | N/A | rating | \ No newline at end of file diff --git a/docs/Models/Operations/FieldType.md b/docs/Models/Operations/FieldType.md index e3e9349..1388127 100644 --- a/docs/Models/Operations/FieldType.md +++ b/docs/Models/Operations/FieldType.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | -| `type` | *?string* | :heavy_minus_sign: | N/A | resolution | -| `operator` | array<[Operations\Operator](../../Models/Operations/Operator.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `type` | *string* | :heavy_check_mark: | N/A | tag | +| `operator` | array<[Operations\Operator](../../Models/Operations/Operator.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/Genre.md b/docs/Models/Operations/Genre.md index 47f02b2..c8b2cb8 100644 --- a/docs/Models/Operations/Genre.md +++ b/docs/Models/Operations/Genre.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | Example | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?string* | :heavy_minus_sign: | N/A | Comedy | \ No newline at end of file +| `tag` | *?string* | :heavy_minus_sign: | N/A | Adventure | \ No newline at end of file diff --git a/docs/Models/Operations/GetAllLibrariesDirectory.md b/docs/Models/Operations/GetAllLibrariesDirectory.md index 9b6d46c..f32d4b5 100644 --- a/docs/Models/Operations/GetAllLibrariesDirectory.md +++ b/docs/Models/Operations/GetAllLibrariesDirectory.md @@ -23,6 +23,6 @@ | `scannedAt` | *int* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `content` | *bool* | :heavy_check_mark: | N/A | true | | `directory` | *bool* | :heavy_check_mark: | N/A | true | -| `contentChangedAt` | *int* | :heavy_check_mark: | N/A | 3192854 | +| `contentChangedAt` | *int* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `hidden` | *int* | :heavy_check_mark: | N/A | 0 | | `location` | array<[Operations\Location](../../Models/Operations/Location.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryDetailsField.md b/docs/Models/Operations/GetLibraryDetailsField.md new file mode 100644 index 0000000..bf3c8c5 --- /dev/null +++ b/docs/Models/Operations/GetLibraryDetailsField.md @@ -0,0 +1,11 @@ +# GetLibraryDetailsField + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *?string* | :heavy_minus_sign: | N/A | label | +| `title` | *?string* | :heavy_minus_sign: | N/A | Label | +| `type` | *?string* | :heavy_minus_sign: | N/A | tag | +| `subType` | *?string* | :heavy_minus_sign: | N/A | bitrate | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryDetailsFieldType.md b/docs/Models/Operations/GetLibraryDetailsFieldType.md new file mode 100644 index 0000000..c709aec --- /dev/null +++ b/docs/Models/Operations/GetLibraryDetailsFieldType.md @@ -0,0 +1,9 @@ +# GetLibraryDetailsFieldType + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| `type` | *?string* | :heavy_minus_sign: | N/A | resolution | +| `operator` | array<[Operations\GetLibraryDetailsOperator](../../Models/Operations/GetLibraryDetailsOperator.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryDetailsMediaContainer.md b/docs/Models/Operations/GetLibraryDetailsMediaContainer.md index 5bbd235..6a3a026 100644 --- a/docs/Models/Operations/GetLibraryDetailsMediaContainer.md +++ b/docs/Models/Operations/GetLibraryDetailsMediaContainer.md @@ -19,4 +19,4 @@ | `viewMode` | *?int* | :heavy_minus_sign: | N/A | 65592 | | `directory` | array<[Operations\GetLibraryDetailsDirectory](../../Models/Operations/GetLibraryDetailsDirectory.md)> | :heavy_minus_sign: | N/A | | | `type` | array<[Operations\GetLibraryDetailsType](../../Models/Operations/GetLibraryDetailsType.md)> | :heavy_minus_sign: | N/A | | -| `fieldType` | array<[Operations\FieldType](../../Models/Operations/FieldType.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `fieldType` | array<[Operations\GetLibraryDetailsFieldType](../../Models/Operations/GetLibraryDetailsFieldType.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryDetailsOperator.md b/docs/Models/Operations/GetLibraryDetailsOperator.md new file mode 100644 index 0000000..9a782ce --- /dev/null +++ b/docs/Models/Operations/GetLibraryDetailsOperator.md @@ -0,0 +1,9 @@ +# GetLibraryDetailsOperator + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *?string* | :heavy_minus_sign: | N/A | = | +| `title` | *?string* | :heavy_minus_sign: | N/A | is | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryDetailsSort.md b/docs/Models/Operations/GetLibraryDetailsSort.md new file mode 100644 index 0000000..daf289b --- /dev/null +++ b/docs/Models/Operations/GetLibraryDetailsSort.md @@ -0,0 +1,13 @@ +# GetLibraryDetailsSort + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `default` | *?string* | :heavy_minus_sign: | N/A | asc | +| `defaultDirection` | *?string* | :heavy_minus_sign: | N/A | desc | +| `descKey` | *?string* | :heavy_minus_sign: | N/A | random:desc | +| `firstCharacterKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/1/firstCharacter | +| `key` | *?string* | :heavy_minus_sign: | N/A | random | +| `title` | *?string* | :heavy_minus_sign: | N/A | Randomly | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryDetailsType.md b/docs/Models/Operations/GetLibraryDetailsType.md index e65668b..1236e4b 100644 --- a/docs/Models/Operations/GetLibraryDetailsType.md +++ b/docs/Models/Operations/GetLibraryDetailsType.md @@ -10,5 +10,5 @@ | `title` | *?string* | :heavy_minus_sign: | N/A | Movies | | `active` | *?bool* | :heavy_minus_sign: | N/A | false | | `filter` | array<[Operations\GetLibraryDetailsFilter](../../Models/Operations/GetLibraryDetailsFilter.md)> | :heavy_minus_sign: | N/A | | -| `sort` | array<[Operations\Sort](../../Models/Operations/Sort.md)> | :heavy_minus_sign: | N/A | | -| `field` | array<[Operations\Field](../../Models/Operations/Field.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `sort` | array<[Operations\GetLibraryDetailsSort](../../Models/Operations/GetLibraryDetailsSort.md)> | :heavy_minus_sign: | N/A | | +| `field` | array<[Operations\GetLibraryDetailsField](../../Models/Operations/GetLibraryDetailsField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsActiveDirection.md b/docs/Models/Operations/GetLibraryItemsActiveDirection.md new file mode 100644 index 0000000..308a017 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsActiveDirection.md @@ -0,0 +1,12 @@ +# GetLibraryItemsActiveDirection + +The direction of the sort. Can be either `asc` or `desc`. + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Ascending` | asc | +| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsCollection.md b/docs/Models/Operations/GetLibraryItemsCollection.md new file mode 100644 index 0000000..cbf6f67 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsCollection.md @@ -0,0 +1,8 @@ +# GetLibraryItemsCollection + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *?string* | :heavy_minus_sign: | N/A | Working NL Subs | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsDefaultDirection.md b/docs/Models/Operations/GetLibraryItemsDefaultDirection.md new file mode 100644 index 0000000..e9cec29 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsDefaultDirection.md @@ -0,0 +1,12 @@ +# GetLibraryItemsDefaultDirection + +The direction of the sort. Can be either `asc` or `desc`. + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Ascending` | asc | +| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsFlattenSeasons.md b/docs/Models/Operations/GetLibraryItemsFlattenSeasons.md new file mode 100644 index 0000000..d1ce12f --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsFlattenSeasons.md @@ -0,0 +1,9 @@ +# GetLibraryItemsFlattenSeasons + + +## Values + +| Name | Value | +| ------- | ------- | +| `False` | 0 | +| `True` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsHasThumbnail.md b/docs/Models/Operations/GetLibraryItemsHasThumbnail.md new file mode 100644 index 0000000..ae283db --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsHasThumbnail.md @@ -0,0 +1,9 @@ +# GetLibraryItemsHasThumbnail + + +## Values + +| Name | Value | +| ------- | ------- | +| `False` | 0 | +| `True` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsImage.md b/docs/Models/Operations/GetLibraryItemsImage.md index 38e1b0f..0588847 100644 --- a/docs/Models/Operations/GetLibraryItemsImage.md +++ b/docs/Models/Operations/GetLibraryItemsImage.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `alt` | *string* | :heavy_check_mark: | N/A | Episode 1 | -| `type` | [Operations\GetLibraryItemsLibraryResponseType](../../Models/Operations/GetLibraryItemsLibraryResponseType.md) | :heavy_check_mark: | N/A | background | -| `url` | *string* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `alt` | *string* | :heavy_check_mark: | N/A | Episode 1 | +| `type` | [Operations\GetLibraryItemsLibraryResponse200Type](../../Models/Operations/GetLibraryItemsLibraryResponse200Type.md) | :heavy_check_mark: | N/A | background | +| `url` | *string* | :heavy_check_mark: | N/A | /library/metadata/45521/thumb/1644710589 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryActiveDirection.md b/docs/Models/Operations/GetLibraryItemsLibraryActiveDirection.md new file mode 100644 index 0000000..82af157 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibraryActiveDirection.md @@ -0,0 +1,12 @@ +# GetLibraryItemsLibraryActiveDirection + +The direction of the sort. Can be either `asc` or `desc`. + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Ascending` | asc | +| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryDefaultDirection.md b/docs/Models/Operations/GetLibraryItemsLibraryDefaultDirection.md new file mode 100644 index 0000000..d2535c6 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibraryDefaultDirection.md @@ -0,0 +1,12 @@ +# GetLibraryItemsLibraryDefaultDirection + +The direction of the sort. Can be either `asc` or `desc`. + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Ascending` | asc | +| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryField.md b/docs/Models/Operations/GetLibraryItemsLibraryField.md new file mode 100644 index 0000000..4b13eb0 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibraryField.md @@ -0,0 +1,11 @@ +# GetLibraryItemsLibraryField + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | show.title | +| `title` | *string* | :heavy_check_mark: | N/A | Show Title | +| `type` | *string* | :heavy_check_mark: | N/A | string | +| `subType` | *?string* | :heavy_minus_sign: | N/A | rating | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryFieldType.md b/docs/Models/Operations/GetLibraryItemsLibraryFieldType.md new file mode 100644 index 0000000..bc3a807 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibraryFieldType.md @@ -0,0 +1,9 @@ +# GetLibraryItemsLibraryFieldType + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `type` | *string* | :heavy_check_mark: | N/A | tag | +| `operator` | array<[Operations\GetLibraryItemsLibraryOperator](../../Models/Operations/GetLibraryItemsLibraryOperator.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryFilter.md b/docs/Models/Operations/GetLibraryItemsLibraryFilter.md new file mode 100644 index 0000000..9cc4971 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibraryFilter.md @@ -0,0 +1,12 @@ +# GetLibraryItemsLibraryFilter + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `filter` | *string* | :heavy_check_mark: | N/A | genre | +| `filterType` | *string* | :heavy_check_mark: | N/A | string | +| `key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/genre?type=2 | +| `title` | *string* | :heavy_check_mark: | N/A | Genre | +| `type` | *string* | :heavy_check_mark: | N/A | filter | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryOperator.md b/docs/Models/Operations/GetLibraryItemsLibraryOperator.md new file mode 100644 index 0000000..9e71092 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibraryOperator.md @@ -0,0 +1,9 @@ +# GetLibraryItemsLibraryOperator + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | = | +| `title` | *string* | :heavy_check_mark: | N/A | is | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryResponse200Type.md b/docs/Models/Operations/GetLibraryItemsLibraryResponse200Type.md new file mode 100644 index 0000000..5318a52 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibraryResponse200Type.md @@ -0,0 +1,11 @@ +# GetLibraryItemsLibraryResponse200Type + + +## Values + +| Name | Value | +| ------------- | ------------- | +| `CoverPoster` | coverPoster | +| `Background` | background | +| `Snapshot` | snapshot | +| `ClearLogo` | clearLogo | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryResponseType.md b/docs/Models/Operations/GetLibraryItemsLibraryResponseType.md index c74a08a..c0a39e3 100644 --- a/docs/Models/Operations/GetLibraryItemsLibraryResponseType.md +++ b/docs/Models/Operations/GetLibraryItemsLibraryResponseType.md @@ -1,11 +1,14 @@ # GetLibraryItemsLibraryResponseType -## Values +## Fields -| Name | Value | -| ------------- | ------------- | -| `CoverPoster` | coverPoster | -| `Background` | background | -| `Snapshot` | snapshot | -| `ClearLogo` | clearLogo | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 | +| `type` | *string* | :heavy_check_mark: | N/A | show | +| `title` | *string* | :heavy_check_mark: | N/A | TV Shows | +| `active` | *bool* | :heavy_check_mark: | N/A | false | +| `filter` | array<[Operations\GetLibraryItemsLibraryFilter](../../Models/Operations/GetLibraryItemsLibraryFilter.md)> | :heavy_minus_sign: | N/A | | +| `sort` | array<[Operations\GetLibraryItemsLibrarySort](../../Models/Operations/GetLibraryItemsLibrarySort.md)> | :heavy_minus_sign: | N/A | | +| `field` | array<[Operations\GetLibraryItemsLibraryField](../../Models/Operations/GetLibraryItemsLibraryField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibrarySort.md b/docs/Models/Operations/GetLibraryItemsLibrarySort.md new file mode 100644 index 0000000..1ef91a3 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsLibrarySort.md @@ -0,0 +1,15 @@ +# GetLibraryItemsLibrarySort + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `defaultDirection` | [Operations\GetLibraryItemsLibraryDefaultDirection](../../Models/Operations/GetLibraryItemsLibraryDefaultDirection.md) | :heavy_check_mark: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `key` | *string* | :heavy_check_mark: | N/A | titleSort | +| `title` | *string* | :heavy_check_mark: | N/A | Title | +| `default` | *?string* | :heavy_minus_sign: | N/A | asc | +| `active` | *?bool* | :heavy_minus_sign: | N/A | false | +| `activeDirection` | [?Operations\GetLibraryItemsLibraryActiveDirection](../../Models/Operations/GetLibraryItemsLibraryActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `descKey` | *?string* | :heavy_minus_sign: | N/A | titleSort:desc | +| `firstCharacterKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsLibraryType.md b/docs/Models/Operations/GetLibraryItemsLibraryType.md index 08d355e..8bb508d 100644 --- a/docs/Models/Operations/GetLibraryItemsLibraryType.md +++ b/docs/Models/Operations/GetLibraryItemsLibraryType.md @@ -1,14 +1,14 @@ # GetLibraryItemsLibraryType +The type of media content -## 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 | show | -| `title` | *string* | :heavy_check_mark: | N/A | TV Shows | -| `active` | *bool* | :heavy_check_mark: | N/A | false | -| `filter` | array<[Operations\GetLibraryItemsFilter](../../Models/Operations/GetLibraryItemsFilter.md)> | :heavy_minus_sign: | N/A | | -| `sort` | array<[Operations\GetLibraryItemsSort](../../Models/Operations/GetLibraryItemsSort.md)> | :heavy_minus_sign: | N/A | | -| `field` | array<[Operations\GetLibraryItemsField](../../Models/Operations/GetLibraryItemsField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file + +## Values + +| Name | Value | +| --------- | --------- | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsMedia.md b/docs/Models/Operations/GetLibraryItemsMedia.md index cca5874..42aaf37 100644 --- a/docs/Models/Operations/GetLibraryItemsMedia.md +++ b/docs/Models/Operations/GetLibraryItemsMedia.md @@ -3,21 +3,23 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `id` | *int* | :heavy_check_mark: | N/A | 119534 | -| `duration` | *int* | :heavy_check_mark: | N/A | 11558112 | -| `bitrate` | *int* | :heavy_check_mark: | N/A | 25025 | -| `width` | *int* | :heavy_check_mark: | N/A | 3840 | -| `height` | *int* | :heavy_check_mark: | N/A | 2072 | -| `aspectRatio` | *float* | :heavy_check_mark: | N/A | 1.85 | -| `audioChannels` | *int* | :heavy_check_mark: | N/A | 6 | -| `audioCodec` | *string* | :heavy_check_mark: | N/A | eac3 | -| `videoCodec` | *string* | :heavy_check_mark: | N/A | hevc | -| `videoResolution` | *string* | :heavy_check_mark: | N/A | 4k | -| `container` | *string* | :heavy_check_mark: | N/A | mkv | -| `videoFrameRate` | *string* | :heavy_check_mark: | N/A | 24p | -| `videoProfile` | *string* | :heavy_check_mark: | N/A | main 10 | -| `part` | array<[Operations\GetLibraryItemsPart](../../Models/Operations/GetLibraryItemsPart.md)> | :heavy_check_mark: | N/A | | -| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | dts | -| `hasVoiceActivity` | *?bool* | :heavy_minus_sign: | N/A | false | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | N/A | 119534 | +| `duration` | *int* | :heavy_check_mark: | N/A | 11558112 | +| `bitrate` | *int* | :heavy_check_mark: | N/A | 25025 | +| `width` | *int* | :heavy_check_mark: | N/A | 3840 | +| `height` | *int* | :heavy_check_mark: | N/A | 2072 | +| `aspectRatio` | *float* | :heavy_check_mark: | N/A | 1.85 | +| `audioChannels` | *int* | :heavy_check_mark: | N/A | 6 | +| `audioCodec` | *string* | :heavy_check_mark: | N/A | eac3 | +| `videoCodec` | *string* | :heavy_check_mark: | N/A | hevc | +| `videoResolution` | *string* | :heavy_check_mark: | N/A | 4k | +| `container` | *string* | :heavy_check_mark: | N/A | mkv | +| `videoFrameRate` | *string* | :heavy_check_mark: | N/A | 24p | +| `videoProfile` | *string* | :heavy_check_mark: | N/A | main 10 | +| `part` | array<[Operations\GetLibraryItemsPart](../../Models/Operations/GetLibraryItemsPart.md)> | :heavy_check_mark: | N/A | | +| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | dts | +| `hasVoiceActivity` | *?bool* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | [?Operations\GetLibraryItemsOptimizedForStreaming](../../Models/Operations/GetLibraryItemsOptimizedForStreaming.md) | :heavy_minus_sign: | N/A | 1 | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsMediaContainer.md b/docs/Models/Operations/GetLibraryItemsMediaContainer.md index 6bc7144..cce8ba6 100644 --- a/docs/Models/Operations/GetLibraryItemsMediaContainer.md +++ b/docs/Models/Operations/GetLibraryItemsMediaContainer.md @@ -1,28 +1,33 @@ # GetLibraryItemsMediaContainer +The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. + + ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| `size` | *int* | :heavy_check_mark: | N/A | 70 | -| `totalSize` | *int* | :heavy_check_mark: | N/A | 170 | -| `offset` | *int* | :heavy_check_mark: | N/A | 0 | -| `content` | *string* | :heavy_check_mark: | N/A | secondary | -| `allowSync` | *bool* | :heavy_check_mark: | N/A | true | -| `art` | *string* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg | -| `identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library | -| `librarySectionID` | [int\|string](../../Models/Operations/LibrarySectionID.md) | :heavy_check_mark: | N/A | | -| `librarySectionTitle` | *string* | :heavy_check_mark: | N/A | Movies | -| `librarySectionUUID` | *string* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | -| `mediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ | -| `mediaTagVersion` | *int* | :heavy_check_mark: | N/A | 1701731894 | -| `thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/movie.png | -| `title1` | *string* | :heavy_check_mark: | N/A | Movies | -| `title2` | *string* | :heavy_check_mark: | N/A | Recently Released | -| `viewGroup` | *string* | :heavy_check_mark: | N/A | movie | -| `metadata` | array<[Operations\GetLibraryItemsMetadata](../../Models/Operations/GetLibraryItemsMetadata.md)> | :heavy_check_mark: | N/A | | -| `nocache` | *?bool* | :heavy_minus_sign: | N/A | true | -| `viewMode` | *?int* | :heavy_minus_sign: | N/A | 65592 | -| `mixedParents` | *?bool* | :heavy_minus_sign: | N/A | true | -| `meta` | [?Operations\Meta](../../Models/Operations/Meta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
| | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `size` | *int* | :heavy_check_mark: | N/A | 70 | +| `totalSize` | *int* | :heavy_check_mark: | N/A | 170 | +| `offset` | *int* | :heavy_check_mark: | N/A | 0 | +| `content` | *string* | :heavy_check_mark: | N/A | secondary | +| `allowSync` | *bool* | :heavy_check_mark: | N/A | true | +| `art` | *string* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg | +| `identifier` | *string* | :heavy_check_mark: | N/A | com.plexapp.plugins.library | +| `librarySectionID` | *int* | :heavy_check_mark: | N/A | 1 | +| `librarySectionTitle` | *string* | :heavy_check_mark: | N/A | Movies | +| `librarySectionUUID` | *string* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | +| `mediaTagPrefix` | *string* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *int* | :heavy_check_mark: | N/A | 1701731894 | +| `thumb` | *string* | :heavy_check_mark: | N/A | /:/resources/movie.png | +| `title1` | *string* | :heavy_check_mark: | N/A | Movies | +| `title2` | *string* | :heavy_check_mark: | N/A | Recently Released | +| `viewGroup` | *string* | :heavy_check_mark: | N/A | movie | +| `metadata` | array<[Operations\GetLibraryItemsMetadata](../../Models/Operations/GetLibraryItemsMetadata.md)> | :heavy_check_mark: | N/A | | +| `type` | array<[Operations\GetLibraryItemsType](../../Models/Operations/GetLibraryItemsType.md)> | :heavy_minus_sign: | N/A | | +| `fieldType` | array<[Operations\GetLibraryItemsFieldType](../../Models/Operations/GetLibraryItemsFieldType.md)> | :heavy_minus_sign: | N/A | | +| `nocache` | *?bool* | :heavy_minus_sign: | N/A | true | +| `viewMode` | *?int* | :heavy_minus_sign: | N/A | 65592 | +| `mixedParents` | *?bool* | :heavy_minus_sign: | N/A | true | +| `meta` | [?Operations\GetLibraryItemsMeta](../../Models/Operations/GetLibraryItemsMeta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
| | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsMediaGuid.md b/docs/Models/Operations/GetLibraryItemsMediaGuid.md new file mode 100644 index 0000000..d0cdc17 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsMediaGuid.md @@ -0,0 +1,8 @@ +# GetLibraryItemsMediaGuid + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Can be one of the following formats:
imdb://tt13015952, tmdb://2434012, tvdb://7945991
| imdb://tt13015952 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsMeta.md b/docs/Models/Operations/GetLibraryItemsMeta.md new file mode 100644 index 0000000..1903f43 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsMeta.md @@ -0,0 +1,12 @@ +# GetLibraryItemsMeta + +The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. + + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `type` | array<[Operations\GetLibraryItemsLibraryResponseType](../../Models/Operations/GetLibraryItemsLibraryResponseType.md)> | :heavy_minus_sign: | N/A | +| `fieldType` | array<[Operations\GetLibraryItemsLibraryFieldType](../../Models/Operations/GetLibraryItemsLibraryFieldType.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsMetaDataRating.md b/docs/Models/Operations/GetLibraryItemsMetaDataRating.md new file mode 100644 index 0000000..7a50f97 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsMetaDataRating.md @@ -0,0 +1,10 @@ +# GetLibraryItemsMetaDataRating + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `image` | *string* | :heavy_check_mark: | A URI or path to the rating image. | themoviedb://image.rating | +| `value` | *float* | :heavy_check_mark: | The value of the rating. | 3 | +| `type` | *string* | :heavy_check_mark: | The type of rating (e.g., audience, critic). | audience | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsMetadata.md b/docs/Models/Operations/GetLibraryItemsMetadata.md index e7eee0d..0521630 100644 --- a/docs/Models/Operations/GetLibraryItemsMetadata.md +++ b/docs/Models/Operations/GetLibraryItemsMetadata.md @@ -8,12 +8,15 @@ | `ratingKey` | *string* | :heavy_check_mark: | The rating key (Media ID) of this media item.
Note: This is always an integer, but is represented as a string in the API.
| 58683 | | `key` | *string* | :heavy_check_mark: | N/A | /library/metadata/58683 | | `guid` | *string* | :heavy_check_mark: | N/A | plex://movie/5d7768ba96b655001fdc0408 | -| `type` | [Operations\GetLibraryItemsType](../../Models/Operations/GetLibraryItemsType.md) | :heavy_check_mark: | The type of media content
| movie | +| `type` | [Operations\GetLibraryItemsLibraryType](../../Models/Operations/GetLibraryItemsLibraryType.md) | :heavy_check_mark: | The type of media content
| movie | | `title` | *string* | :heavy_check_mark: | N/A | Avatar: The Way of Water | | `summary` | *string* | :heavy_check_mark: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. | | `addedAt` | *int* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | | `studio` | *?string* | :heavy_minus_sign: | N/A | 20th Century Studios | | `skipChildren` | *?bool* | :heavy_minus_sign: | N/A | false | +| `librarySectionID` | *?int* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *?string* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/1 | | `slug` | *?string* | :heavy_minus_sign: | N/A | 4-for-texas | | `contentRating` | *?string* | :heavy_minus_sign: | N/A | PG-13 | | `rating` | *?float* | :heavy_minus_sign: | N/A | 7.6 | @@ -21,8 +24,8 @@ | `year` | *?int* | :heavy_minus_sign: | N/A | 2022 | | `seasonCount` | *?int* | :heavy_minus_sign: | N/A | 2022 | | `tagline` | *?string* | :heavy_minus_sign: | N/A | Return to Pandora. | -| `flattenSeasons` | [?Operations\FlattenSeasons](../../Models/Operations/FlattenSeasons.md) | :heavy_minus_sign: | N/A | 1 | -| `showOrdering` | [?Operations\ShowOrdering](../../Models/Operations/ShowOrdering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| dvd | +| `flattenSeasons` | [?Operations\GetLibraryItemsFlattenSeasons](../../Models/Operations/GetLibraryItemsFlattenSeasons.md) | :heavy_minus_sign: | N/A | 1 | +| `showOrdering` | [?Operations\GetLibraryItemsShowOrdering](../../Models/Operations/GetLibraryItemsShowOrdering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| dvd | | `thumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | | `art` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | | `banner` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | @@ -38,6 +41,7 @@ | `grandparentKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66 | | `grandparentTitle` | *?string* | :heavy_minus_sign: | N/A | Caprica | | `grandparentThumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | +| `parentSlug` | *?string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | | `grandparentSlug` | *?string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | | `grandparentArt` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 | | `grandparentTheme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | @@ -46,10 +50,11 @@ | `country` | array<[Operations\GetLibraryItemsCountry](../../Models/Operations/GetLibraryItemsCountry.md)> | :heavy_minus_sign: | N/A | | | `director` | array<[Operations\GetLibraryItemsDirector](../../Models/Operations/GetLibraryItemsDirector.md)> | :heavy_minus_sign: | N/A | | | `writer` | array<[Operations\GetLibraryItemsWriter](../../Models/Operations/GetLibraryItemsWriter.md)> | :heavy_minus_sign: | N/A | | -| `collection` | array<[Operations\Collection](../../Models/Operations/Collection.md)> | :heavy_minus_sign: | N/A | | +| `collection` | array<[Operations\GetLibraryItemsCollection](../../Models/Operations/GetLibraryItemsCollection.md)> | :heavy_minus_sign: | N/A | | | `role` | array<[Operations\GetLibraryItemsRole](../../Models/Operations/GetLibraryItemsRole.md)> | :heavy_minus_sign: | N/A | | -| `mediaGuid` | array<[Operations\MediaGuid](../../Models/Operations/MediaGuid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | -| `ultraBlurColors` | [?Operations\UltraBlurColors](../../Models/Operations/UltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `mediaGuid` | array<[Operations\GetLibraryItemsMediaGuid](../../Models/Operations/GetLibraryItemsMediaGuid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | +| `ultraBlurColors` | [?Operations\GetLibraryItemsUltraBlurColors](../../Models/Operations/GetLibraryItemsUltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `metaDataRating` | array<[Operations\GetLibraryItemsMetaDataRating](../../Models/Operations/GetLibraryItemsMetaDataRating.md)> | :heavy_minus_sign: | N/A | | | `image` | array<[Operations\GetLibraryItemsImage](../../Models/Operations/GetLibraryItemsImage.md)> | :heavy_minus_sign: | N/A | | | `titleSort` | *?string* | :heavy_minus_sign: | N/A | Whale | | `viewCount` | *?int* | :heavy_minus_sign: | N/A | 1 | diff --git a/docs/Models/Operations/GetLibraryItemsOptimizedForStreaming.md b/docs/Models/Operations/GetLibraryItemsOptimizedForStreaming.md new file mode 100644 index 0000000..8075b9e --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsOptimizedForStreaming.md @@ -0,0 +1,9 @@ +# GetLibraryItemsOptimizedForStreaming + + +## Values + +| Name | Value | +| --------- | --------- | +| `Disable` | 0 | +| `Enable` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsPart.md b/docs/Models/Operations/GetLibraryItemsPart.md index 18cf473..955bae5 100644 --- a/docs/Models/Operations/GetLibraryItemsPart.md +++ b/docs/Models/Operations/GetLibraryItemsPart.md @@ -13,5 +13,8 @@ | `container` | *string* | :heavy_check_mark: | The container format of the media file.
| mkv | | `videoProfile` | *string* | :heavy_check_mark: | N/A | main 10 | | `audioProfile` | *?string* | :heavy_minus_sign: | N/A | dts | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | *?bool* | :heavy_minus_sign: | N/A | false | | `indexes` | *?string* | :heavy_minus_sign: | N/A | sd | -| `hasThumbnail` | [?Operations\HasThumbnail](../../Models/Operations/HasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | \ No newline at end of file +| `hasThumbnail` | [?Operations\GetLibraryItemsHasThumbnail](../../Models/Operations/GetLibraryItemsHasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | +| `stream` | array<[Operations\GetLibraryItemsStream](../../Models/Operations/GetLibraryItemsStream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.md b/docs/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.md new file mode 100644 index 0000000..d721bb9 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.md @@ -0,0 +1,12 @@ +# GetLibraryItemsQueryParamIncludeMeta + +Adds the Meta object to the response + + + +## Values + +| Name | Value | +| --------- | --------- | +| `Disable` | 0 | +| `Enable` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsQueryParamType.md b/docs/Models/Operations/GetLibraryItemsQueryParamType.md new file mode 100644 index 0000000..8ab46c4 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsQueryParamType.md @@ -0,0 +1,19 @@ +# GetLibraryItemsQueryParamType + +The type of media to retrieve. +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 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsRequest.md b/docs/Models/Operations/GetLibraryItemsRequest.md index 8eb4103..c4e1589 100644 --- a/docs/Models/Operations/GetLibraryItemsRequest.md +++ b/docs/Models/Operations/GetLibraryItemsRequest.md @@ -8,7 +8,7 @@ | `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library.
Note: This is unique in the context of the Plex server.
| 9518 | | `tag` | [Operations\Tag](../../Models/Operations/Tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. | | | `includeGuids` | [?Operations\IncludeGuids](../../Models/Operations/IncludeGuids.md) | :heavy_minus_sign: | Adds the Guids object to the response
| 1 | -| `includeMeta` | [?Operations\IncludeMeta](../../Models/Operations/IncludeMeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | -| `type` | [?Operations\Type](../../Models/Operations/Type.md) | :heavy_minus_sign: | The type of media to retrieve.
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 | +| `type` | [?Operations\GetLibraryItemsQueryParamType](../../Models/Operations/GetLibraryItemsQueryParamType.md) | :heavy_minus_sign: | The type of media to retrieve.
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` | [?Operations\GetLibraryItemsQueryParamIncludeMeta](../../Models/Operations/GetLibraryItemsQueryParamIncludeMeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | | `xPlexContainerStart` | *?int* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | | `xPlexContainerSize` | *?int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsRole.md b/docs/Models/Operations/GetLibraryItemsRole.md index 736879e..1e69641 100644 --- a/docs/Models/Operations/GetLibraryItemsRole.md +++ b/docs/Models/Operations/GetLibraryItemsRole.md @@ -3,6 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?string* | :heavy_minus_sign: | N/A | Sigourney Weaver | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *?int* | :heavy_minus_sign: | The ID of the tag or actor. | 294129 | +| `filter` | *?string* | :heavy_minus_sign: | The filter used to find the actor or tag. | actor=294129 | +| `thumb` | *?string* | :heavy_minus_sign: | The thumbnail of the actor | https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg | +| `tag` | *?string* | :heavy_minus_sign: | The name of the tag or actor. | Mike Smith | +| `tagKey` | *?string* | :heavy_minus_sign: | Unique identifier for the tag. | 668e7e7b22bcad9064350c91 | +| `role` | *?string* | :heavy_minus_sign: | The role of the actor or tag in the media. | Self | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsShowOrdering.md b/docs/Models/Operations/GetLibraryItemsShowOrdering.md new file mode 100644 index 0000000..1d7aa8c --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsShowOrdering.md @@ -0,0 +1,20 @@ +# GetLibraryItemsShowOrdering + +Setting that indicates the episode ordering for the show +None = Library default, +tmdbAiring = The Movie Database (Aired), +aired = TheTVDB (Aired), +dvd = TheTVDB (DVD), +absolute = TheTVDB (Absolute)). + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `None` | None | +| `TmdbAiring` | tmdbAiring | +| `Aired` | aired | +| `Dvd` | dvd | +| `Absolute` | absolute | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsSort.md b/docs/Models/Operations/GetLibraryItemsSort.md index b91fc66..e33e7a3 100644 --- a/docs/Models/Operations/GetLibraryItemsSort.md +++ b/docs/Models/Operations/GetLibraryItemsSort.md @@ -3,13 +3,13 @@ ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `defaultDirection` | [Operations\DefaultDirection](../../Models/Operations/DefaultDirection.md) | :heavy_check_mark: | The direction of the sort. Can be either `asc` or `desc`.
| asc | -| `key` | *string* | :heavy_check_mark: | N/A | titleSort | -| `title` | *string* | :heavy_check_mark: | N/A | Title | -| `default` | *?string* | :heavy_minus_sign: | N/A | asc | -| `active` | *?bool* | :heavy_minus_sign: | N/A | false | -| `activeDirection` | [?Operations\ActiveDirection](../../Models/Operations/ActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | -| `descKey` | *?string* | :heavy_minus_sign: | N/A | titleSort:desc | -| `firstCharacterKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `defaultDirection` | [Operations\GetLibraryItemsDefaultDirection](../../Models/Operations/GetLibraryItemsDefaultDirection.md) | :heavy_check_mark: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `key` | *string* | :heavy_check_mark: | N/A | titleSort | +| `title` | *string* | :heavy_check_mark: | N/A | Title | +| `default` | *?string* | :heavy_minus_sign: | N/A | asc | +| `active` | *?bool* | :heavy_minus_sign: | N/A | false | +| `activeDirection` | [?Operations\GetLibraryItemsActiveDirection](../../Models/Operations/GetLibraryItemsActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `descKey` | *?string* | :heavy_minus_sign: | N/A | titleSort:desc | +| `firstCharacterKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsStream.md b/docs/Models/Operations/GetLibraryItemsStream.md new file mode 100644 index 0000000..9ea582f --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsStream.md @@ -0,0 +1,45 @@ +# GetLibraryItemsStream + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | N/A | 272796 | +| `streamType` | *int* | :heavy_check_mark: | Type of stream (1 = video, 2 = audio, 3 = subtitle) | 1 | +| `codec` | *string* | :heavy_check_mark: | Codec used by the stream | h264 | +| `index` | *int* | :heavy_check_mark: | The index of the stream | 0 | +| `default` | *?bool* | :heavy_minus_sign: | Indicates if this is the default stream | true | +| `selected` | *?bool* | :heavy_minus_sign: | Indicates if the stream is selected | true | +| `bitrate` | *?int* | :heavy_minus_sign: | The bitrate of the stream in kbps | 6273 | +| `colorPrimaries` | *?string* | :heavy_minus_sign: | The color primaries of the video stream | bt709 | +| `colorRange` | *?string* | :heavy_minus_sign: | The color range of the video stream | tv | +| `colorSpace` | *?string* | :heavy_minus_sign: | The color space of the video stream | bt709 | +| `colorTrc` | *?string* | :heavy_minus_sign: | The transfer characteristics (TRC) of the video stream | bt709 | +| `bitDepth` | *?int* | :heavy_minus_sign: | The bit depth of the video stream | 8 | +| `chromaLocation` | *?string* | :heavy_minus_sign: | The chroma location of the video stream | left | +| `streamIdentifier` | *?string* | :heavy_minus_sign: | The identifier of the video stream | 2 | +| `chromaSubsampling` | *?string* | :heavy_minus_sign: | The chroma subsampling format | 4:2:0 | +| `codedHeight` | *?int* | :heavy_minus_sign: | The coded height of the video stream | 1088 | +| `codedWidth` | *?int* | :heavy_minus_sign: | The coded width of the video stream | 1920 | +| `frameRate` | *?float* | :heavy_minus_sign: | The frame rate of the video stream | 29.97 | +| `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | Indicates if the stream has a scaling matrix | false | +| `hearingImpaired` | *?bool* | :heavy_minus_sign: | N/A | false | +| `closedCaptions` | *?bool* | :heavy_minus_sign: | N/A | false | +| `embeddedInVideo` | *?string* | :heavy_minus_sign: | N/A | 1 | +| `height` | *?int* | :heavy_minus_sign: | The height of the video stream | 1080 | +| `level` | *?int* | :heavy_minus_sign: | The level of the video codec | 40 | +| `profile` | *?string* | :heavy_minus_sign: | The profile of the video codec | main | +| `refFrames` | *?int* | :heavy_minus_sign: | Number of reference frames | 4 | +| `scanType` | *?string* | :heavy_minus_sign: | The scan type (progressive or interlaced) | progressive | +| `width` | *?int* | :heavy_minus_sign: | The width of the video stream | 1920 | +| `displayTitle` | *?string* | :heavy_minus_sign: | Display title of the stream | 1080p (H.264) | +| `extendedDisplayTitle` | *?string* | :heavy_minus_sign: | Extended display title of the stream | 1080p (H.264) | +| `channels` | *?int* | :heavy_minus_sign: | Number of audio channels (for audio streams) | 2 | +| `language` | *?string* | :heavy_minus_sign: | The language of the stream (for audio/subtitle streams) | English | +| `languageTag` | *?string* | :heavy_minus_sign: | Language tag of the stream | en | +| `languageCode` | *?string* | :heavy_minus_sign: | Language code of the stream | eng | +| `audioChannelLayout` | *?string* | :heavy_minus_sign: | The audio channel layout | stereo | +| `samplingRate` | *?int* | :heavy_minus_sign: | Sampling rate of the audio stream in Hz | 48000 | +| `title` | *?string* | :heavy_minus_sign: | Title of the subtitle track (for subtitle streams) | English | +| `canAutoSync` | *?bool* | :heavy_minus_sign: | Indicates if the subtitle stream can auto-sync | false | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsType.md b/docs/Models/Operations/GetLibraryItemsType.md index 1888dbf..bf88298 100644 --- a/docs/Models/Operations/GetLibraryItemsType.md +++ b/docs/Models/Operations/GetLibraryItemsType.md @@ -1,14 +1,14 @@ # GetLibraryItemsType -The type of media content +## Fields - -## Values - -| Name | Value | -| --------- | --------- | -| `Movie` | movie | -| `TvShow` | show | -| `Season` | season | -| `Episode` | episode | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/all?type=2 | +| `type` | *string* | :heavy_check_mark: | N/A | show | +| `title` | *string* | :heavy_check_mark: | N/A | TV Shows | +| `active` | *bool* | :heavy_check_mark: | N/A | false | +| `filter` | array<[Operations\GetLibraryItemsFilter](../../Models/Operations/GetLibraryItemsFilter.md)> | :heavy_minus_sign: | N/A | | +| `sort` | array<[Operations\GetLibraryItemsSort](../../Models/Operations/GetLibraryItemsSort.md)> | :heavy_minus_sign: | N/A | | +| `field` | array<[Operations\GetLibraryItemsField](../../Models/Operations/GetLibraryItemsField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetLibraryItemsUltraBlurColors.md b/docs/Models/Operations/GetLibraryItemsUltraBlurColors.md new file mode 100644 index 0000000..8ff6c39 --- /dev/null +++ b/docs/Models/Operations/GetLibraryItemsUltraBlurColors.md @@ -0,0 +1,11 @@ +# GetLibraryItemsUltraBlurColors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `topLeft` | *string* | :heavy_check_mark: | N/A | 11333b | +| `topRight` | *string* | :heavy_check_mark: | N/A | 0a232d | +| `bottomRight` | *string* | :heavy_check_mark: | N/A | 73958 | +| `bottomLeft` | *string* | :heavy_check_mark: | N/A | 1f5066 | \ No newline at end of file diff --git a/docs/Models/Operations/GetMetaDataByRatingKeyPart.md b/docs/Models/Operations/GetMetaDataByRatingKeyPart.md index 8262c51..ab26d18 100644 --- a/docs/Models/Operations/GetMetaDataByRatingKeyPart.md +++ b/docs/Models/Operations/GetMetaDataByRatingKeyPart.md @@ -3,16 +3,16 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | -| `id` | *?int* | :heavy_minus_sign: | N/A | 15 | -| `key` | *?string* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 | -| `duration` | *?int* | :heavy_minus_sign: | N/A | 141417 | -| `file` | *?string* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 | -| `size` | *?int* | :heavy_minus_sign: | N/A | 40271948 | -| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | lc | -| `container` | *?string* | :heavy_minus_sign: | N/A | mp4 | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | -| `optimizedForStreaming` | *?bool* | :heavy_minus_sign: | N/A | false | -| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | high | -| `stream` | array<[Operations\Stream](../../Models/Operations/Stream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `id` | *?int* | :heavy_minus_sign: | N/A | 15 | +| `key` | *?string* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 | +| `duration` | *?int* | :heavy_minus_sign: | N/A | 141417 | +| `file` | *?string* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 | +| `size` | *?int* | :heavy_minus_sign: | N/A | 40271948 | +| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | lc | +| `container` | *?string* | :heavy_minus_sign: | N/A | mp4 | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | *?bool* | :heavy_minus_sign: | N/A | false | +| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | high | +| `stream` | array<[Operations\GetMetaDataByRatingKeyStream](../../Models/Operations/GetMetaDataByRatingKeyStream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetMetaDataByRatingKeyStream.md b/docs/Models/Operations/GetMetaDataByRatingKeyStream.md new file mode 100644 index 0000000..20595d8 --- /dev/null +++ b/docs/Models/Operations/GetMetaDataByRatingKeyStream.md @@ -0,0 +1,39 @@ +# GetMetaDataByRatingKeyStream + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `id` | *?int* | :heavy_minus_sign: | N/A | 29 | +| `streamType` | *?int* | :heavy_minus_sign: | N/A | 2 | +| `default` | *?bool* | :heavy_minus_sign: | N/A | true | +| `codec` | *?string* | :heavy_minus_sign: | N/A | aac | +| `index` | *?int* | :heavy_minus_sign: | N/A | 0 | +| `bitrate` | *?int* | :heavy_minus_sign: | N/A | 128 | +| `bitDepth` | *?int* | :heavy_minus_sign: | N/A | 8 | +| `chromaLocation` | *?string* | :heavy_minus_sign: | N/A | left | +| `chromaSubsampling` | *?string* | :heavy_minus_sign: | N/A | 14520 | +| `codedHeight` | *?int* | :heavy_minus_sign: | N/A | 816 | +| `codedWidth` | *?int* | :heavy_minus_sign: | N/A | 1920 | +| `colorPrimaries` | *?string* | :heavy_minus_sign: | N/A | bt709 | +| `colorRange` | *?string* | :heavy_minus_sign: | N/A | tv | +| `colorSpace` | *?string* | :heavy_minus_sign: | N/A | bt709 | +| `colorTrc` | *?string* | :heavy_minus_sign: | N/A | bt709 | +| `frameRate` | *?int* | :heavy_minus_sign: | N/A | 24 | +| `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | N/A | false | +| `height` | *?int* | :heavy_minus_sign: | N/A | 814 | +| `level` | *?int* | :heavy_minus_sign: | N/A | 40 | +| `profile` | *?string* | :heavy_minus_sign: | N/A | lc | +| `refFrames` | *?int* | :heavy_minus_sign: | N/A | 4 | +| `scanType` | *?string* | :heavy_minus_sign: | N/A | progressive | +| `streamIdentifier` | *?string* | :heavy_minus_sign: | N/A | 1 | +| `width` | *?int* | :heavy_minus_sign: | N/A | 1920 | +| `displayTitle` | *?string* | :heavy_minus_sign: | N/A | English (AAC Stereo) | +| `extendedDisplayTitle` | *?string* | :heavy_minus_sign: | N/A | English (AAC Stereo) | +| `selected` | *?bool* | :heavy_minus_sign: | N/A | true | +| `channels` | *?int* | :heavy_minus_sign: | N/A | 2 | +| `language` | *?string* | :heavy_minus_sign: | N/A | English | +| `languageTag` | *?string* | :heavy_minus_sign: | N/A | en | +| `languageCode` | *?string* | :heavy_minus_sign: | N/A | eng | +| `samplingRate` | *?int* | :heavy_minus_sign: | N/A | 44100 | \ No newline at end of file diff --git a/docs/Models/Operations/GetPinRequest.md b/docs/Models/Operations/GetPinRequest.md index 4df8ba6..0cb2d65 100644 --- a/docs/Models/Operations/GetPinRequest.md +++ b/docs/Models/Operations/GetPinRequest.md @@ -3,10 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `strong` | *?bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call
Strong codes are used for Pin authentication flows
Non-Strong codes are used for `Plex.tv/link`
| | -| `clientName` | *?string* | :heavy_minus_sign: | N/A | Plex Web | -| `deviceName` | *?string* | :heavy_minus_sign: | N/A | Linux | -| `clientVersion` | *?string* | :heavy_minus_sign: | N/A | 4.133.0 | -| `clientPlatform` | *?string* | :heavy_minus_sign: | N/A | Chrome | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `strong` | *?bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call
Strong codes are used for Pin authentication flows
Non-Strong codes are used for `Plex.tv/link`
| | +| `clientID` | *?string* | :heavy_minus_sign: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| gcgzw5rz2xovp84b4vha3a40 | +| `clientName` | *?string* | :heavy_minus_sign: | N/A | Plex Web | +| `deviceName` | *?string* | :heavy_minus_sign: | N/A | Linux | +| `clientVersion` | *?string* | :heavy_minus_sign: | N/A | 4.133.0 | +| `clientPlatform` | *?string* | :heavy_minus_sign: | N/A | Chrome | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedActiveDirection.md b/docs/Models/Operations/GetRecentlyAddedActiveDirection.md new file mode 100644 index 0000000..a0fa724 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedActiveDirection.md @@ -0,0 +1,12 @@ +# GetRecentlyAddedActiveDirection + +The direction of the sort. Can be either `asc` or `desc`. + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Ascending` | asc | +| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedDefaultDirection.md b/docs/Models/Operations/GetRecentlyAddedDefaultDirection.md new file mode 100644 index 0000000..b7422fa --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedDefaultDirection.md @@ -0,0 +1,12 @@ +# GetRecentlyAddedDefaultDirection + +The direction of the sort. Can be either `asc` or `desc`. + + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `Ascending` | asc | +| `Descending` | desc | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedField.md b/docs/Models/Operations/GetRecentlyAddedField.md new file mode 100644 index 0000000..19d59b1 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedField.md @@ -0,0 +1,11 @@ +# GetRecentlyAddedField + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | show.title | +| `title` | *string* | :heavy_check_mark: | N/A | Show Title | +| `type` | *string* | :heavy_check_mark: | N/A | string | +| `subType` | *?string* | :heavy_minus_sign: | N/A | rating | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedFieldType.md b/docs/Models/Operations/GetRecentlyAddedFieldType.md new file mode 100644 index 0000000..5cbfe65 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedFieldType.md @@ -0,0 +1,9 @@ +# GetRecentlyAddedFieldType + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| `type` | *string* | :heavy_check_mark: | N/A | tag | +| `operator` | array<[Operations\GetRecentlyAddedOperator](../../Models/Operations/GetRecentlyAddedOperator.md)> | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedFilter.md b/docs/Models/Operations/GetRecentlyAddedFilter.md new file mode 100644 index 0000000..827b381 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedFilter.md @@ -0,0 +1,12 @@ +# GetRecentlyAddedFilter + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `filter` | *string* | :heavy_check_mark: | N/A | genre | +| `filterType` | *string* | :heavy_check_mark: | N/A | string | +| `key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/genre?type=2 | +| `title` | *string* | :heavy_check_mark: | N/A | Genre | +| `type` | *string* | :heavy_check_mark: | N/A | filter | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedHubsResponseType.md b/docs/Models/Operations/GetRecentlyAddedHubsResponseType.md new file mode 100644 index 0000000..e1d6679 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedHubsResponseType.md @@ -0,0 +1,11 @@ +# GetRecentlyAddedHubsResponseType + + +## Values + +| Name | Value | +| ------------- | ------------- | +| `CoverPoster` | coverPoster | +| `Background` | background | +| `Snapshot` | snapshot | +| `ClearLogo` | clearLogo | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedHubsType.md b/docs/Models/Operations/GetRecentlyAddedHubsType.md new file mode 100644 index 0000000..eec1b20 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedHubsType.md @@ -0,0 +1,14 @@ +# GetRecentlyAddedHubsType + +The type of media content + + + +## Values + +| Name | Value | +| --------- | --------- | +| `Movie` | movie | +| `TvShow` | show | +| `Season` | season | +| `Episode` | episode | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedImage.md b/docs/Models/Operations/GetRecentlyAddedImage.md new file mode 100644 index 0000000..29d8605 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedImage.md @@ -0,0 +1,10 @@ +# GetRecentlyAddedImage + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `alt` | *string* | :heavy_check_mark: | N/A | Episode 1 | +| `type` | [Operations\GetRecentlyAddedHubsResponseType](../../Models/Operations/GetRecentlyAddedHubsResponseType.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/GetRecentlyAddedLibraryCountry.md b/docs/Models/Operations/GetRecentlyAddedLibraryCountry.md new file mode 100644 index 0000000..627e874 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryCountry.md @@ -0,0 +1,8 @@ +# GetRecentlyAddedLibraryCountry + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `tag` | *?string* | :heavy_minus_sign: | N/A | United States of America | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryDirector.md b/docs/Models/Operations/GetRecentlyAddedLibraryDirector.md new file mode 100644 index 0000000..5761c5f --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryDirector.md @@ -0,0 +1,8 @@ +# GetRecentlyAddedLibraryDirector + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *?string* | :heavy_minus_sign: | N/A | Peyton Reed | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryFilter.md b/docs/Models/Operations/GetRecentlyAddedLibraryFilter.md new file mode 100644 index 0000000..4e60acf --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryFilter.md @@ -0,0 +1,12 @@ +# GetRecentlyAddedLibraryFilter + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `filter` | *string* | :heavy_check_mark: | N/A | genre | +| `filterType` | *string* | :heavy_check_mark: | N/A | string | +| `key` | *string* | :heavy_check_mark: | N/A | /library/sections/2/genre?type=2 | +| `title` | *string* | :heavy_check_mark: | N/A | Genre | +| `type` | *string* | :heavy_check_mark: | N/A | filter | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryGenre.md b/docs/Models/Operations/GetRecentlyAddedLibraryGenre.md new file mode 100644 index 0000000..8573c97 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryGenre.md @@ -0,0 +1,8 @@ +# GetRecentlyAddedLibraryGenre + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *?string* | :heavy_minus_sign: | N/A | Comedy | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryMedia.md b/docs/Models/Operations/GetRecentlyAddedLibraryMedia.md new file mode 100644 index 0000000..2921f7e --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryMedia.md @@ -0,0 +1,23 @@ +# GetRecentlyAddedLibraryMedia + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| `id` | *?float* | :heavy_minus_sign: | N/A | 120345 | +| `duration` | *?float* | :heavy_minus_sign: | N/A | 7474422 | +| `bitrate` | *?float* | :heavy_minus_sign: | N/A | 3623 | +| `width` | *?float* | :heavy_minus_sign: | N/A | 1920 | +| `height` | *?float* | :heavy_minus_sign: | N/A | 804 | +| `aspectRatio` | *?float* | :heavy_minus_sign: | N/A | 2.35 | +| `audioChannels` | *?float* | :heavy_minus_sign: | N/A | 6 | +| `audioCodec` | *?string* | :heavy_minus_sign: | N/A | ac3 | +| `videoCodec` | *?string* | :heavy_minus_sign: | N/A | h264 | +| `videoResolution` | *?float* | :heavy_minus_sign: | N/A | 1080 | +| `container` | *?string* | :heavy_minus_sign: | N/A | mp4 | +| `videoFrameRate` | *?string* | :heavy_minus_sign: | N/A | 24p | +| `optimizedForStreaming` | *?float* | :heavy_minus_sign: | N/A | 0 | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | | +| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | high | +| `part` | array<[Operations\GetRecentlyAddedLibraryPart](../../Models/Operations/GetRecentlyAddedLibraryPart.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryMediaContainer.md b/docs/Models/Operations/GetRecentlyAddedLibraryMediaContainer.md new file mode 100644 index 0000000..f9d1d05 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryMediaContainer.md @@ -0,0 +1,19 @@ +# GetRecentlyAddedLibraryMediaContainer + +The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. + + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| `type` | array<[Operations\GetRecentlyAddedLibraryType](../../Models/Operations/GetRecentlyAddedLibraryType.md)> | :heavy_minus_sign: | N/A | | +| `fieldType` | array<[Operations\FieldType](../../Models/Operations/FieldType.md)> | :heavy_minus_sign: | N/A | | +| `size` | *?float* | :heavy_minus_sign: | N/A | 50 | +| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | | +| `identifier` | *?string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | +| `mediaTagPrefix` | *?string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *?float* | :heavy_minus_sign: | N/A | 1680021154 | +| `mixedParents` | *?bool* | :heavy_minus_sign: | N/A | | +| `metadata` | array<[Operations\GetRecentlyAddedLibraryMetadata](../../Models/Operations/GetRecentlyAddedLibraryMetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryMetadata.md b/docs/Models/Operations/GetRecentlyAddedLibraryMetadata.md new file mode 100644 index 0000000..c1ab6a0 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryMetadata.md @@ -0,0 +1,39 @@ +# GetRecentlyAddedLibraryMetadata + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | | +| `librarySectionID` | *?float* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *?string* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionUUID` | *?string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | +| `ratingKey` | *?float* | :heavy_minus_sign: | N/A | 59398 | +| `key` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59398 | +| `guid` | *?string* | :heavy_minus_sign: | N/A | plex://movie/5e161a83bea6ac004126e148 | +| `studio` | *?string* | :heavy_minus_sign: | N/A | Marvel Studios | +| `type` | *?string* | :heavy_minus_sign: | N/A | movie | +| `title` | *?string* | :heavy_minus_sign: | N/A | Ant-Man and the Wasp: Quantumania | +| `contentRating` | *?string* | :heavy_minus_sign: | N/A | PG-13 | +| `summary` | *?string* | :heavy_minus_sign: | N/A | Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible. | +| `rating` | *?float* | :heavy_minus_sign: | N/A | 4.7 | +| `audienceRating` | *?float* | :heavy_minus_sign: | N/A | 8.3 | +| `year` | *?float* | :heavy_minus_sign: | N/A | 2023 | +| `tagline` | *?string* | :heavy_minus_sign: | N/A | Witness the beginning of a new dynasty. | +| `thumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59398/thumb/1681888010 | +| `art` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59398/art/1681888010 | +| `duration` | *?float* | :heavy_minus_sign: | N/A | 7474422 | +| `originallyAvailableAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | N/A | 2023-02-15 00:00:00 +0000 UTC | +| `addedAt` | *?float* | :heavy_minus_sign: | N/A | 1681803215 | +| `updatedAt` | *?float* | :heavy_minus_sign: | N/A | 1681888010 | +| `audienceRatingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | +| `chapterSource` | *?string* | :heavy_minus_sign: | N/A | media | +| `primaryExtraKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59399 | +| `ratingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.rotten | +| `media` | array<[Operations\GetRecentlyAddedLibraryMedia](../../Models/Operations/GetRecentlyAddedLibraryMedia.md)> | :heavy_minus_sign: | N/A | | +| `genre` | array<[Operations\GetRecentlyAddedLibraryGenre](../../Models/Operations/GetRecentlyAddedLibraryGenre.md)> | :heavy_minus_sign: | N/A | | +| `director` | array<[Operations\GetRecentlyAddedLibraryDirector](../../Models/Operations/GetRecentlyAddedLibraryDirector.md)> | :heavy_minus_sign: | N/A | | +| `writer` | array<[Operations\GetRecentlyAddedLibraryWriter](../../Models/Operations/GetRecentlyAddedLibraryWriter.md)> | :heavy_minus_sign: | N/A | | +| `country` | array<[Operations\GetRecentlyAddedLibraryCountry](../../Models/Operations/GetRecentlyAddedLibraryCountry.md)> | :heavy_minus_sign: | N/A | | +| `role` | array<[Operations\GetRecentlyAddedLibraryRole](../../Models/Operations/GetRecentlyAddedLibraryRole.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryPart.md b/docs/Models/Operations/GetRecentlyAddedLibraryPart.md new file mode 100644 index 0000000..64ea768 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryPart.md @@ -0,0 +1,17 @@ +# GetRecentlyAddedLibraryPart + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `id` | *?float* | :heavy_minus_sign: | N/A | 120353 | +| `key` | *?string* | :heavy_minus_sign: | N/A | /library/parts/120353/1681803203/file.mp4 | +| `duration` | *?float* | :heavy_minus_sign: | N/A | 7474422 | +| `file` | *?string* | :heavy_minus_sign: | N/A | /movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4 | +| `size` | *?float* | :heavy_minus_sign: | N/A | 3395307162 | +| `container` | *?string* | :heavy_minus_sign: | N/A | mp4 | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | | +| `hasThumbnail` | *?float* | :heavy_minus_sign: | N/A | 1 | +| `optimizedForStreaming` | *?bool* | :heavy_minus_sign: | N/A | | +| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | high | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryRequest.md b/docs/Models/Operations/GetRecentlyAddedLibraryRequest.md new file mode 100644 index 0000000..1b1444b --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryRequest.md @@ -0,0 +1,14 @@ +# GetRecentlyAddedLibraryRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [Operations\QueryParamType](../../Models/Operations/QueryParamType.md) | :heavy_check_mark: | The type of media to retrieve.
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 | +| `contentDirectoryID` | *?int* | :heavy_minus_sign: | N/A | 2 | +| `pinnedContentDirectoryID` | array<*int*> | :heavy_minus_sign: | N/A | [
3,
5,
7,
13,
12,
1,
6,
14,
2,
10,
16,
17
] | +| `sectionID` | *?int* | :heavy_minus_sign: | The library section ID for filtering content. | 2 | +| `includeMeta` | [?Operations\QueryParamIncludeMeta](../../Models/Operations/QueryParamIncludeMeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | +| `xPlexContainerStart` | *?int* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | +| `xPlexContainerSize` | *?int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryResponse.md b/docs/Models/Operations/GetRecentlyAddedLibraryResponse.md new file mode 100644 index 0000000..81a8510 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryResponse.md @@ -0,0 +1,11 @@ +# GetRecentlyAddedLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [?Operations\GetRecentlyAddedLibraryResponseBody](../../Models/Operations/GetRecentlyAddedLibraryResponseBody.md) | :heavy_minus_sign: | The recently added content | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryResponseBody.md b/docs/Models/Operations/GetRecentlyAddedLibraryResponseBody.md new file mode 100644 index 0000000..319bdf2 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetRecentlyAddedLibraryResponseBody + +The recently added content + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `mediaContainer` | [?Operations\GetRecentlyAddedLibraryMediaContainer](../../Models/Operations/GetRecentlyAddedLibraryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryRole.md b/docs/Models/Operations/GetRecentlyAddedLibraryRole.md new file mode 100644 index 0000000..dba09f3 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryRole.md @@ -0,0 +1,8 @@ +# GetRecentlyAddedLibraryRole + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *?string* | :heavy_minus_sign: | N/A | Paul Rudd | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryType.md b/docs/Models/Operations/GetRecentlyAddedLibraryType.md new file mode 100644 index 0000000..0aaeede --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryType.md @@ -0,0 +1,14 @@ +# GetRecentlyAddedLibraryType + + +## 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 | show | +| `title` | *string* | :heavy_check_mark: | N/A | TV Shows | +| `active` | *bool* | :heavy_check_mark: | N/A | false | +| `filter` | array<[Operations\GetRecentlyAddedLibraryFilter](../../Models/Operations/GetRecentlyAddedLibraryFilter.md)> | :heavy_minus_sign: | N/A | | +| `sort` | array<[Operations\Sort](../../Models/Operations/Sort.md)> | :heavy_minus_sign: | N/A | | +| `field` | array<[Operations\Field](../../Models/Operations/Field.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedLibraryWriter.md b/docs/Models/Operations/GetRecentlyAddedLibraryWriter.md new file mode 100644 index 0000000..68d6518 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedLibraryWriter.md @@ -0,0 +1,8 @@ +# GetRecentlyAddedLibraryWriter + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `tag` | *?string* | :heavy_minus_sign: | N/A | Jeff Loveness | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedMediaContainer.md b/docs/Models/Operations/GetRecentlyAddedMediaContainer.md index 84b6da0..525dbf5 100644 --- a/docs/Models/Operations/GetRecentlyAddedMediaContainer.md +++ b/docs/Models/Operations/GetRecentlyAddedMediaContainer.md @@ -5,10 +5,10 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `size` | *?float* | :heavy_minus_sign: | N/A | 50 | -| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | | +| `size` | *float* | :heavy_check_mark: | N/A | 50 | +| `offset` | *?int* | :heavy_minus_sign: | N/A | | +| `totalSize` | *?int* | :heavy_minus_sign: | N/A | | | `identifier` | *?string* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `mediaTagPrefix` | *?string* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ | -| `mediaTagVersion` | *?float* | :heavy_minus_sign: | N/A | 1680021154 | -| `mixedParents` | *?bool* | :heavy_minus_sign: | N/A | | +| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | | +| `meta` | [?Operations\Meta](../../Models/Operations/Meta.md) | :heavy_minus_sign: | The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
| | | `metadata` | array<[Operations\GetRecentlyAddedMetadata](../../Models/Operations/GetRecentlyAddedMetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedMetadata.md b/docs/Models/Operations/GetRecentlyAddedMetadata.md index c4ac39c..6950767 100644 --- a/docs/Models/Operations/GetRecentlyAddedMetadata.md +++ b/docs/Models/Operations/GetRecentlyAddedMetadata.md @@ -3,37 +3,78 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `allowSync` | *?bool* | :heavy_minus_sign: | N/A | | -| `librarySectionID` | *?float* | :heavy_minus_sign: | N/A | 1 | -| `librarySectionTitle` | *?string* | :heavy_minus_sign: | N/A | Movies | -| `librarySectionUUID` | *?string* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 | -| `ratingKey` | *?float* | :heavy_minus_sign: | N/A | 59398 | -| `key` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59398 | -| `guid` | *?string* | :heavy_minus_sign: | N/A | plex://movie/5e161a83bea6ac004126e148 | -| `studio` | *?string* | :heavy_minus_sign: | N/A | Marvel Studios | -| `type` | *?string* | :heavy_minus_sign: | N/A | movie | -| `title` | *?string* | :heavy_minus_sign: | N/A | Ant-Man and the Wasp: Quantumania | -| `contentRating` | *?string* | :heavy_minus_sign: | N/A | PG-13 | -| `summary` | *?string* | :heavy_minus_sign: | N/A | Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible. | -| `rating` | *?float* | :heavy_minus_sign: | N/A | 4.7 | -| `audienceRating` | *?float* | :heavy_minus_sign: | N/A | 8.3 | -| `year` | *?float* | :heavy_minus_sign: | N/A | 2023 | -| `tagline` | *?string* | :heavy_minus_sign: | N/A | Witness the beginning of a new dynasty. | -| `thumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59398/thumb/1681888010 | -| `art` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59398/art/1681888010 | -| `duration` | *?float* | :heavy_minus_sign: | N/A | 7474422 | -| `originallyAvailableAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | N/A | 2023-02-15 00:00:00 +0000 UTC | -| `addedAt` | *?float* | :heavy_minus_sign: | N/A | 1681803215 | -| `updatedAt` | *?float* | :heavy_minus_sign: | N/A | 1681888010 | -| `audienceRatingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | -| `chapterSource` | *?string* | :heavy_minus_sign: | N/A | media | -| `primaryExtraKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/59399 | -| `ratingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.rotten | -| `media` | array<[Operations\Media](../../Models/Operations/Media.md)> | :heavy_minus_sign: | N/A | | -| `genre` | array<[Operations\Genre](../../Models/Operations/Genre.md)> | :heavy_minus_sign: | N/A | | -| `director` | array<[Operations\Director](../../Models/Operations/Director.md)> | :heavy_minus_sign: | N/A | | -| `writer` | array<[Operations\Writer](../../Models/Operations/Writer.md)> | :heavy_minus_sign: | N/A | | -| `country` | array<[Operations\Country](../../Models/Operations/Country.md)> | :heavy_minus_sign: | N/A | | -| `role` | array<[Operations\Role](../../Models/Operations/Role.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ratingKey` | *string* | :heavy_check_mark: | The rating key (Media ID) of this media item.
Note: This is always an integer, but is represented as a string in the API.
| 58683 | +| `key` | *string* | :heavy_check_mark: | N/A | /library/metadata/58683 | +| `guid` | *string* | :heavy_check_mark: | N/A | plex://movie/5d7768ba96b655001fdc0408 | +| `type` | [Operations\GetRecentlyAddedHubsType](../../Models/Operations/GetRecentlyAddedHubsType.md) | :heavy_check_mark: | The type of media content
| movie | +| `title` | *string* | :heavy_check_mark: | N/A | Avatar: The Way of Water | +| `summary` | *string* | :heavy_check_mark: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. | +| `addedAt` | *int* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 | +| `studio` | *?string* | :heavy_minus_sign: | N/A | 20th Century Studios | +| `skipChildren` | *?bool* | :heavy_minus_sign: | N/A | false | +| `librarySectionID` | *?int* | :heavy_minus_sign: | N/A | 1 | +| `librarySectionTitle` | *?string* | :heavy_minus_sign: | N/A | Movies | +| `librarySectionKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/1 | +| `slug` | *?string* | :heavy_minus_sign: | N/A | 4-for-texas | +| `contentRating` | *?string* | :heavy_minus_sign: | N/A | PG-13 | +| `rating` | *?float* | :heavy_minus_sign: | N/A | 7.6 | +| `audienceRating` | *?float* | :heavy_minus_sign: | N/A | 9.2 | +| `year` | *?int* | :heavy_minus_sign: | N/A | 2022 | +| `seasonCount` | *?int* | :heavy_minus_sign: | N/A | 2022 | +| `tagline` | *?string* | :heavy_minus_sign: | N/A | Return to Pandora. | +| `flattenSeasons` | [?Operations\FlattenSeasons](../../Models/Operations/FlattenSeasons.md) | :heavy_minus_sign: | N/A | 1 | +| `showOrdering` | [?Operations\ShowOrdering](../../Models/Operations/ShowOrdering.md) | :heavy_minus_sign: | Setting that indicates the episode ordering for the show
None = Library default,
tmdbAiring = The Movie Database (Aired),
aired = TheTVDB (Aired),
dvd = TheTVDB (DVD),
absolute = TheTVDB (Absolute)).
| dvd | +| `thumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 | +| `art` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 | +| `banner` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58683/banner/1703239236 | +| `duration` | *?int* | :heavy_minus_sign: | N/A | 11558112 | +| `originallyAvailableAt` | [\DateTime](https://www.php.net/manual/en/class.datetime.php) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC | +| `updatedAt` | *?int* | :heavy_minus_sign: | Unix epoch datetime in seconds | 1556281940 | +| `audienceRatingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright | +| `chapterSource` | *?string* | :heavy_minus_sign: | N/A | media | +| `primaryExtraKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/58684 | +| `ratingImage` | *?string* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe | +| `grandparentRatingKey` | *?string* | :heavy_minus_sign: | N/A | 66 | +| `grandparentGuid` | *?string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | +| `grandparentKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66 | +| `grandparentTitle` | *?string* | :heavy_minus_sign: | N/A | Caprica | +| `grandparentThumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | +| `parentSlug` | *?string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | +| `grandparentSlug` | *?string* | :heavy_minus_sign: | N/A | alice-in-borderland-2020 | +| `grandparentArt` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 | +| `grandparentTheme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | +| `media` | array<[Operations\Media](../../Models/Operations/Media.md)> | :heavy_minus_sign: | The Media object is only included when type query is `4` or higher.
| | +| `genre` | array<[Operations\Genre](../../Models/Operations/Genre.md)> | :heavy_minus_sign: | N/A | | +| `country` | array<[Operations\Country](../../Models/Operations/Country.md)> | :heavy_minus_sign: | N/A | | +| `director` | array<[Operations\Director](../../Models/Operations/Director.md)> | :heavy_minus_sign: | N/A | | +| `writer` | array<[Operations\Writer](../../Models/Operations/Writer.md)> | :heavy_minus_sign: | N/A | | +| `collection` | array<[Operations\Collection](../../Models/Operations/Collection.md)> | :heavy_minus_sign: | N/A | | +| `role` | array<[Operations\Role](../../Models/Operations/Role.md)> | :heavy_minus_sign: | N/A | | +| `mediaGuid` | array<[Operations\MediaGuid](../../Models/Operations/MediaGuid.md)> | :heavy_minus_sign: | The Guid object is only included in the response if the `includeGuids` parameter is set to `1`.
| | +| `ultraBlurColors` | [?Operations\UltraBlurColors](../../Models/Operations/UltraBlurColors.md) | :heavy_minus_sign: | N/A | | +| `metaDataRating` | array<[Operations\MetaDataRating](../../Models/Operations/MetaDataRating.md)> | :heavy_minus_sign: | N/A | | +| `image` | array<[Operations\GetRecentlyAddedImage](../../Models/Operations/GetRecentlyAddedImage.md)> | :heavy_minus_sign: | N/A | | +| `titleSort` | *?string* | :heavy_minus_sign: | N/A | Whale | +| `viewCount` | *?int* | :heavy_minus_sign: | N/A | 1 | +| `lastViewedAt` | *?int* | :heavy_minus_sign: | N/A | 1682752242 | +| `originalTitle` | *?string* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 | +| `viewOffset` | *?int* | :heavy_minus_sign: | N/A | 5222500 | +| `skipCount` | *?int* | :heavy_minus_sign: | N/A | 1 | +| `index` | *?int* | :heavy_minus_sign: | N/A | 1 | +| `theme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 | +| `leafCount` | *?int* | :heavy_minus_sign: | N/A | 14 | +| `viewedLeafCount` | *?int* | :heavy_minus_sign: | N/A | 0 | +| `childCount` | *?int* | :heavy_minus_sign: | N/A | 1 | +| `hasPremiumExtras` | *?string* | :heavy_minus_sign: | N/A | 1 | +| `hasPremiumPrimaryExtra` | *?string* | :heavy_minus_sign: | N/A | 1 | +| `parentRatingKey` | *?string* | :heavy_minus_sign: | The rating key of the parent item.
| 66 | +| `parentGuid` | *?string* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 | +| `parentStudio` | *?string* | :heavy_minus_sign: | N/A | UCP | +| `parentKey` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66 | +| `parentTitle` | *?string* | :heavy_minus_sign: | N/A | Caprica | +| `parentIndex` | *?int* | :heavy_minus_sign: | N/A | 1 | +| `parentYear` | *?int* | :heavy_minus_sign: | N/A | 2010 | +| `parentThumb` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 | +| `parentTheme` | *?string* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedOperator.md b/docs/Models/Operations/GetRecentlyAddedOperator.md new file mode 100644 index 0000000..f24f35b --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedOperator.md @@ -0,0 +1,9 @@ +# GetRecentlyAddedOperator + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | = | +| `title` | *string* | :heavy_check_mark: | N/A | is | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedRequest.md b/docs/Models/Operations/GetRecentlyAddedRequest.md index 9350f18..ab5c4e6 100644 --- a/docs/Models/Operations/GetRecentlyAddedRequest.md +++ b/docs/Models/Operations/GetRecentlyAddedRequest.md @@ -5,5 +5,10 @@ | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `contentDirectoryID` | *int* | :heavy_check_mark: | The content directory ID. | | +| `type` | [Operations\Type](../../Models/Operations/Type.md) | :heavy_check_mark: | The type of media to retrieve.
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 | +| `pinnedContentDirectoryID` | *?string* | :heavy_minus_sign: | Comma-separated list of pinned content directory IDs. | | +| `sectionID` | *?int* | :heavy_minus_sign: | The library section ID for filtering content. | 2 | +| `includeMeta` | [?Operations\IncludeMeta](../../Models/Operations/IncludeMeta.md) | :heavy_minus_sign: | Adds the Meta object to the response
| 1 | | `xPlexContainerStart` | *?int* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | | `xPlexContainerSize` | *?int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedResponse.md b/docs/Models/Operations/GetRecentlyAddedResponse.md index b497195..09779c0 100644 --- a/docs/Models/Operations/GetRecentlyAddedResponse.md +++ b/docs/Models/Operations/GetRecentlyAddedResponse.md @@ -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` | [\Psr\Http\Message\ResponseInterface](https://www.php-fig.org/psr/psr-7/#33-psrhttpmessageresponseinterface) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | -| `object` | [?Operations\GetRecentlyAddedResponseBody](../../Models/Operations/GetRecentlyAddedResponseBody.md) | :heavy_minus_sign: | The recently added content | \ No newline at end of file +| `object` | [?Operations\GetRecentlyAddedResponseBody](../../Models/Operations/GetRecentlyAddedResponseBody.md) | :heavy_minus_sign: | A successful response with recently added content. | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedResponseBody.md b/docs/Models/Operations/GetRecentlyAddedResponseBody.md index 08f18e7..1291677 100644 --- a/docs/Models/Operations/GetRecentlyAddedResponseBody.md +++ b/docs/Models/Operations/GetRecentlyAddedResponseBody.md @@ -1,6 +1,6 @@ # GetRecentlyAddedResponseBody -The recently added content +A successful response with recently added content. ## Fields diff --git a/docs/Models/Operations/GetRecentlyAddedSort.md b/docs/Models/Operations/GetRecentlyAddedSort.md new file mode 100644 index 0000000..47dcc82 --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedSort.md @@ -0,0 +1,15 @@ +# GetRecentlyAddedSort + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `defaultDirection` | [Operations\GetRecentlyAddedDefaultDirection](../../Models/Operations/GetRecentlyAddedDefaultDirection.md) | :heavy_check_mark: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `key` | *string* | :heavy_check_mark: | N/A | titleSort | +| `title` | *string* | :heavy_check_mark: | N/A | Title | +| `default` | *?string* | :heavy_minus_sign: | N/A | asc | +| `active` | *?bool* | :heavy_minus_sign: | N/A | false | +| `activeDirection` | [?Operations\GetRecentlyAddedActiveDirection](../../Models/Operations/GetRecentlyAddedActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `descKey` | *?string* | :heavy_minus_sign: | N/A | titleSort:desc | +| `firstCharacterKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | \ No newline at end of file diff --git a/docs/Models/Operations/GetRecentlyAddedType.md b/docs/Models/Operations/GetRecentlyAddedType.md new file mode 100644 index 0000000..2ca292e --- /dev/null +++ b/docs/Models/Operations/GetRecentlyAddedType.md @@ -0,0 +1,14 @@ +# GetRecentlyAddedType + + +## 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 | show | +| `title` | *string* | :heavy_check_mark: | N/A | TV Shows | +| `active` | *bool* | :heavy_check_mark: | N/A | false | +| `filter` | array<[Operations\GetRecentlyAddedFilter](../../Models/Operations/GetRecentlyAddedFilter.md)> | :heavy_minus_sign: | N/A | | +| `sort` | array<[Operations\GetRecentlyAddedSort](../../Models/Operations/GetRecentlyAddedSort.md)> | :heavy_minus_sign: | N/A | | +| `field` | array<[Operations\GetRecentlyAddedField](../../Models/Operations/GetRecentlyAddedField.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/GetSearchLibraryQueryParamType.md b/docs/Models/Operations/GetSearchLibraryQueryParamType.md new file mode 100644 index 0000000..96e485b --- /dev/null +++ b/docs/Models/Operations/GetSearchLibraryQueryParamType.md @@ -0,0 +1,19 @@ +# GetSearchLibraryQueryParamType + +The type of media to retrieve. +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 | \ No newline at end of file diff --git a/docs/Models/Operations/GetSearchLibraryRequest.md b/docs/Models/Operations/GetSearchLibraryRequest.md index b02ce60..54f32bd 100644 --- a/docs/Models/Operations/GetSearchLibraryRequest.md +++ b/docs/Models/Operations/GetSearchLibraryRequest.md @@ -6,4 +6,4 @@ | 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` | [Operations\QueryParamType](../../Models/Operations/QueryParamType.md) | :heavy_check_mark: | The type of media to retrieve.
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` | [Operations\GetSearchLibraryQueryParamType](../../Models/Operations/GetSearchLibraryQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve.
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 diff --git a/docs/Models/Operations/LibrarySectionID.md b/docs/Models/Operations/LibrarySectionID.md deleted file mode 100644 index e80639f..0000000 --- a/docs/Models/Operations/LibrarySectionID.md +++ /dev/null @@ -1,17 +0,0 @@ -# LibrarySectionID - - -## Supported Types - -### `int` - -```php -int $value = /* values here */ -``` - -### `string` - -```php -string $value = /* values here */ -``` - diff --git a/docs/Models/Operations/Media.md b/docs/Models/Operations/Media.md index 11b9c88..b6c1096 100644 --- a/docs/Models/Operations/Media.md +++ b/docs/Models/Operations/Media.md @@ -3,21 +3,23 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -| `id` | *?float* | :heavy_minus_sign: | N/A | 120345 | -| `duration` | *?float* | :heavy_minus_sign: | N/A | 7474422 | -| `bitrate` | *?float* | :heavy_minus_sign: | N/A | 3623 | -| `width` | *?float* | :heavy_minus_sign: | N/A | 1920 | -| `height` | *?float* | :heavy_minus_sign: | N/A | 804 | -| `aspectRatio` | *?float* | :heavy_minus_sign: | N/A | 2.35 | -| `audioChannels` | *?float* | :heavy_minus_sign: | N/A | 6 | -| `audioCodec` | *?string* | :heavy_minus_sign: | N/A | ac3 | -| `videoCodec` | *?string* | :heavy_minus_sign: | N/A | h264 | -| `videoResolution` | *?float* | :heavy_minus_sign: | N/A | 1080 | -| `container` | *?string* | :heavy_minus_sign: | N/A | mp4 | -| `videoFrameRate` | *?string* | :heavy_minus_sign: | N/A | 24p | -| `optimizedForStreaming` | *?float* | :heavy_minus_sign: | N/A | 0 | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | | -| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | high | -| `part` | array<[Operations\Part](../../Models/Operations/Part.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | N/A | 119534 | +| `duration` | *int* | :heavy_check_mark: | N/A | 11558112 | +| `bitrate` | *int* | :heavy_check_mark: | N/A | 25025 | +| `width` | *int* | :heavy_check_mark: | N/A | 3840 | +| `height` | *int* | :heavy_check_mark: | N/A | 2072 | +| `aspectRatio` | *float* | :heavy_check_mark: | N/A | 1.85 | +| `audioChannels` | *int* | :heavy_check_mark: | N/A | 6 | +| `audioCodec` | *string* | :heavy_check_mark: | N/A | eac3 | +| `videoCodec` | *string* | :heavy_check_mark: | N/A | hevc | +| `videoResolution` | *string* | :heavy_check_mark: | N/A | 4k | +| `container` | *string* | :heavy_check_mark: | N/A | mkv | +| `videoFrameRate` | *string* | :heavy_check_mark: | N/A | 24p | +| `videoProfile` | *string* | :heavy_check_mark: | N/A | main 10 | +| `part` | array<[Operations\Part](../../Models/Operations/Part.md)> | :heavy_check_mark: | N/A | | +| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | dts | +| `hasVoiceActivity` | *?bool* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | [?Operations\OptimizedForStreaming](../../Models/Operations/OptimizedForStreaming.md) | :heavy_minus_sign: | N/A | 1 | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | \ No newline at end of file diff --git a/docs/Models/Operations/Meta.md b/docs/Models/Operations/Meta.md index 5ed1e64..8dfec12 100644 --- a/docs/Models/Operations/Meta.md +++ b/docs/Models/Operations/Meta.md @@ -6,7 +6,7 @@ The Meta object is only included in the response if the `includeMeta` parameter ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `type` | array<[Operations\GetLibraryItemsLibraryType](../../Models/Operations/GetLibraryItemsLibraryType.md)> | :heavy_minus_sign: | N/A | -| `fieldType` | array<[Operations\GetLibraryItemsFieldType](../../Models/Operations/GetLibraryItemsFieldType.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| `type` | array<[Operations\GetRecentlyAddedType](../../Models/Operations/GetRecentlyAddedType.md)> | :heavy_minus_sign: | N/A | +| `fieldType` | array<[Operations\GetRecentlyAddedFieldType](../../Models/Operations/GetRecentlyAddedFieldType.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/Models/Operations/MetaDataRating.md b/docs/Models/Operations/MetaDataRating.md new file mode 100644 index 0000000..be2b8e5 --- /dev/null +++ b/docs/Models/Operations/MetaDataRating.md @@ -0,0 +1,10 @@ +# MetaDataRating + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `image` | *string* | :heavy_check_mark: | A URI or path to the rating image. | themoviedb://image.rating | +| `value` | *float* | :heavy_check_mark: | The value of the rating. | 3 | +| `type` | *string* | :heavy_check_mark: | The type of rating (e.g., audience, critic). | audience | \ No newline at end of file diff --git a/docs/Models/Operations/Operator.md b/docs/Models/Operations/Operator.md index e13f35b..421772d 100644 --- a/docs/Models/Operations/Operator.md +++ b/docs/Models/Operations/Operator.md @@ -5,5 +5,5 @@ | Field | Type | Required | Description | Example | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `key` | *?string* | :heavy_minus_sign: | N/A | = | -| `title` | *?string* | :heavy_minus_sign: | N/A | is | \ No newline at end of file +| `key` | *string* | :heavy_check_mark: | N/A | = | +| `title` | *string* | :heavy_check_mark: | N/A | is | \ No newline at end of file diff --git a/docs/Models/Operations/OptimizedForStreaming.md b/docs/Models/Operations/OptimizedForStreaming.md new file mode 100644 index 0000000..6485ce7 --- /dev/null +++ b/docs/Models/Operations/OptimizedForStreaming.md @@ -0,0 +1,9 @@ +# OptimizedForStreaming + + +## Values + +| Name | Value | +| --------- | --------- | +| `Disable` | 0 | +| `Enable` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/Part.md b/docs/Models/Operations/Part.md index 1f1dc34..2fa7585 100644 --- a/docs/Models/Operations/Part.md +++ b/docs/Models/Operations/Part.md @@ -3,15 +3,18 @@ ## Fields -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| `id` | *?float* | :heavy_minus_sign: | N/A | 120353 | -| `key` | *?string* | :heavy_minus_sign: | N/A | /library/parts/120353/1681803203/file.mp4 | -| `duration` | *?float* | :heavy_minus_sign: | N/A | 7474422 | -| `file` | *?string* | :heavy_minus_sign: | N/A | /movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4 | -| `size` | *?float* | :heavy_minus_sign: | N/A | 3395307162 | -| `container` | *?string* | :heavy_minus_sign: | N/A | mp4 | -| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | | -| `hasThumbnail` | *?float* | :heavy_minus_sign: | N/A | 1 | -| `optimizedForStreaming` | *?bool* | :heavy_minus_sign: | N/A | | -| `videoProfile` | *?string* | :heavy_minus_sign: | N/A | high | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | N/A | 119542 | +| `key` | *string* | :heavy_check_mark: | N/A | /library/parts/119542/1680457526/file.mkv | +| `duration` | *int* | :heavy_check_mark: | N/A | 11558112 | +| `file` | *string* | :heavy_check_mark: | N/A | /movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv | +| `size` | *int* | :heavy_check_mark: | N/A | 36158371307 | +| `container` | *string* | :heavy_check_mark: | The container format of the media file.
| mkv | +| `videoProfile` | *string* | :heavy_check_mark: | N/A | main 10 | +| `audioProfile` | *?string* | :heavy_minus_sign: | N/A | dts | +| `has64bitOffsets` | *?bool* | :heavy_minus_sign: | N/A | false | +| `optimizedForStreaming` | *?bool* | :heavy_minus_sign: | N/A | false | +| `indexes` | *?string* | :heavy_minus_sign: | N/A | sd | +| `hasThumbnail` | [?Operations\HasThumbnail](../../Models/Operations/HasThumbnail.md) | :heavy_minus_sign: | N/A | 1 | +| `stream` | array<[Operations\Stream](../../Models/Operations/Stream.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/Models/Operations/PostUsersSignInDataRequest.md b/docs/Models/Operations/PostUsersSignInDataRequest.md new file mode 100644 index 0000000..6383021 --- /dev/null +++ b/docs/Models/Operations/PostUsersSignInDataRequest.md @@ -0,0 +1,13 @@ +# PostUsersSignInDataRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `clientID` | *?string* | :heavy_minus_sign: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| gcgzw5rz2xovp84b4vha3a40 | +| `clientName` | *?string* | :heavy_minus_sign: | N/A | Plex Web | +| `deviceName` | *?string* | :heavy_minus_sign: | N/A | Linux | +| `clientVersion` | *?string* | :heavy_minus_sign: | N/A | 4.133.0 | +| `clientPlatform` | *?string* | :heavy_minus_sign: | N/A | Chrome | +| `requestBody` | [?Operations\PostUsersSignInDataRequestBody](../../Models/Operations/PostUsersSignInDataRequestBody.md) | :heavy_minus_sign: | Login credentials | | \ No newline at end of file diff --git a/docs/Models/Operations/QueryParamIncludeMeta.md b/docs/Models/Operations/QueryParamIncludeMeta.md new file mode 100644 index 0000000..85296cc --- /dev/null +++ b/docs/Models/Operations/QueryParamIncludeMeta.md @@ -0,0 +1,12 @@ +# QueryParamIncludeMeta + +Adds the Meta object to the response + + + +## Values + +| Name | Value | +| --------- | --------- | +| `Disable` | 0 | +| `Enable` | 1 | \ No newline at end of file diff --git a/docs/Models/Operations/Role.md b/docs/Models/Operations/Role.md index dafc0d7..e8410b2 100644 --- a/docs/Models/Operations/Role.md +++ b/docs/Models/Operations/Role.md @@ -3,6 +3,11 @@ ## Fields -| Field | Type | Required | Description | Example | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?string* | :heavy_minus_sign: | N/A | Paul Rudd | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `id` | *?int* | :heavy_minus_sign: | The ID of the tag or actor. | 294129 | +| `filter` | *?string* | :heavy_minus_sign: | The filter used to find the actor or tag. | actor=294129 | +| `thumb` | *?string* | :heavy_minus_sign: | The thumbnail of the actor | https://metadata-static.plex.tv/2/people/27b85844536c39f3f9ac943aaad46608.jpg | +| `tag` | *?string* | :heavy_minus_sign: | The name of the tag or actor. | Mike Smith | +| `tagKey` | *?string* | :heavy_minus_sign: | Unique identifier for the tag. | 668e7e7b22bcad9064350c91 | +| `role` | *?string* | :heavy_minus_sign: | The role of the actor or tag in the media. | Self | \ No newline at end of file diff --git a/docs/Models/Operations/Sort.md b/docs/Models/Operations/Sort.md index 8e84740..e519146 100644 --- a/docs/Models/Operations/Sort.md +++ b/docs/Models/Operations/Sort.md @@ -3,11 +3,13 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | -| `default` | *?string* | :heavy_minus_sign: | N/A | asc | -| `defaultDirection` | *?string* | :heavy_minus_sign: | N/A | desc | -| `descKey` | *?string* | :heavy_minus_sign: | N/A | random:desc | -| `firstCharacterKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/1/firstCharacter | -| `key` | *?string* | :heavy_minus_sign: | N/A | random | -| `title` | *?string* | :heavy_minus_sign: | N/A | Randomly | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `defaultDirection` | [Operations\DefaultDirection](../../Models/Operations/DefaultDirection.md) | :heavy_check_mark: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `key` | *string* | :heavy_check_mark: | N/A | titleSort | +| `title` | *string* | :heavy_check_mark: | N/A | Title | +| `default` | *?string* | :heavy_minus_sign: | N/A | asc | +| `active` | *?bool* | :heavy_minus_sign: | N/A | false | +| `activeDirection` | [?Operations\ActiveDirection](../../Models/Operations/ActiveDirection.md) | :heavy_minus_sign: | The direction of the sort. Can be either `asc` or `desc`.
| asc | +| `descKey` | *?string* | :heavy_minus_sign: | N/A | titleSort:desc | +| `firstCharacterKey` | *?string* | :heavy_minus_sign: | N/A | /library/sections/2/firstCharacter | \ No newline at end of file diff --git a/docs/Models/Operations/Stream.md b/docs/Models/Operations/Stream.md index 9d46786..850e00e 100644 --- a/docs/Models/Operations/Stream.md +++ b/docs/Models/Operations/Stream.md @@ -3,37 +3,43 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- | -| `id` | *?int* | :heavy_minus_sign: | N/A | 29 | -| `streamType` | *?int* | :heavy_minus_sign: | N/A | 2 | -| `default` | *?bool* | :heavy_minus_sign: | N/A | true | -| `codec` | *?string* | :heavy_minus_sign: | N/A | aac | -| `index` | *?int* | :heavy_minus_sign: | N/A | 0 | -| `bitrate` | *?int* | :heavy_minus_sign: | N/A | 128 | -| `bitDepth` | *?int* | :heavy_minus_sign: | N/A | 8 | -| `chromaLocation` | *?string* | :heavy_minus_sign: | N/A | left | -| `chromaSubsampling` | *?string* | :heavy_minus_sign: | N/A | 14520 | -| `codedHeight` | *?int* | :heavy_minus_sign: | N/A | 816 | -| `codedWidth` | *?int* | :heavy_minus_sign: | N/A | 1920 | -| `colorPrimaries` | *?string* | :heavy_minus_sign: | N/A | bt709 | -| `colorRange` | *?string* | :heavy_minus_sign: | N/A | tv | -| `colorSpace` | *?string* | :heavy_minus_sign: | N/A | bt709 | -| `colorTrc` | *?string* | :heavy_minus_sign: | N/A | bt709 | -| `frameRate` | *?int* | :heavy_minus_sign: | N/A | 24 | -| `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | N/A | false | -| `height` | *?int* | :heavy_minus_sign: | N/A | 814 | -| `level` | *?int* | :heavy_minus_sign: | N/A | 40 | -| `profile` | *?string* | :heavy_minus_sign: | N/A | lc | -| `refFrames` | *?int* | :heavy_minus_sign: | N/A | 4 | -| `scanType` | *?string* | :heavy_minus_sign: | N/A | progressive | -| `streamIdentifier` | *?string* | :heavy_minus_sign: | N/A | 1 | -| `width` | *?int* | :heavy_minus_sign: | N/A | 1920 | -| `displayTitle` | *?string* | :heavy_minus_sign: | N/A | English (AAC Stereo) | -| `extendedDisplayTitle` | *?string* | :heavy_minus_sign: | N/A | English (AAC Stereo) | -| `selected` | *?bool* | :heavy_minus_sign: | N/A | true | -| `channels` | *?int* | :heavy_minus_sign: | N/A | 2 | -| `language` | *?string* | :heavy_minus_sign: | N/A | English | -| `languageTag` | *?string* | :heavy_minus_sign: | N/A | en | -| `languageCode` | *?string* | :heavy_minus_sign: | N/A | eng | -| `samplingRate` | *?int* | :heavy_minus_sign: | N/A | 44100 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `id` | *int* | :heavy_check_mark: | N/A | 272796 | +| `streamType` | *int* | :heavy_check_mark: | Type of stream (1 = video, 2 = audio, 3 = subtitle) | 1 | +| `codec` | *string* | :heavy_check_mark: | Codec used by the stream | h264 | +| `index` | *int* | :heavy_check_mark: | The index of the stream | 0 | +| `default` | *?bool* | :heavy_minus_sign: | Indicates if this is the default stream | true | +| `selected` | *?bool* | :heavy_minus_sign: | Indicates if the stream is selected | true | +| `bitrate` | *?int* | :heavy_minus_sign: | The bitrate of the stream in kbps | 6273 | +| `colorPrimaries` | *?string* | :heavy_minus_sign: | The color primaries of the video stream | bt709 | +| `colorRange` | *?string* | :heavy_minus_sign: | The color range of the video stream | tv | +| `colorSpace` | *?string* | :heavy_minus_sign: | The color space of the video stream | bt709 | +| `colorTrc` | *?string* | :heavy_minus_sign: | The transfer characteristics (TRC) of the video stream | bt709 | +| `bitDepth` | *?int* | :heavy_minus_sign: | The bit depth of the video stream | 8 | +| `chromaLocation` | *?string* | :heavy_minus_sign: | The chroma location of the video stream | left | +| `streamIdentifier` | *?string* | :heavy_minus_sign: | The identifier of the video stream | 2 | +| `chromaSubsampling` | *?string* | :heavy_minus_sign: | The chroma subsampling format | 4:2:0 | +| `codedHeight` | *?int* | :heavy_minus_sign: | The coded height of the video stream | 1088 | +| `codedWidth` | *?int* | :heavy_minus_sign: | The coded width of the video stream | 1920 | +| `frameRate` | *?float* | :heavy_minus_sign: | The frame rate of the video stream | 29.97 | +| `hasScalingMatrix` | *?bool* | :heavy_minus_sign: | Indicates if the stream has a scaling matrix | false | +| `hearingImpaired` | *?bool* | :heavy_minus_sign: | N/A | false | +| `closedCaptions` | *?bool* | :heavy_minus_sign: | N/A | false | +| `embeddedInVideo` | *?string* | :heavy_minus_sign: | N/A | 1 | +| `height` | *?int* | :heavy_minus_sign: | The height of the video stream | 1080 | +| `level` | *?int* | :heavy_minus_sign: | The level of the video codec | 40 | +| `profile` | *?string* | :heavy_minus_sign: | The profile of the video codec | main | +| `refFrames` | *?int* | :heavy_minus_sign: | Number of reference frames | 4 | +| `scanType` | *?string* | :heavy_minus_sign: | The scan type (progressive or interlaced) | progressive | +| `width` | *?int* | :heavy_minus_sign: | The width of the video stream | 1920 | +| `displayTitle` | *?string* | :heavy_minus_sign: | Display title of the stream | 1080p (H.264) | +| `extendedDisplayTitle` | *?string* | :heavy_minus_sign: | Extended display title of the stream | 1080p (H.264) | +| `channels` | *?int* | :heavy_minus_sign: | Number of audio channels (for audio streams) | 2 | +| `language` | *?string* | :heavy_minus_sign: | The language of the stream (for audio/subtitle streams) | English | +| `languageTag` | *?string* | :heavy_minus_sign: | Language tag of the stream | en | +| `languageCode` | *?string* | :heavy_minus_sign: | Language code of the stream | eng | +| `audioChannelLayout` | *?string* | :heavy_minus_sign: | The audio channel layout | stereo | +| `samplingRate` | *?int* | :heavy_minus_sign: | Sampling rate of the audio stream in Hz | 48000 | +| `title` | *?string* | :heavy_minus_sign: | Title of the subtitle track (for subtitle streams) | English | +| `canAutoSync` | *?bool* | :heavy_minus_sign: | Indicates if the subtitle stream can auto-sync | false | \ No newline at end of file diff --git a/docs/Models/Operations/Writer.md b/docs/Models/Operations/Writer.md index 7734c9e..2c181db 100644 --- a/docs/Models/Operations/Writer.md +++ b/docs/Models/Operations/Writer.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | Example | | ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| `tag` | *?string* | :heavy_minus_sign: | N/A | Jeff Loveness | \ No newline at end of file +| `tag` | *?string* | :heavy_minus_sign: | N/A | James Cameron | \ No newline at end of file diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index 559dce4..eac21e3 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -102,7 +102,7 @@ $sdk = Plex_API\PlexAPI::builder() try { - $response = $sdk->authentication->getSourceConnectionInformation('provider://provider-identifier'); + $response = $sdk->authentication->getSourceConnectionInformation('server://client-identifier'); if ($response->statusCode === 200) { // handle response @@ -210,10 +210,12 @@ $sdk = Plex_API\PlexAPI::builder() ->build(); try { - $request = new Operations\PostUsersSignInDataRequestBody( - login: 'username@email.com', - password: 'password123', - verificationCode: '123456', + $request = new Operations\PostUsersSignInDataRequest( + requestBody: new Operations\PostUsersSignInDataRequestBody( + login: 'username@email.com', + password: 'password123', + verificationCode: '123456', + ), ); $response = $sdk->authentication->postUsersSignInData($request); @@ -227,10 +229,10 @@ try { ### Parameters -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `$request` | [Operations\PostUsersSignInDataRequestBody](../../Models/Operations/PostUsersSignInDataRequestBody.md) | :heavy_check_mark: | The request object to use for the request. | -| `$serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | +| Parameter | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `$request` | [Operations\PostUsersSignInDataRequest](../../Models/Operations/PostUsersSignInDataRequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `$serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | ### Response diff --git a/docs/sdks/hubs/README.md b/docs/sdks/hubs/README.md index 41d3ff7..9258d51 100644 --- a/docs/sdks/hubs/README.md +++ b/docs/sdks/hubs/README.md @@ -8,6 +8,7 @@ Hubs are a structured two-dimensional container for media, generally represented ### Available Operations * [getGlobalHubs](#getglobalhubs) - Get Global Hubs +* [getRecentlyAdded](#getrecentlyadded) - Get Recently Added * [getLibraryHubs](#getlibraryhubs) - Get library specific hubs ## getGlobalHubs @@ -69,6 +70,70 @@ try { | LukeHagar\Plex_API\Models\Errors.SDKException | 4xx-5xx | */* | +## getRecentlyAdded + +This endpoint will return the recently added content. + + +### Example Usage + +```php +declare(strict_types=1); + +require 'vendor/autoload.php'; + +use LukeHagar\Plex_API; +use LukeHagar\Plex_API\Models\Components; +use LukeHagar\Plex_API\Models\Operations; + +$security = new Components\Security( + accessToken: "", +); + +$sdk = Plex_API\PlexAPI::builder() + ->setClientID('gcgzw5rz2xovp84b4vha3a40') + ->setClientName('Plex Web') + ->setClientVersion('4.133.0') + ->setClientPlatform('Chrome') + ->setDeviceName('Linux') + ->setSecurity($security)->build(); + +try { + $request = new Operations\GetRecentlyAddedRequest( + contentDirectoryID: 470161, + type: Operations\Type::TvShow, + sectionID: 2, + includeMeta: Operations\IncludeMeta::Enable, + xPlexContainerStart: 0, + xPlexContainerSize: 50, + ); + $response = $sdk->hubs->getRecentlyAdded($request); + + if ($response->object !== null) { + // handle response + } +} catch (Throwable $e) { + // handle exception +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `$request` | [Operations\GetRecentlyAddedRequest](../../Models/Operations/GetRecentlyAddedRequest.md) | :heavy_check_mark: | The request object to use for the request. | + +### Response + +**[?Operations\GetRecentlyAddedResponse](../../Models/Operations/GetRecentlyAddedResponse.md)** + +### Errors + +| Error Object | Status Code | Content Type | +| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | +| LukeHagar\Plex_API\Models\Errors.SDKException | 4xx-5xx | */* | + + ## getLibraryHubs This endpoint will return a list of library specific hubs diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index dc8d419..d9da4ae 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -8,7 +8,7 @@ API Calls interacting with Plex Media Server Libraries ### Available Operations * [getFileHash](#getfilehash) - Get Hash Value -* [getRecentlyAdded](#getrecentlyadded) - Get Recently Added +* [getRecentlyAddedLibrary](#getrecentlyaddedlibrary) - Get Recently Added * [getAllLibraries](#getalllibraries) - Get All Libraries * [getLibraryDetails](#getlibrarydetails) - Get Library Details * [deleteLibrary](#deletelibrary) - Delete Library Section @@ -78,7 +78,7 @@ try { | LukeHagar\Plex_API\Models\Errors.SDKException | 4xx-5xx | */* | -## getRecentlyAdded +## getRecentlyAddedLibrary This endpoint will return the recently added content. @@ -92,6 +92,7 @@ require 'vendor/autoload.php'; use LukeHagar\Plex_API; use LukeHagar\Plex_API\Models\Components; +use LukeHagar\Plex_API\Models\Operations; $security = new Components\Security( accessToken: "", @@ -106,8 +107,29 @@ $sdk = Plex_API\PlexAPI::builder() ->setSecurity($security)->build(); try { - - $response = $sdk->library->getRecentlyAdded(0, 50); + $request = new Operations\GetRecentlyAddedLibraryRequest( + type: Operations\QueryParamType::TvShow, + contentDirectoryID: 2, + pinnedContentDirectoryID: [ + 3, + 5, + 7, + 13, + 12, + 1, + 6, + 14, + 2, + 10, + 16, + 17, + ], + sectionID: 2, + includeMeta: Operations\QueryParamIncludeMeta::Enable, + xPlexContainerStart: 0, + xPlexContainerSize: 50, + ); + $response = $sdk->library->getRecentlyAddedLibrary($request); if ($response->object !== null) { // handle response @@ -119,21 +141,20 @@ try { ### Parameters -| Parameter | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `xPlexContainerStart` | *int* | :heavy_minus_sign: | The index of the first item to return. If not specified, the first item will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 0
| 0 | -| `xPlexContainerSize` | *int* | :heavy_minus_sign: | The number of items to return. If not specified, all items will be returned.
If the number of items exceeds the limit, the response will be paginated.
By default this is 50
| 50 | +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `$request` | [Operations\GetRecentlyAddedLibraryRequest](../../Models/Operations/GetRecentlyAddedLibraryRequest.md) | :heavy_check_mark: | The request object to use for the request. | ### Response -**[?Operations\GetRecentlyAddedResponse](../../Models/Operations/GetRecentlyAddedResponse.md)** +**[?Operations\GetRecentlyAddedLibraryResponse](../../Models/Operations/GetRecentlyAddedLibraryResponse.md)** ### Errors | Error Object | Status Code | Content Type | | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | -| Errors\GetRecentlyAddedBadRequest | 400 | application/json | -| Errors\GetRecentlyAddedUnauthorized | 401 | application/json | +| Errors\GetRecentlyAddedLibraryBadRequest | 400 | application/json | +| Errors\GetRecentlyAddedLibraryUnauthorized | 401 | application/json | | LukeHagar\Plex_API\Models\Errors.SDKException | 4xx-5xx | */* | @@ -400,8 +421,8 @@ try { sectionKey: 9518, tag: Operations\Tag::Edition, includeGuids: Operations\IncludeGuids::Enable, - includeMeta: Operations\IncludeMeta::Enable, - type: Operations\Type::TvShow, + type: Operations\GetLibraryItemsQueryParamType::TvShow, + includeMeta: Operations\GetLibraryItemsQueryParamIncludeMeta::Enable, xPlexContainerStart: 0, xPlexContainerSize: 50, ); @@ -541,7 +562,7 @@ $sdk = Plex_API\PlexAPI::builder() try { - $response = $sdk->library->getSearchLibrary(9518, Operations\QueryParamType::TvShow); + $response = $sdk->library->getSearchLibrary(9518, Operations\GetSearchLibraryQueryParamType::TvShow); if ($response->object !== null) { // handle response @@ -556,7 +577,7 @@ try { | Parameter | 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` | [Operations\QueryParamType](../../Models/Operations/QueryParamType.md) | :heavy_check_mark: | The type of media to retrieve.
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 | +| `type` | [Operations\GetSearchLibraryQueryParamType](../../Models/Operations/GetSearchLibraryQueryParamType.md) | :heavy_check_mark: | The type of media to retrieve.
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 | ### Response diff --git a/docs/sdks/search/README.md b/docs/sdks/search/README.md index 11e027e..27328aa 100644 --- a/docs/sdks/search/README.md +++ b/docs/sdks/search/README.md @@ -51,7 +51,7 @@ $sdk = Plex_API\PlexAPI::builder() try { - $response = $sdk->search->performSearch('dylan', 5838.67, 5); + $response = $sdk->search->performSearch('dylan', 9372.69, 5); if ($response->statusCode === 200) { // handle response diff --git a/docs/sdks/server/README.md b/docs/sdks/server/README.md index ab1d875..1e1c4c5 100644 --- a/docs/sdks/server/README.md +++ b/docs/sdks/server/README.md @@ -344,9 +344,9 @@ try { width: 110, height: 165, opacity: 643869, - blur: 4000, + blur: 0, minSize: Operations\MinSize::One, - upscale: Operations\Upscale::Zero, + upscale: Operations\Upscale::One, url: '/library/metadata/49564/thumb/1654258204', ); $response = $sdk->server->getResizedPhoto($request); diff --git a/src/Authentication.php b/src/Authentication.php index 1c3998c..4189048 100644 --- a/src/Authentication.php +++ b/src/Authentication.php @@ -226,13 +226,13 @@ class Authentication * * Sign in user with username and password and return user data with Plex authentication token * - * @param Operations\PostUsersSignInDataRequestBody $request + * @param Operations\PostUsersSignInDataRequest $request * @param string $serverURL * @return Operations\PostUsersSignInDataResponse * @throws \LukeHagar\Plex_API\Models\Errors\SDKException */ public function postUsersSignInData( - ?Operations\PostUsersSignInDataRequestBody $request, + ?Operations\PostUsersSignInDataRequest $request, ?string $serverURL = null, ): Operations\PostUsersSignInDataResponse { $baseUrl = Utils\Utils::templateUrl(Authentication::POST_USERS_SIGN_IN_DATA_SERVERS[0], [ @@ -242,10 +242,11 @@ class Authentication } $url = Utils\Utils::generateUrl($baseUrl, '/users/signin'); $options = ['http_errors' => false]; - $body = Utils\Utils::serializeRequestBody($request, 'request', 'form'); + $body = Utils\Utils::serializeRequestBody($request, 'requestBody', 'form'); if ($body !== null) { $options = array_merge_recursive($options, $body); } + $options = array_merge_recursive($options, Utils\Utils::getQueryParams(Operations\PostUsersSignInDataRequest::class, $request, $this->sdkConfiguration->globals)); $options['headers']['Accept'] = 'application/json'; $options['headers']['user-agent'] = $this->sdkConfiguration->userAgent; $httpRequest = new \GuzzleHttp\Psr7\Request('POST', $url); diff --git a/src/Hubs.php b/src/Hubs.php index bd68255..ffecc12 100644 --- a/src/Hubs.php +++ b/src/Hubs.php @@ -92,6 +92,53 @@ class Hubs } } + /** + * Get Recently Added + * + * This endpoint will return the recently added content. + * + * + * @param Operations\GetRecentlyAddedRequest $request + * @return Operations\GetRecentlyAddedResponse + * @throws \LukeHagar\Plex_API\Models\Errors\SDKException + */ + public function getRecentlyAdded( + ?Operations\GetRecentlyAddedRequest $request, + ): Operations\GetRecentlyAddedResponse { + $baseUrl = Utils\Utils::templateUrl($this->sdkConfiguration->getServerUrl(), $this->sdkConfiguration->getServerDefaults()); + $url = Utils\Utils::generateUrl($baseUrl, '/hubs/home/recentlyAdded'); + $options = ['http_errors' => false]; + $options = array_merge_recursive($options, Utils\Utils::getQueryParams(Operations\GetRecentlyAddedRequest::class, $request, $this->sdkConfiguration->globals)); + $options['headers']['Accept'] = 'application/json'; + $options['headers']['user-agent'] = $this->sdkConfiguration->userAgent; + $httpRequest = new \GuzzleHttp\Psr7\Request('GET', $url); + + + $httpResponse = $this->sdkConfiguration->securityClient->send($httpRequest, $options); + $contentType = $httpResponse->getHeader('Content-Type')[0] ?? ''; + + $statusCode = $httpResponse->getStatusCode(); + if ($statusCode == 200) { + if (Utils\Utils::matchContentType($contentType, 'application/json')) { + $serializer = Utils\JSON::createSerializer(); + $obj = $serializer->deserialize((string) $httpResponse->getBody(), '\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedResponseBody', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); + $response = new Operations\GetRecentlyAddedResponse( + statusCode: $statusCode, + contentType: $contentType, + rawResponse: $httpResponse, + object: $obj); + + return $response; + } else { + throw new \LukeHagar\Plex_API\Models\Errors\SDKException('Unknown content type received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); + } + } elseif ($statusCode == 400 || $statusCode == 401 || $statusCode >= 400 && $statusCode < 500 || $statusCode >= 500 && $statusCode < 600) { + throw new \LukeHagar\Plex_API\Models\Errors\SDKException('API error occurred', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); + } else { + throw new \LukeHagar\Plex_API\Models\Errors\SDKException('Unknown status code received', $statusCode, $httpResponse->getBody()->getContents(), $httpResponse); + } + } + /** * Get library specific hubs * diff --git a/src/Library.php b/src/Library.php index 641041b..22b613e 100644 --- a/src/Library.php +++ b/src/Library.php @@ -90,23 +90,17 @@ class Library * This endpoint will return the recently added content. * * - * @param ?int $xPlexContainerStart - * @param ?int $xPlexContainerSize - * @return Operations\GetRecentlyAddedResponse + * @param Operations\GetRecentlyAddedLibraryRequest $request + * @return Operations\GetRecentlyAddedLibraryResponse * @throws \LukeHagar\Plex_API\Models\Errors\SDKException */ - public function getRecentlyAdded( - ?int $xPlexContainerStart = null, - ?int $xPlexContainerSize = null, - ): Operations\GetRecentlyAddedResponse { - $request = new Operations\GetRecentlyAddedRequest( - xPlexContainerStart: $xPlexContainerStart, - xPlexContainerSize: $xPlexContainerSize, - ); + public function getRecentlyAddedLibrary( + ?Operations\GetRecentlyAddedLibraryRequest $request, + ): Operations\GetRecentlyAddedLibraryResponse { $baseUrl = Utils\Utils::templateUrl($this->sdkConfiguration->getServerUrl(), $this->sdkConfiguration->getServerDefaults()); $url = Utils\Utils::generateUrl($baseUrl, '/library/recentlyAdded'); $options = ['http_errors' => false]; - $options = array_merge_recursive($options, Utils\Utils::getQueryParams(Operations\GetRecentlyAddedRequest::class, $request, $this->sdkConfiguration->globals)); + $options = array_merge_recursive($options, Utils\Utils::getQueryParams(Operations\GetRecentlyAddedLibraryRequest::class, $request, $this->sdkConfiguration->globals)); $options['headers']['Accept'] = 'application/json'; $options['headers']['user-agent'] = $this->sdkConfiguration->userAgent; $httpRequest = new \GuzzleHttp\Psr7\Request('GET', $url); @@ -119,8 +113,8 @@ class Library if ($statusCode == 200) { if (Utils\Utils::matchContentType($contentType, 'application/json')) { $serializer = Utils\JSON::createSerializer(); - $obj = $serializer->deserialize((string) $httpResponse->getBody(), '\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedResponseBody', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); - $response = new Operations\GetRecentlyAddedResponse( + $obj = $serializer->deserialize((string) $httpResponse->getBody(), '\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryResponseBody', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); + $response = new Operations\GetRecentlyAddedLibraryResponse( statusCode: $statusCode, contentType: $contentType, rawResponse: $httpResponse, @@ -133,7 +127,7 @@ class Library } elseif ($statusCode == 400) { if (Utils\Utils::matchContentType($contentType, 'application/json')) { $serializer = Utils\JSON::createSerializer(); - $obj = $serializer->deserialize((string) $httpResponse->getBody(), '\LukeHagar\Plex_API\Models\Errors\GetRecentlyAddedBadRequest', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); + $obj = $serializer->deserialize((string) $httpResponse->getBody(), '\LukeHagar\Plex_API\Models\Errors\GetRecentlyAddedLibraryBadRequest', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); $obj->rawResponse = $httpResponse; throw $obj->toException(); } else { @@ -142,7 +136,7 @@ class Library } elseif ($statusCode == 401) { if (Utils\Utils::matchContentType($contentType, 'application/json')) { $serializer = Utils\JSON::createSerializer(); - $obj = $serializer->deserialize((string) $httpResponse->getBody(), '\LukeHagar\Plex_API\Models\Errors\GetRecentlyAddedUnauthorized', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); + $obj = $serializer->deserialize((string) $httpResponse->getBody(), '\LukeHagar\Plex_API\Models\Errors\GetRecentlyAddedLibraryUnauthorized', 'json', DeserializationContext::create()->setRequireAllRequiredProperties(true)); $obj->rawResponse = $httpResponse; throw $obj->toException(); } else { @@ -560,13 +554,13 @@ class Library * * * @param int $sectionKey - * @param Operations\QueryParamType $type + * @param Operations\GetSearchLibraryQueryParamType $type * @return Operations\GetSearchLibraryResponse * @throws \LukeHagar\Plex_API\Models\Errors\SDKException */ public function getSearchLibrary( int $sectionKey, - Operations\QueryParamType $type, + Operations\GetSearchLibraryQueryParamType $type, ): Operations\GetSearchLibraryResponse { $request = new Operations\GetSearchLibraryRequest( sectionKey: $sectionKey, diff --git a/src/Models/Errors/GetRecentlyAddedUnauthorized.php b/src/Models/Errors/GetRecentlyAddedLibraryBadRequest.php similarity index 79% rename from src/Models/Errors/GetRecentlyAddedUnauthorized.php rename to src/Models/Errors/GetRecentlyAddedLibraryBadRequest.php index 7d8dd4f..a72a243 100644 --- a/src/Models/Errors/GetRecentlyAddedUnauthorized.php +++ b/src/Models/Errors/GetRecentlyAddedLibraryBadRequest.php @@ -10,8 +10,8 @@ namespace LukeHagar\Plex_API\Models\Errors; use LukeHagar\Plex_API\Utils; -/** GetRecentlyAddedUnauthorized - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. */ -class GetRecentlyAddedUnauthorized +/** GetRecentlyAddedLibraryBadRequest - Bad Request - A parameter was not specified, or was specified incorrectly. */ +class GetRecentlyAddedLibraryBadRequest { /** * $errors @@ -42,12 +42,12 @@ class GetRecentlyAddedUnauthorized $this->rawResponse = $rawResponse; } - public function toException(): GetRecentlyAddedUnauthorizedThrowable + public function toException(): GetRecentlyAddedLibraryBadRequestThrowable { $serializer = Utils\JSON::createSerializer(); $message = $serializer->serialize($this, 'json'); $code = -1; - return new GetRecentlyAddedUnauthorizedThrowable($message, (int) $code, $this); + return new GetRecentlyAddedLibraryBadRequestThrowable($message, (int) $code, $this); } } \ No newline at end of file diff --git a/src/Models/Errors/GetRecentlyAddedBadRequestThrowable.php b/src/Models/Errors/GetRecentlyAddedLibraryBadRequestThrowable.php similarity index 64% rename from src/Models/Errors/GetRecentlyAddedBadRequestThrowable.php rename to src/Models/Errors/GetRecentlyAddedLibraryBadRequestThrowable.php index a61230f..8b21f73 100644 --- a/src/Models/Errors/GetRecentlyAddedBadRequestThrowable.php +++ b/src/Models/Errors/GetRecentlyAddedLibraryBadRequestThrowable.php @@ -8,11 +8,11 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Errors; -class GetRecentlyAddedBadRequestThrowable extends \RuntimeException +class GetRecentlyAddedLibraryBadRequestThrowable extends \RuntimeException { - public GetRecentlyAddedBadRequest $container; + public GetRecentlyAddedLibraryBadRequest $container; - public function __construct(string $message, int $statusCode, GetRecentlyAddedBadRequest $container) + public function __construct(string $message, int $statusCode, GetRecentlyAddedLibraryBadRequest $container) { parent::__construct($message, $statusCode); $this->container = $container; diff --git a/src/Models/Errors/GetRecentlyAddedErrors.php b/src/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.php similarity index 96% rename from src/Models/Errors/GetRecentlyAddedErrors.php rename to src/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.php index cfb158c..046a2d8 100644 --- a/src/Models/Errors/GetRecentlyAddedErrors.php +++ b/src/Models/Errors/GetRecentlyAddedLibraryLibraryErrors.php @@ -9,7 +9,7 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Errors; -class GetRecentlyAddedErrors +class GetRecentlyAddedLibraryLibraryErrors { /** * diff --git a/src/Models/Errors/GetRecentlyAddedBadRequest.php b/src/Models/Errors/GetRecentlyAddedLibraryUnauthorized.php similarity index 67% rename from src/Models/Errors/GetRecentlyAddedBadRequest.php rename to src/Models/Errors/GetRecentlyAddedLibraryUnauthorized.php index a2b0aa0..fdbebea 100644 --- a/src/Models/Errors/GetRecentlyAddedBadRequest.php +++ b/src/Models/Errors/GetRecentlyAddedLibraryUnauthorized.php @@ -10,16 +10,16 @@ namespace LukeHagar\Plex_API\Models\Errors; use LukeHagar\Plex_API\Utils; -/** GetRecentlyAddedBadRequest - Bad Request - A parameter was not specified, or was specified incorrectly. */ -class GetRecentlyAddedBadRequest +/** GetRecentlyAddedLibraryUnauthorized - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. */ +class GetRecentlyAddedLibraryUnauthorized { /** * $errors * - * @var ?array $errors + * @var ?array $errors */ #[\JMS\Serializer\Annotation\SerializedName('errors')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Errors\GetRecentlyAddedErrors>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Errors\GetRecentlyAddedLibraryLibraryErrors>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $errors = null; @@ -33,7 +33,7 @@ class GetRecentlyAddedBadRequest public ?\Psr\Http\Message\ResponseInterface $rawResponse = null; /** - * @param ?array $errors + * @param ?array $errors * @param ?\Psr\Http\Message\ResponseInterface $rawResponse */ public function __construct(?array $errors = null, ?\Psr\Http\Message\ResponseInterface $rawResponse = null) @@ -42,12 +42,12 @@ class GetRecentlyAddedBadRequest $this->rawResponse = $rawResponse; } - public function toException(): GetRecentlyAddedBadRequestThrowable + public function toException(): GetRecentlyAddedLibraryUnauthorizedThrowable { $serializer = Utils\JSON::createSerializer(); $message = $serializer->serialize($this, 'json'); $code = -1; - return new GetRecentlyAddedBadRequestThrowable($message, (int) $code, $this); + return new GetRecentlyAddedLibraryUnauthorizedThrowable($message, (int) $code, $this); } } \ No newline at end of file diff --git a/src/Models/Errors/GetRecentlyAddedUnauthorizedThrowable.php b/src/Models/Errors/GetRecentlyAddedLibraryUnauthorizedThrowable.php similarity index 63% rename from src/Models/Errors/GetRecentlyAddedUnauthorizedThrowable.php rename to src/Models/Errors/GetRecentlyAddedLibraryUnauthorizedThrowable.php index ee65607..5967203 100644 --- a/src/Models/Errors/GetRecentlyAddedUnauthorizedThrowable.php +++ b/src/Models/Errors/GetRecentlyAddedLibraryUnauthorizedThrowable.php @@ -8,11 +8,11 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Errors; -class GetRecentlyAddedUnauthorizedThrowable extends \RuntimeException +class GetRecentlyAddedLibraryUnauthorizedThrowable extends \RuntimeException { - public GetRecentlyAddedUnauthorized $container; + public GetRecentlyAddedLibraryUnauthorized $container; - public function __construct(string $message, int $statusCode, GetRecentlyAddedUnauthorized $container) + public function __construct(string $message, int $statusCode, GetRecentlyAddedLibraryUnauthorized $container) { parent::__construct($message, $statusCode); $this->container = $container; diff --git a/src/Models/Operations/Field.php b/src/Models/Operations/Field.php index 94a8cbb..94bb510 100644 --- a/src/Models/Operations/Field.php +++ b/src/Models/Operations/Field.php @@ -13,27 +13,24 @@ class Field { /** * - * @var ?string $key + * @var string $key */ #[\JMS\Serializer\Annotation\SerializedName('key')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $key = null; + public string $key; /** * - * @var ?string $title + * @var string $title */ #[\JMS\Serializer\Annotation\SerializedName('title')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $title = null; + public string $title; /** * - * @var ?string $type + * @var string $type */ #[\JMS\Serializer\Annotation\SerializedName('type')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $type = null; + public string $type; /** * @@ -44,12 +41,12 @@ class Field public ?string $subType = null; /** - * @param ?string $key - * @param ?string $title - * @param ?string $type + * @param string $key + * @param string $title + * @param string $type * @param ?string $subType */ - public function __construct(?string $key = null, ?string $title = null, ?string $type = null, ?string $subType = null) + public function __construct(string $key, string $title, string $type, ?string $subType = null) { $this->key = $key; $this->title = $title; diff --git a/src/Models/Operations/FieldType.php b/src/Models/Operations/FieldType.php index 50cfd9c..eebc2e0 100644 --- a/src/Models/Operations/FieldType.php +++ b/src/Models/Operations/FieldType.php @@ -13,27 +13,25 @@ class FieldType { /** * - * @var ?string $type + * @var string $type */ #[\JMS\Serializer\Annotation\SerializedName('type')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $type = null; + public string $type; /** * $operator * - * @var ?array $operator + * @var array $operator */ #[\JMS\Serializer\Annotation\SerializedName('Operator')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Operator>|null')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?array $operator = null; + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Operator>')] + public array $operator; /** - * @param ?string $type - * @param ?array $operator + * @param string $type + * @param array $operator */ - public function __construct(?string $type = null, ?array $operator = null) + public function __construct(string $type, array $operator) { $this->type = $type; $this->operator = $operator; diff --git a/src/Models/Operations/GetAllLibrariesDirectory.php b/src/Models/Operations/GetAllLibrariesDirectory.php index 9817a94..1699323 100644 --- a/src/Models/Operations/GetAllLibrariesDirectory.php +++ b/src/Models/Operations/GetAllLibrariesDirectory.php @@ -141,6 +141,7 @@ class GetAllLibrariesDirectory public bool $directory; /** + * Unix epoch datetime in seconds * * @var int $contentChangedAt */ diff --git a/src/Models/Operations/GetLibraryDetailsField.php b/src/Models/Operations/GetLibraryDetailsField.php new file mode 100644 index 0000000..956bd95 --- /dev/null +++ b/src/Models/Operations/GetLibraryDetailsField.php @@ -0,0 +1,59 @@ +key = $key; + $this->title = $title; + $this->type = $type; + $this->subType = $subType; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryDetailsFieldType.php b/src/Models/Operations/GetLibraryDetailsFieldType.php new file mode 100644 index 0000000..f8131f6 --- /dev/null +++ b/src/Models/Operations/GetLibraryDetailsFieldType.php @@ -0,0 +1,41 @@ + $operator + */ + #[\JMS\Serializer\Annotation\SerializedName('Operator')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryDetailsOperator>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $operator = null; + + /** + * @param ?string $type + * @param ?array $operator + */ + public function __construct(?string $type = null, ?array $operator = null) + { + $this->type = $type; + $this->operator = $operator; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryDetailsMediaContainer.php b/src/Models/Operations/GetLibraryDetailsMediaContainer.php index 9882222..848dcc2 100644 --- a/src/Models/Operations/GetLibraryDetailsMediaContainer.php +++ b/src/Models/Operations/GetLibraryDetailsMediaContainer.php @@ -130,10 +130,10 @@ class GetLibraryDetailsMediaContainer /** * $fieldType * - * @var ?array $fieldType + * @var ?array $fieldType */ #[\JMS\Serializer\Annotation\SerializedName('FieldType')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\FieldType>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryDetailsFieldType>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $fieldType = null; @@ -152,7 +152,7 @@ class GetLibraryDetailsMediaContainer * @param ?int $viewMode * @param ?array $directory * @param ?array $type - * @param ?array $fieldType + * @param ?array $fieldType */ public function __construct(?int $size = null, ?bool $allowSync = null, ?string $art = null, ?string $content = null, ?string $identifier = null, ?int $librarySectionID = null, ?string $mediaTagPrefix = null, ?int $mediaTagVersion = null, ?string $thumb = null, ?string $title1 = null, ?string $viewGroup = null, ?int $viewMode = null, ?array $directory = null, ?array $type = null, ?array $fieldType = null) { diff --git a/src/Models/Operations/GetLibraryDetailsOperator.php b/src/Models/Operations/GetLibraryDetailsOperator.php new file mode 100644 index 0000000..6a0be6c --- /dev/null +++ b/src/Models/Operations/GetLibraryDetailsOperator.php @@ -0,0 +1,39 @@ +key = $key; + $this->title = $title; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryDetailsSort.php b/src/Models/Operations/GetLibraryDetailsSort.php new file mode 100644 index 0000000..752ef78 --- /dev/null +++ b/src/Models/Operations/GetLibraryDetailsSort.php @@ -0,0 +1,79 @@ +default = $default; + $this->defaultDirection = $defaultDirection; + $this->descKey = $descKey; + $this->firstCharacterKey = $firstCharacterKey; + $this->key = $key; + $this->title = $title; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryDetailsType.php b/src/Models/Operations/GetLibraryDetailsType.php index d8f6ebb..26605f0 100644 --- a/src/Models/Operations/GetLibraryDetailsType.php +++ b/src/Models/Operations/GetLibraryDetailsType.php @@ -56,20 +56,20 @@ class GetLibraryDetailsType /** * $sort * - * @var ?array $sort + * @var ?array $sort */ #[\JMS\Serializer\Annotation\SerializedName('Sort')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Sort>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryDetailsSort>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $sort = null; /** * $field * - * @var ?array $field + * @var ?array $field */ #[\JMS\Serializer\Annotation\SerializedName('Field')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Field>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryDetailsField>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $field = null; @@ -79,8 +79,8 @@ class GetLibraryDetailsType * @param ?string $title * @param ?bool $active * @param ?array $filter - * @param ?array $sort - * @param ?array $field + * @param ?array $sort + * @param ?array $field */ public function __construct(?string $key = null, ?string $type = null, ?string $title = null, ?bool $active = null, ?array $filter = null, ?array $sort = null, ?array $field = null) { diff --git a/src/Models/Operations/GetLibraryItemsActiveDirection.php b/src/Models/Operations/GetLibraryItemsActiveDirection.php new file mode 100644 index 0000000..40d6838 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsActiveDirection.php @@ -0,0 +1,21 @@ +tag = $tag; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsDefaultDirection.php b/src/Models/Operations/GetLibraryItemsDefaultDirection.php new file mode 100644 index 0000000..9c65550 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsDefaultDirection.php @@ -0,0 +1,21 @@ +alt = $alt; $this->type = $type; diff --git a/src/Models/Operations/GetLibraryItemsLibraryActiveDirection.php b/src/Models/Operations/GetLibraryItemsLibraryActiveDirection.php new file mode 100644 index 0000000..5fb18c7 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsLibraryActiveDirection.php @@ -0,0 +1,21 @@ +key = $key; + $this->title = $title; + $this->type = $type; + $this->subType = $subType; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsLibraryFieldType.php b/src/Models/Operations/GetLibraryItemsLibraryFieldType.php new file mode 100644 index 0000000..fae9d67 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsLibraryFieldType.php @@ -0,0 +1,39 @@ + $operator + */ + #[\JMS\Serializer\Annotation\SerializedName('Operator')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibraryOperator>')] + public array $operator; + + /** + * @param string $type + * @param array $operator + */ + public function __construct(string $type, array $operator) + { + $this->type = $type; + $this->operator = $operator; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsLibraryFilter.php b/src/Models/Operations/GetLibraryItemsLibraryFilter.php new file mode 100644 index 0000000..e081ba3 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsLibraryFilter.php @@ -0,0 +1,64 @@ +filter = $filter; + $this->filterType = $filterType; + $this->key = $key; + $this->title = $title; + $this->type = $type; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsLibraryOperator.php b/src/Models/Operations/GetLibraryItemsLibraryOperator.php new file mode 100644 index 0000000..4d38c84 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsLibraryOperator.php @@ -0,0 +1,37 @@ +key = $key; + $this->title = $title; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsLibraryResponse200Type.php b/src/Models/Operations/GetLibraryItemsLibraryResponse200Type.php new file mode 100644 index 0000000..b934f3e --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsLibraryResponse200Type.php @@ -0,0 +1,18 @@ + $filter + */ + #[\JMS\Serializer\Annotation\SerializedName('Filter')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibraryFilter>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $filter = null; + + /** + * $sort + * + * @var ?array $sort + */ + #[\JMS\Serializer\Annotation\SerializedName('Sort')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibrarySort>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $sort = null; + + /** + * $field + * + * @var ?array $field + */ + #[\JMS\Serializer\Annotation\SerializedName('Field')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibraryField>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $field = null; + + /** + * @param string $key + * @param string $type + * @param string $title + * @param bool $active + * @param ?array $filter + * @param ?array $sort + * @param ?array $field + */ + public function __construct(string $key, string $type, string $title, bool $active, ?array $filter = null, ?array $sort = null, ?array $field = null) + { + $this->key = $key; + $this->type = $type; + $this->title = $title; + $this->active = $active; + $this->filter = $filter; + $this->sort = $sort; + $this->field = $field; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsLibrarySort.php b/src/Models/Operations/GetLibraryItemsLibrarySort.php new file mode 100644 index 0000000..5d39810 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsLibrarySort.php @@ -0,0 +1,104 @@ +defaultDirection = $defaultDirection; + $this->key = $key; + $this->title = $title; + $this->default = $default; + $this->active = $active; + $this->activeDirection = $activeDirection; + $this->descKey = $descKey; + $this->firstCharacterKey = $firstCharacterKey; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsLibraryType.php b/src/Models/Operations/GetLibraryItemsLibraryType.php index 5b20686..17af668 100644 --- a/src/Models/Operations/GetLibraryItemsLibraryType.php +++ b/src/Models/Operations/GetLibraryItemsLibraryType.php @@ -9,83 +9,15 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; -class GetLibraryItemsLibraryType +/** + * The type of media content + * + * + */ +enum GetLibraryItemsLibraryType: string { - /** - * - * @var string $key - */ - #[\JMS\Serializer\Annotation\SerializedName('key')] - public string $key; - - /** - * - * @var string $type - */ - #[\JMS\Serializer\Annotation\SerializedName('type')] - public string $type; - - /** - * - * @var string $title - */ - #[\JMS\Serializer\Annotation\SerializedName('title')] - public string $title; - - /** - * - * @var bool $active - */ - #[\JMS\Serializer\Annotation\SerializedName('active')] - public bool $active; - - /** - * $filter - * - * @var ?array $filter - */ - #[\JMS\Serializer\Annotation\SerializedName('Filter')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsFilter>|null')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?array $filter = null; - - /** - * $sort - * - * @var ?array $sort - */ - #[\JMS\Serializer\Annotation\SerializedName('Sort')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsSort>|null')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?array $sort = null; - - /** - * $field - * - * @var ?array $field - */ - #[\JMS\Serializer\Annotation\SerializedName('Field')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsField>|null')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?array $field = null; - - /** - * @param string $key - * @param string $type - * @param string $title - * @param bool $active - * @param ?array $filter - * @param ?array $sort - * @param ?array $field - */ - public function __construct(string $key, string $type, string $title, bool $active, ?array $filter = null, ?array $sort = null, ?array $field = null) - { - $this->key = $key; - $this->type = $type; - $this->title = $title; - $this->active = $active; - $this->filter = $filter; - $this->sort = $sort; - $this->field = $field; - } -} \ No newline at end of file + case Movie = 'movie'; + case TvShow = 'show'; + case Season = 'season'; + case Episode = 'episode'; +} diff --git a/src/Models/Operations/GetLibraryItemsMedia.php b/src/Models/Operations/GetLibraryItemsMedia.php index 507a2d1..06e79c7 100644 --- a/src/Models/Operations/GetLibraryItemsMedia.php +++ b/src/Models/Operations/GetLibraryItemsMedia.php @@ -118,6 +118,23 @@ class GetLibraryItemsMedia #[\JMS\Serializer\Annotation\SkipWhenNull] public ?bool $hasVoiceActivity = null; + /** + * + * @var ?GetLibraryItemsOptimizedForStreaming $optimizedForStreaming + */ + #[\JMS\Serializer\Annotation\SerializedName('optimizedForStreaming')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsOptimizedForStreaming|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?GetLibraryItemsOptimizedForStreaming $optimizedForStreaming = null; + + /** + * + * @var ?bool $has64bitOffsets + */ + #[\JMS\Serializer\Annotation\SerializedName('has64bitOffsets')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $has64bitOffsets = null; + /** * $part * @@ -144,8 +161,10 @@ class GetLibraryItemsMedia * @param array $part * @param ?string $audioProfile * @param ?bool $hasVoiceActivity + * @param ?GetLibraryItemsOptimizedForStreaming $optimizedForStreaming + * @param ?bool $has64bitOffsets */ - public function __construct(int $id, int $duration, int $bitrate, int $width, int $height, float $aspectRatio, int $audioChannels, string $audioCodec, string $videoCodec, string $videoResolution, string $container, string $videoFrameRate, string $videoProfile, array $part, ?string $audioProfile = null, ?bool $hasVoiceActivity = null) + public function __construct(int $id, int $duration, int $bitrate, int $width, int $height, float $aspectRatio, int $audioChannels, string $audioCodec, string $videoCodec, string $videoResolution, string $container, string $videoFrameRate, string $videoProfile, array $part, ?string $audioProfile = null, ?bool $hasVoiceActivity = null, ?GetLibraryItemsOptimizedForStreaming $optimizedForStreaming = null, ?bool $has64bitOffsets = null) { $this->id = $id; $this->duration = $duration; @@ -163,5 +182,7 @@ class GetLibraryItemsMedia $this->part = $part; $this->audioProfile = $audioProfile; $this->hasVoiceActivity = $hasVoiceActivity; + $this->optimizedForStreaming = $optimizedForStreaming; + $this->has64bitOffsets = $has64bitOffsets; } } \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsMediaContainer.php b/src/Models/Operations/GetLibraryItemsMediaContainer.php index f940fcf..4f685e6 100644 --- a/src/Models/Operations/GetLibraryItemsMediaContainer.php +++ b/src/Models/Operations/GetLibraryItemsMediaContainer.php @@ -9,8 +9,33 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; +/** + * GetLibraryItemsMediaContainer - The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. + * + * + */ class GetLibraryItemsMediaContainer { + /** + * $type + * + * @var ?array $type + */ + #[\JMS\Serializer\Annotation\SerializedName('Type')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsType>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $type = null; + + /** + * $fieldType + * + * @var ?array $fieldType + */ + #[\JMS\Serializer\Annotation\SerializedName('FieldType')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsFieldType>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $fieldType = null; + /** * * @var int $size @@ -70,11 +95,10 @@ class GetLibraryItemsMediaContainer /** * - * @var int|string $librarySectionID + * @var int $librarySectionID */ #[\JMS\Serializer\Annotation\SerializedName('librarySectionID')] - #[\JMS\Serializer\Annotation\Type('int|string')] - public int|string $librarySectionID; + public int $librarySectionID; /** * @@ -162,12 +186,12 @@ class GetLibraryItemsMediaContainer * * * - * @var ?Meta $meta + * @var ?GetLibraryItemsMeta $meta */ #[\JMS\Serializer\Annotation\SerializedName('Meta')] - #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\Meta|null')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsMeta|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?Meta $meta = null; + public ?GetLibraryItemsMeta $meta = null; /** * @param int $size @@ -177,7 +201,7 @@ class GetLibraryItemsMediaContainer * @param bool $allowSync * @param string $art * @param string $identifier - * @param int|string $librarySectionID + * @param int $librarySectionID * @param string $librarySectionTitle * @param string $librarySectionUUID * @param string $mediaTagPrefix @@ -187,12 +211,14 @@ class GetLibraryItemsMediaContainer * @param string $title2 * @param string $viewGroup * @param array $metadata + * @param ?array $type + * @param ?array $fieldType * @param ?bool $nocache * @param ?int $viewMode * @param ?bool $mixedParents - * @param ?Meta $meta + * @param ?GetLibraryItemsMeta $meta */ - public function __construct(int $size, int $totalSize, int $offset, string $content, bool $allowSync, string $art, string $identifier, int|string $librarySectionID, string $librarySectionTitle, string $librarySectionUUID, string $mediaTagPrefix, int $mediaTagVersion, string $thumb, string $title1, string $title2, string $viewGroup, array $metadata, ?bool $nocache = null, ?int $viewMode = null, ?bool $mixedParents = null, ?Meta $meta = null) + public function __construct(int $size, int $totalSize, int $offset, string $content, bool $allowSync, string $art, string $identifier, int $librarySectionID, string $librarySectionTitle, string $librarySectionUUID, string $mediaTagPrefix, int $mediaTagVersion, string $thumb, string $title1, string $title2, string $viewGroup, array $metadata, ?array $type = null, ?array $fieldType = null, ?bool $nocache = null, ?int $viewMode = null, ?bool $mixedParents = null, ?GetLibraryItemsMeta $meta = null) { $this->size = $size; $this->totalSize = $totalSize; @@ -211,6 +237,8 @@ class GetLibraryItemsMediaContainer $this->title2 = $title2; $this->viewGroup = $viewGroup; $this->metadata = $metadata; + $this->type = $type; + $this->fieldType = $fieldType; $this->nocache = $nocache; $this->viewMode = $viewMode; $this->mixedParents = $mixedParents; diff --git a/src/Models/Operations/GetLibraryItemsMediaGuid.php b/src/Models/Operations/GetLibraryItemsMediaGuid.php new file mode 100644 index 0000000..4b19a05 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsMediaGuid.php @@ -0,0 +1,32 @@ +id = $id; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsMeta.php b/src/Models/Operations/GetLibraryItemsMeta.php new file mode 100644 index 0000000..42d52cb --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsMeta.php @@ -0,0 +1,48 @@ + $type + */ + #[\JMS\Serializer\Annotation\SerializedName('Type')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibraryResponseType>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $type = null; + + /** + * $fieldType + * + * @var ?array $fieldType + */ + #[\JMS\Serializer\Annotation\SerializedName('FieldType')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibraryFieldType>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $fieldType = null; + + /** + * @param ?array $type + * @param ?array $fieldType + */ + public function __construct(?array $type = null, ?array $fieldType = null) + { + $this->type = $type; + $this->fieldType = $fieldType; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsMetaDataRating.php b/src/Models/Operations/GetLibraryItemsMetaDataRating.php new file mode 100644 index 0000000..f093af4 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsMetaDataRating.php @@ -0,0 +1,49 @@ +image = $image; + $this->value = $value; + $this->type = $type; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsMetadata.php b/src/Models/Operations/GetLibraryItemsMetadata.php index 81d5c3e..bc50758 100644 --- a/src/Models/Operations/GetLibraryItemsMetadata.php +++ b/src/Models/Operations/GetLibraryItemsMetadata.php @@ -52,16 +52,40 @@ class GetLibraryItemsMetadata #[\JMS\Serializer\Annotation\SkipWhenNull] public ?bool $skipChildren = null; + /** + * + * @var ?int $librarySectionID + */ + #[\JMS\Serializer\Annotation\SerializedName('librarySectionID')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $librarySectionID = null; + + /** + * + * @var ?string $librarySectionTitle + */ + #[\JMS\Serializer\Annotation\SerializedName('librarySectionTitle')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $librarySectionTitle = null; + + /** + * + * @var ?string $librarySectionKey + */ + #[\JMS\Serializer\Annotation\SerializedName('librarySectionKey')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $librarySectionKey = null; + /** * The type of media content * * * - * @var GetLibraryItemsType $type + * @var GetLibraryItemsLibraryType $type */ #[\JMS\Serializer\Annotation\SerializedName('type')] - #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsType')] - public GetLibraryItemsType $type; + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibraryType')] + public GetLibraryItemsLibraryType $type; /** * @@ -135,12 +159,12 @@ class GetLibraryItemsMetadata /** * - * @var ?FlattenSeasons $flattenSeasons + * @var ?GetLibraryItemsFlattenSeasons $flattenSeasons */ #[\JMS\Serializer\Annotation\SerializedName('flattenSeasons')] - #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\FlattenSeasons|null')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsFlattenSeasons|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?FlattenSeasons $flattenSeasons = null; + public ?GetLibraryItemsFlattenSeasons $flattenSeasons = null; /** * Setting that indicates the episode ordering for the show @@ -152,12 +176,12 @@ class GetLibraryItemsMetadata * absolute = TheTVDB (Absolute)). * * - * @var ?ShowOrdering $showOrdering + * @var ?GetLibraryItemsShowOrdering $showOrdering */ #[\JMS\Serializer\Annotation\SerializedName('showOrdering')] - #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\ShowOrdering|null')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsShowOrdering|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?ShowOrdering $showOrdering = null; + public ?GetLibraryItemsShowOrdering $showOrdering = null; /** * @@ -288,6 +312,14 @@ class GetLibraryItemsMetadata #[\JMS\Serializer\Annotation\SkipWhenNull] public ?string $grandparentThumb = null; + /** + * + * @var ?string $parentSlug + */ + #[\JMS\Serializer\Annotation\SerializedName('parentSlug')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentSlug = null; + /** * * @var ?string $grandparentSlug @@ -367,10 +399,10 @@ class GetLibraryItemsMetadata /** * $collection * - * @var ?array $collection + * @var ?array $collection */ #[\JMS\Serializer\Annotation\SerializedName('Collection')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Collection>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsCollection>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $collection = null; @@ -389,21 +421,31 @@ class GetLibraryItemsMetadata * * * - * @var ?array $mediaGuid + * @var ?array $mediaGuid */ #[\JMS\Serializer\Annotation\SerializedName('Guid')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\MediaGuid>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsMediaGuid>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $mediaGuid = null; /** * - * @var ?UltraBlurColors $ultraBlurColors + * @var ?GetLibraryItemsUltraBlurColors $ultraBlurColors */ #[\JMS\Serializer\Annotation\SerializedName('UltraBlurColors')] - #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\UltraBlurColors|null')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsUltraBlurColors|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?UltraBlurColors $ultraBlurColors = null; + public ?GetLibraryItemsUltraBlurColors $ultraBlurColors = null; + + /** + * $metaDataRating + * + * @var ?array $metaDataRating + */ + #[\JMS\Serializer\Annotation\SerializedName('Rating')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsMetaDataRating>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $metaDataRating = null; /** * $image @@ -598,12 +640,15 @@ class GetLibraryItemsMetadata * @param string $ratingKey * @param string $key * @param string $guid - * @param GetLibraryItemsType $type + * @param GetLibraryItemsLibraryType $type * @param string $title * @param string $summary * @param int $addedAt * @param ?string $studio * @param ?bool $skipChildren + * @param ?int $librarySectionID + * @param ?string $librarySectionTitle + * @param ?string $librarySectionKey * @param ?string $slug * @param ?string $contentRating * @param ?float $rating @@ -611,8 +656,8 @@ class GetLibraryItemsMetadata * @param ?int $year * @param ?int $seasonCount * @param ?string $tagline - * @param ?FlattenSeasons $flattenSeasons - * @param ?ShowOrdering $showOrdering + * @param ?GetLibraryItemsFlattenSeasons $flattenSeasons + * @param ?GetLibraryItemsShowOrdering $showOrdering * @param ?string $thumb * @param ?string $art * @param ?string $banner @@ -628,6 +673,7 @@ class GetLibraryItemsMetadata * @param ?string $grandparentKey * @param ?string $grandparentTitle * @param ?string $grandparentThumb + * @param ?string $parentSlug * @param ?string $grandparentSlug * @param ?string $grandparentArt * @param ?string $grandparentTheme @@ -636,10 +682,11 @@ class GetLibraryItemsMetadata * @param ?array $country * @param ?array $director * @param ?array $writer - * @param ?array $collection + * @param ?array $collection * @param ?array $role - * @param ?array $mediaGuid - * @param ?UltraBlurColors $ultraBlurColors + * @param ?array $mediaGuid + * @param ?GetLibraryItemsUltraBlurColors $ultraBlurColors + * @param ?array $metaDataRating * @param ?array $image * @param ?string $titleSort * @param ?int $viewCount @@ -664,7 +711,7 @@ class GetLibraryItemsMetadata * @param ?string $parentThumb * @param ?string $parentTheme */ - public function __construct(string $ratingKey, string $key, string $guid, GetLibraryItemsType $type, string $title, string $summary, int $addedAt, ?string $studio = null, ?bool $skipChildren = null, ?string $slug = null, ?string $contentRating = null, ?float $rating = null, ?float $audienceRating = null, ?int $year = null, ?int $seasonCount = null, ?string $tagline = null, ?FlattenSeasons $flattenSeasons = null, ?ShowOrdering $showOrdering = null, ?string $thumb = null, ?string $art = null, ?string $banner = null, ?int $duration = null, ?LocalDate $originallyAvailableAt = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?string $grandparentRatingKey = null, ?string $grandparentGuid = null, ?string $grandparentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $grandparentSlug = null, ?string $grandparentArt = null, ?string $grandparentTheme = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $collection = null, ?array $role = null, ?array $mediaGuid = null, ?UltraBlurColors $ultraBlurColors = null, ?array $image = null, ?string $titleSort = null, ?int $viewCount = null, ?int $lastViewedAt = null, ?string $originalTitle = null, ?int $viewOffset = null, ?int $skipCount = null, ?int $index = null, ?string $theme = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $childCount = null, ?string $hasPremiumExtras = null, ?string $hasPremiumPrimaryExtra = null, ?string $parentRatingKey = null, ?string $parentGuid = null, ?string $parentStudio = null, ?string $parentKey = null, ?string $parentTitle = null, ?int $parentIndex = null, ?int $parentYear = null, ?string $parentThumb = null, ?string $parentTheme = null) + public function __construct(string $ratingKey, string $key, string $guid, GetLibraryItemsLibraryType $type, string $title, string $summary, int $addedAt, ?string $studio = null, ?bool $skipChildren = null, ?int $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionKey = null, ?string $slug = null, ?string $contentRating = null, ?float $rating = null, ?float $audienceRating = null, ?int $year = null, ?int $seasonCount = null, ?string $tagline = null, ?GetLibraryItemsFlattenSeasons $flattenSeasons = null, ?GetLibraryItemsShowOrdering $showOrdering = null, ?string $thumb = null, ?string $art = null, ?string $banner = null, ?int $duration = null, ?LocalDate $originallyAvailableAt = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?string $grandparentRatingKey = null, ?string $grandparentGuid = null, ?string $grandparentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $parentSlug = null, ?string $grandparentSlug = null, ?string $grandparentArt = null, ?string $grandparentTheme = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $collection = null, ?array $role = null, ?array $mediaGuid = null, ?GetLibraryItemsUltraBlurColors $ultraBlurColors = null, ?array $metaDataRating = null, ?array $image = null, ?string $titleSort = null, ?int $viewCount = null, ?int $lastViewedAt = null, ?string $originalTitle = null, ?int $viewOffset = null, ?int $skipCount = null, ?int $index = null, ?string $theme = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $childCount = null, ?string $hasPremiumExtras = null, ?string $hasPremiumPrimaryExtra = null, ?string $parentRatingKey = null, ?string $parentGuid = null, ?string $parentStudio = null, ?string $parentKey = null, ?string $parentTitle = null, ?int $parentIndex = null, ?int $parentYear = null, ?string $parentThumb = null, ?string $parentTheme = null) { $this->ratingKey = $ratingKey; $this->key = $key; @@ -675,6 +722,9 @@ class GetLibraryItemsMetadata $this->addedAt = $addedAt; $this->studio = $studio; $this->skipChildren = $skipChildren; + $this->librarySectionID = $librarySectionID; + $this->librarySectionTitle = $librarySectionTitle; + $this->librarySectionKey = $librarySectionKey; $this->slug = $slug; $this->contentRating = $contentRating; $this->rating = $rating; @@ -699,6 +749,7 @@ class GetLibraryItemsMetadata $this->grandparentKey = $grandparentKey; $this->grandparentTitle = $grandparentTitle; $this->grandparentThumb = $grandparentThumb; + $this->parentSlug = $parentSlug; $this->grandparentSlug = $grandparentSlug; $this->grandparentArt = $grandparentArt; $this->grandparentTheme = $grandparentTheme; @@ -711,6 +762,7 @@ class GetLibraryItemsMetadata $this->role = $role; $this->mediaGuid = $mediaGuid; $this->ultraBlurColors = $ultraBlurColors; + $this->metaDataRating = $metaDataRating; $this->image = $image; $this->titleSort = $titleSort; $this->viewCount = $viewCount; diff --git a/src/Models/Operations/GetLibraryItemsOptimizedForStreaming.php b/src/Models/Operations/GetLibraryItemsOptimizedForStreaming.php new file mode 100644 index 0000000..9b3cf34 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsOptimizedForStreaming.php @@ -0,0 +1,16 @@ + $stream + */ + #[\JMS\Serializer\Annotation\SerializedName('Stream')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsStream>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $stream = null; /** * @param int $id @@ -97,10 +123,13 @@ class GetLibraryItemsPart * @param string $container * @param string $videoProfile * @param ?string $audioProfile + * @param ?bool $has64bitOffsets + * @param ?bool $optimizedForStreaming * @param ?string $indexes - * @param ?HasThumbnail $hasThumbnail + * @param ?GetLibraryItemsHasThumbnail $hasThumbnail + * @param ?array $stream */ - public function __construct(int $id, string $key, int $duration, string $file, int $size, string $container, string $videoProfile, ?string $audioProfile = null, ?string $indexes = null, ?HasThumbnail $hasThumbnail = null) + public function __construct(int $id, string $key, int $duration, string $file, int $size, string $container, string $videoProfile, ?string $audioProfile = null, ?bool $has64bitOffsets = null, ?bool $optimizedForStreaming = null, ?string $indexes = null, ?GetLibraryItemsHasThumbnail $hasThumbnail = null, ?array $stream = null) { $this->id = $id; $this->key = $key; @@ -110,7 +139,10 @@ class GetLibraryItemsPart $this->container = $container; $this->videoProfile = $videoProfile; $this->audioProfile = $audioProfile; + $this->has64bitOffsets = $has64bitOffsets; + $this->optimizedForStreaming = $optimizedForStreaming; $this->indexes = $indexes; $this->hasThumbnail = $hasThumbnail; + $this->stream = $stream; } } \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.php b/src/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.php new file mode 100644 index 0000000..a48f65f --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsQueryParamIncludeMeta.php @@ -0,0 +1,21 @@ +sectionKey = $sectionKey; $this->tag = $tag; $this->includeGuids = $includeGuids; - $this->includeMeta = $includeMeta; $this->type = $type; + $this->includeMeta = $includeMeta; $this->xPlexContainerStart = $xPlexContainerStart; $this->xPlexContainerSize = $xPlexContainerSize; } diff --git a/src/Models/Operations/GetLibraryItemsRole.php b/src/Models/Operations/GetLibraryItemsRole.php index 5baf0a4..a1a9b67 100644 --- a/src/Models/Operations/GetLibraryItemsRole.php +++ b/src/Models/Operations/GetLibraryItemsRole.php @@ -12,6 +12,34 @@ namespace LukeHagar\Plex_API\Models\Operations; class GetLibraryItemsRole { /** + * The ID of the tag or actor. + * + * @var ?int $id + */ + #[\JMS\Serializer\Annotation\SerializedName('id')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $id = null; + + /** + * The filter used to find the actor or tag. + * + * @var ?string $filter + */ + #[\JMS\Serializer\Annotation\SerializedName('filter')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $filter = null; + + /** + * The thumbnail of the actor + * + * @var ?string $thumb + */ + #[\JMS\Serializer\Annotation\SerializedName('thumb')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $thumb = null; + + /** + * The name of the tag or actor. * * @var ?string $tag */ @@ -20,10 +48,38 @@ class GetLibraryItemsRole public ?string $tag = null; /** - * @param ?string $tag + * Unique identifier for the tag. + * + * @var ?string $tagKey */ - public function __construct(?string $tag = null) + #[\JMS\Serializer\Annotation\SerializedName('tagKey')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $tagKey = null; + + /** + * The role of the actor or tag in the media. + * + * @var ?string $role + */ + #[\JMS\Serializer\Annotation\SerializedName('role')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $role = null; + + /** + * @param ?int $id + * @param ?string $filter + * @param ?string $thumb + * @param ?string $tag + * @param ?string $tagKey + * @param ?string $role + */ + public function __construct(?int $id = null, ?string $filter = null, ?string $thumb = null, ?string $tag = null, ?string $tagKey = null, ?string $role = null) { + $this->id = $id; + $this->filter = $filter; + $this->thumb = $thumb; $this->tag = $tag; + $this->tagKey = $tagKey; + $this->role = $role; } } \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsShowOrdering.php b/src/Models/Operations/GetLibraryItemsShowOrdering.php new file mode 100644 index 0000000..968b4c2 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsShowOrdering.php @@ -0,0 +1,29 @@ +defaultDirection = $defaultDirection; $this->key = $key; diff --git a/src/Models/Operations/GetLibraryItemsStream.php b/src/Models/Operations/GetLibraryItemsStream.php new file mode 100644 index 0000000..ef962d1 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsStream.php @@ -0,0 +1,429 @@ +id = $id; + $this->streamType = $streamType; + $this->codec = $codec; + $this->index = $index; + $this->default = $default; + $this->selected = $selected; + $this->bitrate = $bitrate; + $this->colorPrimaries = $colorPrimaries; + $this->colorRange = $colorRange; + $this->colorSpace = $colorSpace; + $this->colorTrc = $colorTrc; + $this->bitDepth = $bitDepth; + $this->chromaLocation = $chromaLocation; + $this->streamIdentifier = $streamIdentifier; + $this->chromaSubsampling = $chromaSubsampling; + $this->codedHeight = $codedHeight; + $this->codedWidth = $codedWidth; + $this->frameRate = $frameRate; + $this->hasScalingMatrix = $hasScalingMatrix; + $this->hearingImpaired = $hearingImpaired; + $this->closedCaptions = $closedCaptions; + $this->embeddedInVideo = $embeddedInVideo; + $this->height = $height; + $this->level = $level; + $this->profile = $profile; + $this->refFrames = $refFrames; + $this->scanType = $scanType; + $this->width = $width; + $this->displayTitle = $displayTitle; + $this->extendedDisplayTitle = $extendedDisplayTitle; + $this->channels = $channels; + $this->language = $language; + $this->languageTag = $languageTag; + $this->languageCode = $languageCode; + $this->audioChannelLayout = $audioChannelLayout; + $this->samplingRate = $samplingRate; + $this->title = $title; + $this->canAutoSync = $canAutoSync; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsType.php b/src/Models/Operations/GetLibraryItemsType.php index b1a9c53..8ac136e 100644 --- a/src/Models/Operations/GetLibraryItemsType.php +++ b/src/Models/Operations/GetLibraryItemsType.php @@ -9,15 +9,83 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; -/** - * The type of media content - * - * - */ -enum GetLibraryItemsType: string +class GetLibraryItemsType { - case Movie = 'movie'; - case TvShow = 'show'; - case Season = 'season'; - case Episode = 'episode'; -} + /** + * + * @var string $key + */ + #[\JMS\Serializer\Annotation\SerializedName('key')] + public string $key; + + /** + * + * @var string $type + */ + #[\JMS\Serializer\Annotation\SerializedName('type')] + public string $type; + + /** + * + * @var string $title + */ + #[\JMS\Serializer\Annotation\SerializedName('title')] + public string $title; + + /** + * + * @var bool $active + */ + #[\JMS\Serializer\Annotation\SerializedName('active')] + public bool $active; + + /** + * $filter + * + * @var ?array $filter + */ + #[\JMS\Serializer\Annotation\SerializedName('Filter')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsFilter>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $filter = null; + + /** + * $sort + * + * @var ?array $sort + */ + #[\JMS\Serializer\Annotation\SerializedName('Sort')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsSort>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $sort = null; + + /** + * $field + * + * @var ?array $field + */ + #[\JMS\Serializer\Annotation\SerializedName('Field')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsField>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $field = null; + + /** + * @param string $key + * @param string $type + * @param string $title + * @param bool $active + * @param ?array $filter + * @param ?array $sort + * @param ?array $field + */ + public function __construct(string $key, string $type, string $title, bool $active, ?array $filter = null, ?array $sort = null, ?array $field = null) + { + $this->key = $key; + $this->type = $type; + $this->title = $title; + $this->active = $active; + $this->filter = $filter; + $this->sort = $sort; + $this->field = $field; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetLibraryItemsUltraBlurColors.php b/src/Models/Operations/GetLibraryItemsUltraBlurColors.php new file mode 100644 index 0000000..e54bfb2 --- /dev/null +++ b/src/Models/Operations/GetLibraryItemsUltraBlurColors.php @@ -0,0 +1,55 @@ +topLeft = $topLeft; + $this->topRight = $topRight; + $this->bottomRight = $bottomRight; + $this->bottomLeft = $bottomLeft; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetMetaDataByRatingKeyPart.php b/src/Models/Operations/GetMetaDataByRatingKeyPart.php index 6a4ec6a..492ca96 100644 --- a/src/Models/Operations/GetMetaDataByRatingKeyPart.php +++ b/src/Models/Operations/GetMetaDataByRatingKeyPart.php @@ -94,10 +94,10 @@ class GetMetaDataByRatingKeyPart /** * $stream * - * @var ?array $stream + * @var ?array $stream */ #[\JMS\Serializer\Annotation\SerializedName('Stream')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Stream>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetMetaDataByRatingKeyStream>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $stream = null; @@ -112,7 +112,7 @@ class GetMetaDataByRatingKeyPart * @param ?bool $has64bitOffsets * @param ?bool $optimizedForStreaming * @param ?string $videoProfile - * @param ?array $stream + * @param ?array $stream */ public function __construct(?int $id = null, ?string $key = null, ?int $duration = null, ?string $file = null, ?int $size = null, ?string $audioProfile = null, ?string $container = null, ?bool $has64bitOffsets = null, ?bool $optimizedForStreaming = null, ?string $videoProfile = null, ?array $stream = null) { diff --git a/src/Models/Operations/GetMetaDataByRatingKeyStream.php b/src/Models/Operations/GetMetaDataByRatingKeyStream.php new file mode 100644 index 0000000..f7182a7 --- /dev/null +++ b/src/Models/Operations/GetMetaDataByRatingKeyStream.php @@ -0,0 +1,339 @@ +id = $id; + $this->streamType = $streamType; + $this->default = $default; + $this->codec = $codec; + $this->index = $index; + $this->bitrate = $bitrate; + $this->bitDepth = $bitDepth; + $this->chromaLocation = $chromaLocation; + $this->chromaSubsampling = $chromaSubsampling; + $this->codedHeight = $codedHeight; + $this->codedWidth = $codedWidth; + $this->colorPrimaries = $colorPrimaries; + $this->colorRange = $colorRange; + $this->colorSpace = $colorSpace; + $this->colorTrc = $colorTrc; + $this->frameRate = $frameRate; + $this->hasScalingMatrix = $hasScalingMatrix; + $this->height = $height; + $this->level = $level; + $this->profile = $profile; + $this->refFrames = $refFrames; + $this->scanType = $scanType; + $this->streamIdentifier = $streamIdentifier; + $this->width = $width; + $this->displayTitle = $displayTitle; + $this->extendedDisplayTitle = $extendedDisplayTitle; + $this->selected = $selected; + $this->channels = $channels; + $this->language = $language; + $this->languageTag = $languageTag; + $this->languageCode = $languageCode; + $this->samplingRate = $samplingRate; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetPinRequest.php b/src/Models/Operations/GetPinRequest.php index f581425..1f36d9a 100644 --- a/src/Models/Operations/GetPinRequest.php +++ b/src/Models/Operations/GetPinRequest.php @@ -23,6 +23,18 @@ class GetPinRequest #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=strong')] public ?bool $strong = null; + /** + * The unique identifier for the client application + * + * This is used to track the client application and its usage + * (UUID, serial number, or other number unique per device) + * + * + * @var ?string $clientID + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=X-Plex-Client-Identifier')] + public ?string $clientID = null; + /** * * @var ?string $clientName @@ -53,14 +65,16 @@ class GetPinRequest /** * @param ?bool $strong + * @param ?string $clientID * @param ?string $clientName * @param ?string $deviceName * @param ?string $clientVersion * @param ?string $clientPlatform */ - public function __construct(?bool $strong = null, ?string $clientName = null, ?string $deviceName = null, ?string $clientVersion = null, ?string $clientPlatform = null) + public function __construct(?bool $strong = null, ?string $clientID = null, ?string $clientName = null, ?string $deviceName = null, ?string $clientVersion = null, ?string $clientPlatform = null) { $this->strong = $strong; + $this->clientID = $clientID; $this->clientName = $clientName; $this->deviceName = $deviceName; $this->clientVersion = $clientVersion; diff --git a/src/Models/Operations/GetRecentlyAddedActiveDirection.php b/src/Models/Operations/GetRecentlyAddedActiveDirection.php new file mode 100644 index 0000000..2dbcb89 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedActiveDirection.php @@ -0,0 +1,21 @@ +key = $key; + $this->title = $title; + $this->type = $type; + $this->subType = $subType; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedFieldType.php b/src/Models/Operations/GetRecentlyAddedFieldType.php new file mode 100644 index 0000000..7a93c39 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedFieldType.php @@ -0,0 +1,39 @@ + $operator + */ + #[\JMS\Serializer\Annotation\SerializedName('Operator')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedOperator>')] + public array $operator; + + /** + * @param string $type + * @param array $operator + */ + public function __construct(string $type, array $operator) + { + $this->type = $type; + $this->operator = $operator; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedFilter.php b/src/Models/Operations/GetRecentlyAddedFilter.php new file mode 100644 index 0000000..cb2eb76 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedFilter.php @@ -0,0 +1,64 @@ +filter = $filter; + $this->filterType = $filterType; + $this->key = $key; + $this->title = $title; + $this->type = $type; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedHubsResponseType.php b/src/Models/Operations/GetRecentlyAddedHubsResponseType.php new file mode 100644 index 0000000..a9db833 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedHubsResponseType.php @@ -0,0 +1,18 @@ +alt = $alt; + $this->type = $type; + $this->url = $url; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryCountry.php b/src/Models/Operations/GetRecentlyAddedLibraryCountry.php new file mode 100644 index 0000000..fea9af8 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryCountry.php @@ -0,0 +1,29 @@ +tag = $tag; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryDirector.php b/src/Models/Operations/GetRecentlyAddedLibraryDirector.php new file mode 100644 index 0000000..0a23b86 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryDirector.php @@ -0,0 +1,29 @@ +tag = $tag; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryFilter.php b/src/Models/Operations/GetRecentlyAddedLibraryFilter.php new file mode 100644 index 0000000..83afa94 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryFilter.php @@ -0,0 +1,64 @@ +filter = $filter; + $this->filterType = $filterType; + $this->key = $key; + $this->title = $title; + $this->type = $type; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryGenre.php b/src/Models/Operations/GetRecentlyAddedLibraryGenre.php new file mode 100644 index 0000000..d8ce243 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryGenre.php @@ -0,0 +1,29 @@ +tag = $tag; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryMedia.php b/src/Models/Operations/GetRecentlyAddedLibraryMedia.php new file mode 100644 index 0000000..f891df4 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryMedia.php @@ -0,0 +1,181 @@ + $part + */ + #[\JMS\Serializer\Annotation\SerializedName('Part')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryPart>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $part = null; + + /** + * @param ?float $id + * @param ?float $duration + * @param ?float $bitrate + * @param ?float $width + * @param ?float $height + * @param ?float $aspectRatio + * @param ?float $audioChannels + * @param ?string $audioCodec + * @param ?string $videoCodec + * @param ?float $videoResolution + * @param ?string $container + * @param ?string $videoFrameRate + * @param ?float $optimizedForStreaming + * @param ?bool $has64bitOffsets + * @param ?string $videoProfile + * @param ?array $part + */ + public function __construct(?float $id = null, ?float $duration = null, ?float $bitrate = null, ?float $width = null, ?float $height = null, ?float $aspectRatio = null, ?float $audioChannels = null, ?string $audioCodec = null, ?string $videoCodec = null, ?float $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?float $optimizedForStreaming = null, ?bool $has64bitOffsets = null, ?string $videoProfile = null, ?array $part = null) + { + $this->id = $id; + $this->duration = $duration; + $this->bitrate = $bitrate; + $this->width = $width; + $this->height = $height; + $this->aspectRatio = $aspectRatio; + $this->audioChannels = $audioChannels; + $this->audioCodec = $audioCodec; + $this->videoCodec = $videoCodec; + $this->videoResolution = $videoResolution; + $this->container = $container; + $this->videoFrameRate = $videoFrameRate; + $this->optimizedForStreaming = $optimizedForStreaming; + $this->has64bitOffsets = $has64bitOffsets; + $this->videoProfile = $videoProfile; + $this->part = $part; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryMediaContainer.php b/src/Models/Operations/GetRecentlyAddedLibraryMediaContainer.php new file mode 100644 index 0000000..3a55b75 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryMediaContainer.php @@ -0,0 +1,120 @@ + $type + */ + #[\JMS\Serializer\Annotation\SerializedName('Type')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryType>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $type = null; + + /** + * $fieldType + * + * @var ?array $fieldType + */ + #[\JMS\Serializer\Annotation\SerializedName('FieldType')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\FieldType>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $fieldType = null; + + /** + * + * @var ?float $size + */ + #[\JMS\Serializer\Annotation\SerializedName('size')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?float $size = null; + + /** + * + * @var ?bool $allowSync + */ + #[\JMS\Serializer\Annotation\SerializedName('allowSync')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $allowSync = null; + + /** + * + * @var ?string $identifier + */ + #[\JMS\Serializer\Annotation\SerializedName('identifier')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $identifier = null; + + /** + * + * @var ?string $mediaTagPrefix + */ + #[\JMS\Serializer\Annotation\SerializedName('mediaTagPrefix')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $mediaTagPrefix = null; + + /** + * + * @var ?float $mediaTagVersion + */ + #[\JMS\Serializer\Annotation\SerializedName('mediaTagVersion')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?float $mediaTagVersion = null; + + /** + * + * @var ?bool $mixedParents + */ + #[\JMS\Serializer\Annotation\SerializedName('mixedParents')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $mixedParents = null; + + /** + * $metadata + * + * @var ?array $metadata + */ + #[\JMS\Serializer\Annotation\SerializedName('Metadata')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryMetadata>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $metadata = null; + + /** + * @param ?array $type + * @param ?array $fieldType + * @param ?float $size + * @param ?bool $allowSync + * @param ?string $identifier + * @param ?string $mediaTagPrefix + * @param ?float $mediaTagVersion + * @param ?bool $mixedParents + * @param ?array $metadata + */ + public function __construct(?array $type = null, ?array $fieldType = null, ?float $size = null, ?bool $allowSync = null, ?string $identifier = null, ?string $mediaTagPrefix = null, ?float $mediaTagVersion = null, ?bool $mixedParents = null, ?array $metadata = null) + { + $this->type = $type; + $this->fieldType = $fieldType; + $this->size = $size; + $this->allowSync = $allowSync; + $this->identifier = $identifier; + $this->mediaTagPrefix = $mediaTagPrefix; + $this->mediaTagVersion = $mediaTagVersion; + $this->mixedParents = $mixedParents; + $this->metadata = $metadata; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryMetadata.php b/src/Models/Operations/GetRecentlyAddedLibraryMetadata.php new file mode 100644 index 0000000..e7050e6 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryMetadata.php @@ -0,0 +1,351 @@ + $media + */ + #[\JMS\Serializer\Annotation\SerializedName('Media')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryMedia>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $media = null; + + /** + * $genre + * + * @var ?array $genre + */ + #[\JMS\Serializer\Annotation\SerializedName('Genre')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryGenre>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $genre = null; + + /** + * $director + * + * @var ?array $director + */ + #[\JMS\Serializer\Annotation\SerializedName('Director')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryDirector>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $director = null; + + /** + * $writer + * + * @var ?array $writer + */ + #[\JMS\Serializer\Annotation\SerializedName('Writer')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryWriter>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $writer = null; + + /** + * $country + * + * @var ?array $country + */ + #[\JMS\Serializer\Annotation\SerializedName('Country')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryCountry>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $country = null; + + /** + * $role + * + * @var ?array $role + */ + #[\JMS\Serializer\Annotation\SerializedName('Role')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryRole>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $role = null; + + /** + * @param ?bool $allowSync + * @param ?float $librarySectionID + * @param ?string $librarySectionTitle + * @param ?string $librarySectionUUID + * @param ?float $ratingKey + * @param ?string $key + * @param ?string $guid + * @param ?string $studio + * @param ?string $type + * @param ?string $title + * @param ?string $contentRating + * @param ?string $summary + * @param ?float $rating + * @param ?float $audienceRating + * @param ?float $year + * @param ?string $tagline + * @param ?string $thumb + * @param ?string $art + * @param ?float $duration + * @param ?\DateTime $originallyAvailableAt + * @param ?float $addedAt + * @param ?float $updatedAt + * @param ?string $audienceRatingImage + * @param ?string $chapterSource + * @param ?string $primaryExtraKey + * @param ?string $ratingImage + * @param ?array $media + * @param ?array $genre + * @param ?array $director + * @param ?array $writer + * @param ?array $country + * @param ?array $role + */ + public function __construct(?bool $allowSync = null, ?float $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionUUID = null, ?float $ratingKey = null, ?string $key = null, ?string $guid = null, ?string $studio = null, ?string $type = null, ?string $title = null, ?string $contentRating = null, ?string $summary = null, ?float $rating = null, ?float $audienceRating = null, ?float $year = null, ?string $tagline = null, ?string $thumb = null, ?string $art = null, ?float $duration = null, ?\DateTime $originallyAvailableAt = null, ?float $addedAt = null, ?float $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?array $media = null, ?array $genre = null, ?array $director = null, ?array $writer = null, ?array $country = null, ?array $role = null) + { + $this->allowSync = $allowSync; + $this->librarySectionID = $librarySectionID; + $this->librarySectionTitle = $librarySectionTitle; + $this->librarySectionUUID = $librarySectionUUID; + $this->ratingKey = $ratingKey; + $this->key = $key; + $this->guid = $guid; + $this->studio = $studio; + $this->type = $type; + $this->title = $title; + $this->contentRating = $contentRating; + $this->summary = $summary; + $this->rating = $rating; + $this->audienceRating = $audienceRating; + $this->year = $year; + $this->tagline = $tagline; + $this->thumb = $thumb; + $this->art = $art; + $this->duration = $duration; + $this->originallyAvailableAt = $originallyAvailableAt; + $this->addedAt = $addedAt; + $this->updatedAt = $updatedAt; + $this->audienceRatingImage = $audienceRatingImage; + $this->chapterSource = $chapterSource; + $this->primaryExtraKey = $primaryExtraKey; + $this->ratingImage = $ratingImage; + $this->media = $media; + $this->genre = $genre; + $this->director = $director; + $this->writer = $writer; + $this->country = $country; + $this->role = $role; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryPart.php b/src/Models/Operations/GetRecentlyAddedLibraryPart.php new file mode 100644 index 0000000..2b1daa9 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryPart.php @@ -0,0 +1,119 @@ +id = $id; + $this->key = $key; + $this->duration = $duration; + $this->file = $file; + $this->size = $size; + $this->container = $container; + $this->has64bitOffsets = $has64bitOffsets; + $this->hasThumbnail = $hasThumbnail; + $this->optimizedForStreaming = $optimizedForStreaming; + $this->videoProfile = $videoProfile; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryRequest.php b/src/Models/Operations/GetRecentlyAddedLibraryRequest.php new file mode 100644 index 0000000..60c9e93 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryRequest.php @@ -0,0 +1,105 @@ + $pinnedContentDirectoryID + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=pinnedContentDirectoryID')] + public ?array $pinnedContentDirectoryID = null; + + /** + * The library section ID for filtering content. + * + * @var ?int $sectionID + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=sectionID')] + public ?int $sectionID = null; + + /** + * The type of media to retrieve. + * + * 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 + * + * + * @var QueryParamType $type + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=type')] + public QueryParamType $type; + + /** + * Adds the Meta object to the response + * + * + * + * @var ?QueryParamIncludeMeta $includeMeta + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=includeMeta')] + public ?QueryParamIncludeMeta $includeMeta = null; + + /** + * The index of the first item to return. If not specified, the first item will be returned. + * + * If the number of items exceeds the limit, the response will be paginated. + * By default this is 0 + * + * + * @var ?int $xPlexContainerStart + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=X-Plex-Container-Start')] + public ?int $xPlexContainerStart = null; + + /** + * The number of items to return. If not specified, all items will be returned. + * + * If the number of items exceeds the limit, the response will be paginated. + * By default this is 50 + * + * + * @var ?int $xPlexContainerSize + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=X-Plex-Container-Size')] + public ?int $xPlexContainerSize = null; + + /** + * @param QueryParamType $type + * @param ?int $contentDirectoryID + * @param ?array $pinnedContentDirectoryID + * @param ?int $sectionID + * @param ?QueryParamIncludeMeta $includeMeta + * @param ?int $xPlexContainerStart + * @param ?int $xPlexContainerSize + */ + public function __construct(QueryParamType $type, ?int $contentDirectoryID = null, ?array $pinnedContentDirectoryID = null, ?int $sectionID = null, ?QueryParamIncludeMeta $includeMeta = null, ?int $xPlexContainerStart = null, ?int $xPlexContainerSize = null) + { + $this->type = $type; + $this->contentDirectoryID = $contentDirectoryID; + $this->pinnedContentDirectoryID = $pinnedContentDirectoryID; + $this->sectionID = $sectionID; + $this->includeMeta = $includeMeta; + $this->xPlexContainerStart = $xPlexContainerStart; + $this->xPlexContainerSize = $xPlexContainerSize; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryResponse.php b/src/Models/Operations/GetRecentlyAddedLibraryResponse.php new file mode 100644 index 0000000..9988d09 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryResponse.php @@ -0,0 +1,55 @@ +contentType = $contentType; + $this->statusCode = $statusCode; + $this->rawResponse = $rawResponse; + $this->object = $object; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryResponseBody.php b/src/Models/Operations/GetRecentlyAddedLibraryResponseBody.php new file mode 100644 index 0000000..11ae441 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryResponseBody.php @@ -0,0 +1,31 @@ +mediaContainer = $mediaContainer; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryRole.php b/src/Models/Operations/GetRecentlyAddedLibraryRole.php new file mode 100644 index 0000000..149fc7b --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryRole.php @@ -0,0 +1,29 @@ +tag = $tag; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryType.php b/src/Models/Operations/GetRecentlyAddedLibraryType.php new file mode 100644 index 0000000..9431be4 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryType.php @@ -0,0 +1,91 @@ + $filter + */ + #[\JMS\Serializer\Annotation\SerializedName('Filter')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedLibraryFilter>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $filter = null; + + /** + * $sort + * + * @var ?array $sort + */ + #[\JMS\Serializer\Annotation\SerializedName('Sort')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Sort>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $sort = null; + + /** + * $field + * + * @var ?array $field + */ + #[\JMS\Serializer\Annotation\SerializedName('Field')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Field>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $field = null; + + /** + * @param string $key + * @param string $type + * @param string $title + * @param bool $active + * @param ?array $filter + * @param ?array $sort + * @param ?array $field + */ + public function __construct(string $key, string $type, string $title, bool $active, ?array $filter = null, ?array $sort = null, ?array $field = null) + { + $this->key = $key; + $this->type = $type; + $this->title = $title; + $this->active = $active; + $this->filter = $filter; + $this->sort = $sort; + $this->field = $field; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedLibraryWriter.php b/src/Models/Operations/GetRecentlyAddedLibraryWriter.php new file mode 100644 index 0000000..38994b9 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedLibraryWriter.php @@ -0,0 +1,29 @@ +tag = $tag; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedMediaContainer.php b/src/Models/Operations/GetRecentlyAddedMediaContainer.php index 30751a7..3a5c652 100644 --- a/src/Models/Operations/GetRecentlyAddedMediaContainer.php +++ b/src/Models/Operations/GetRecentlyAddedMediaContainer.php @@ -13,19 +13,26 @@ class GetRecentlyAddedMediaContainer { /** * - * @var ?float $size + * @var float $size */ #[\JMS\Serializer\Annotation\SerializedName('size')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $size = null; + public float $size; /** * - * @var ?bool $allowSync + * @var ?int $offset */ - #[\JMS\Serializer\Annotation\SerializedName('allowSync')] + #[\JMS\Serializer\Annotation\SerializedName('offset')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?bool $allowSync = null; + public ?int $offset = null; + + /** + * + * @var ?int $totalSize + */ + #[\JMS\Serializer\Annotation\SerializedName('totalSize')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $totalSize = null; /** * @@ -37,27 +44,23 @@ class GetRecentlyAddedMediaContainer /** * - * @var ?string $mediaTagPrefix + * @var ?bool $allowSync */ - #[\JMS\Serializer\Annotation\SerializedName('mediaTagPrefix')] + #[\JMS\Serializer\Annotation\SerializedName('allowSync')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $mediaTagPrefix = null; + public ?bool $allowSync = null; /** + * The Meta object is only included in the response if the `includeMeta` parameter is set to `1`. * - * @var ?float $mediaTagVersion - */ - #[\JMS\Serializer\Annotation\SerializedName('mediaTagVersion')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $mediaTagVersion = null; - - /** * - * @var ?bool $mixedParents + * + * @var ?Meta $meta */ - #[\JMS\Serializer\Annotation\SerializedName('mixedParents')] + #[\JMS\Serializer\Annotation\SerializedName('Meta')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\Meta|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?bool $mixedParents = null; + public ?Meta $meta = null; /** * $metadata @@ -70,22 +73,22 @@ class GetRecentlyAddedMediaContainer public ?array $metadata = null; /** - * @param ?float $size - * @param ?bool $allowSync + * @param float $size + * @param ?int $offset + * @param ?int $totalSize * @param ?string $identifier - * @param ?string $mediaTagPrefix - * @param ?float $mediaTagVersion - * @param ?bool $mixedParents + * @param ?bool $allowSync + * @param ?Meta $meta * @param ?array $metadata */ - public function __construct(?float $size = null, ?bool $allowSync = null, ?string $identifier = null, ?string $mediaTagPrefix = null, ?float $mediaTagVersion = null, ?bool $mixedParents = null, ?array $metadata = null) + public function __construct(float $size, ?int $offset = null, ?int $totalSize = null, ?string $identifier = null, ?bool $allowSync = null, ?Meta $meta = null, ?array $metadata = null) { $this->size = $size; - $this->allowSync = $allowSync; + $this->offset = $offset; + $this->totalSize = $totalSize; $this->identifier = $identifier; - $this->mediaTagPrefix = $mediaTagPrefix; - $this->mediaTagVersion = $mediaTagVersion; - $this->mixedParents = $mixedParents; + $this->allowSync = $allowSync; + $this->meta = $meta; $this->metadata = $metadata; } } \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedMetadata.php b/src/Models/Operations/GetRecentlyAddedMetadata.php index 82f48a3..e1ba358 100644 --- a/src/Models/Operations/GetRecentlyAddedMetadata.php +++ b/src/Models/Operations/GetRecentlyAddedMetadata.php @@ -8,64 +8,33 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; - +use Brick\DateTime\LocalDate; class GetRecentlyAddedMetadata { /** + * The rating key (Media ID) of this media item. * - * @var ?bool $allowSync - */ - #[\JMS\Serializer\Annotation\SerializedName('allowSync')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?bool $allowSync = null; - - /** + * Note: This is always an integer, but is represented as a string in the API. * - * @var ?float $librarySectionID - */ - #[\JMS\Serializer\Annotation\SerializedName('librarySectionID')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $librarySectionID = null; - - /** * - * @var ?string $librarySectionTitle - */ - #[\JMS\Serializer\Annotation\SerializedName('librarySectionTitle')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $librarySectionTitle = null; - - /** - * - * @var ?string $librarySectionUUID - */ - #[\JMS\Serializer\Annotation\SerializedName('librarySectionUUID')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $librarySectionUUID = null; - - /** - * - * @var ?float $ratingKey + * @var string $ratingKey */ #[\JMS\Serializer\Annotation\SerializedName('ratingKey')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $ratingKey = null; + public string $ratingKey; /** * - * @var ?string $key + * @var string $key */ #[\JMS\Serializer\Annotation\SerializedName('key')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $key = null; + public string $key; /** * - * @var ?string $guid + * @var string $guid */ #[\JMS\Serializer\Annotation\SerializedName('guid')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $guid = null; + public string $guid; /** * @@ -77,19 +46,61 @@ class GetRecentlyAddedMetadata /** * - * @var ?string $type + * @var ?bool $skipChildren */ - #[\JMS\Serializer\Annotation\SerializedName('type')] + #[\JMS\Serializer\Annotation\SerializedName('skipChildren')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $type = null; + public ?bool $skipChildren = null; /** * - * @var ?string $title + * @var ?int $librarySectionID + */ + #[\JMS\Serializer\Annotation\SerializedName('librarySectionID')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $librarySectionID = null; + + /** + * + * @var ?string $librarySectionTitle + */ + #[\JMS\Serializer\Annotation\SerializedName('librarySectionTitle')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $librarySectionTitle = null; + + /** + * + * @var ?string $librarySectionKey + */ + #[\JMS\Serializer\Annotation\SerializedName('librarySectionKey')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $librarySectionKey = null; + + /** + * The type of media content + * + * + * + * @var GetRecentlyAddedHubsType $type + */ + #[\JMS\Serializer\Annotation\SerializedName('type')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedHubsType')] + public GetRecentlyAddedHubsType $type; + + /** + * + * @var string $title */ #[\JMS\Serializer\Annotation\SerializedName('title')] + public string $title; + + /** + * + * @var ?string $slug + */ + #[\JMS\Serializer\Annotation\SerializedName('slug')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $title = null; + public ?string $slug = null; /** * @@ -101,11 +112,10 @@ class GetRecentlyAddedMetadata /** * - * @var ?string $summary + * @var string $summary */ #[\JMS\Serializer\Annotation\SerializedName('summary')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $summary = null; + public string $summary; /** * @@ -125,11 +135,19 @@ class GetRecentlyAddedMetadata /** * - * @var ?float $year + * @var ?int $year */ #[\JMS\Serializer\Annotation\SerializedName('year')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $year = null; + public ?int $year = null; + + /** + * + * @var ?int $seasonCount + */ + #[\JMS\Serializer\Annotation\SerializedName('seasonCount')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $seasonCount = null; /** * @@ -139,6 +157,32 @@ class GetRecentlyAddedMetadata #[\JMS\Serializer\Annotation\SkipWhenNull] public ?string $tagline = null; + /** + * + * @var ?FlattenSeasons $flattenSeasons + */ + #[\JMS\Serializer\Annotation\SerializedName('flattenSeasons')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\FlattenSeasons|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?FlattenSeasons $flattenSeasons = null; + + /** + * Setting that indicates the episode ordering for the show + * + * None = Library default, + * tmdbAiring = The Movie Database (Aired), + * aired = TheTVDB (Aired), + * dvd = TheTVDB (DVD), + * absolute = TheTVDB (Absolute)). + * + * + * @var ?ShowOrdering $showOrdering + */ + #[\JMS\Serializer\Annotation\SerializedName('showOrdering')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\ShowOrdering|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?ShowOrdering $showOrdering = null; + /** * * @var ?string $thumb @@ -157,35 +201,44 @@ class GetRecentlyAddedMetadata /** * - * @var ?float $duration + * @var ?string $banner + */ + #[\JMS\Serializer\Annotation\SerializedName('banner')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $banner = null; + + /** + * + * @var ?int $duration */ #[\JMS\Serializer\Annotation\SerializedName('duration')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $duration = null; + public ?int $duration = null; /** * - * @var ?\DateTime $originallyAvailableAt + * @var ?LocalDate $originallyAvailableAt */ #[\JMS\Serializer\Annotation\SerializedName('originallyAvailableAt')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?\DateTime $originallyAvailableAt = null; + public ?LocalDate $originallyAvailableAt = null; /** + * Unix epoch datetime in seconds * - * @var ?float $addedAt + * @var int $addedAt */ #[\JMS\Serializer\Annotation\SerializedName('addedAt')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $addedAt = null; + public int $addedAt; /** + * Unix epoch datetime in seconds * - * @var ?float $updatedAt + * @var ?int $updatedAt */ #[\JMS\Serializer\Annotation\SerializedName('updatedAt')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $updatedAt = null; + public ?int $updatedAt = null; /** * @@ -220,7 +273,81 @@ class GetRecentlyAddedMetadata public ?string $ratingImage = null; /** - * $media + * + * @var ?string $grandparentRatingKey + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentRatingKey')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentRatingKey = null; + + /** + * + * @var ?string $grandparentGuid + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentGuid')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentGuid = null; + + /** + * + * @var ?string $grandparentKey + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentKey')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentKey = null; + + /** + * + * @var ?string $grandparentTitle + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentTitle')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentTitle = null; + + /** + * + * @var ?string $grandparentThumb + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentThumb')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentThumb = null; + + /** + * + * @var ?string $parentSlug + */ + #[\JMS\Serializer\Annotation\SerializedName('parentSlug')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentSlug = null; + + /** + * + * @var ?string $grandparentSlug + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentSlug')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentSlug = null; + + /** + * + * @var ?string $grandparentArt + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentArt')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentArt = null; + + /** + * + * @var ?string $grandparentTheme + */ + #[\JMS\Serializer\Annotation\SerializedName('grandparentTheme')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $grandparentTheme = null; + + /** + * The Media object is only included when type query is `4` or higher. + * + * * * @var ?array $media */ @@ -239,6 +366,16 @@ class GetRecentlyAddedMetadata #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $genre = null; + /** + * $country + * + * @var ?array $country + */ + #[\JMS\Serializer\Annotation\SerializedName('Country')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Country>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $country = null; + /** * $director * @@ -260,14 +397,14 @@ class GetRecentlyAddedMetadata public ?array $writer = null; /** - * $country + * $collection * - * @var ?array $country + * @var ?array $collection */ - #[\JMS\Serializer\Annotation\SerializedName('Country')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Country>|null')] + #[\JMS\Serializer\Annotation\SerializedName('Collection')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Collection>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?array $country = null; + public ?array $collection = null; /** * $role @@ -280,72 +417,374 @@ class GetRecentlyAddedMetadata public ?array $role = null; /** - * @param ?bool $allowSync - * @param ?float $librarySectionID - * @param ?string $librarySectionTitle - * @param ?string $librarySectionUUID - * @param ?float $ratingKey - * @param ?string $key - * @param ?string $guid + * The Guid object is only included in the response if the `includeGuids` parameter is set to `1`. + * + * + * + * @var ?array $mediaGuid + */ + #[\JMS\Serializer\Annotation\SerializedName('Guid')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\MediaGuid>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $mediaGuid = null; + + /** + * + * @var ?UltraBlurColors $ultraBlurColors + */ + #[\JMS\Serializer\Annotation\SerializedName('UltraBlurColors')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\UltraBlurColors|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?UltraBlurColors $ultraBlurColors = null; + + /** + * $metaDataRating + * + * @var ?array $metaDataRating + */ + #[\JMS\Serializer\Annotation\SerializedName('Rating')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\MetaDataRating>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $metaDataRating = null; + + /** + * $image + * + * @var ?array $image + */ + #[\JMS\Serializer\Annotation\SerializedName('Image')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedImage>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $image = null; + + /** + * + * @var ?string $titleSort + */ + #[\JMS\Serializer\Annotation\SerializedName('titleSort')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $titleSort = null; + + /** + * + * @var ?int $viewCount + */ + #[\JMS\Serializer\Annotation\SerializedName('viewCount')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $viewCount = null; + + /** + * + * @var ?int $lastViewedAt + */ + #[\JMS\Serializer\Annotation\SerializedName('lastViewedAt')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $lastViewedAt = null; + + /** + * + * @var ?string $originalTitle + */ + #[\JMS\Serializer\Annotation\SerializedName('originalTitle')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $originalTitle = null; + + /** + * + * @var ?int $viewOffset + */ + #[\JMS\Serializer\Annotation\SerializedName('viewOffset')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $viewOffset = null; + + /** + * + * @var ?int $skipCount + */ + #[\JMS\Serializer\Annotation\SerializedName('skipCount')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $skipCount = null; + + /** + * + * @var ?int $index + */ + #[\JMS\Serializer\Annotation\SerializedName('index')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $index = null; + + /** + * + * @var ?string $theme + */ + #[\JMS\Serializer\Annotation\SerializedName('theme')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $theme = null; + + /** + * + * @var ?int $leafCount + */ + #[\JMS\Serializer\Annotation\SerializedName('leafCount')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $leafCount = null; + + /** + * + * @var ?int $viewedLeafCount + */ + #[\JMS\Serializer\Annotation\SerializedName('viewedLeafCount')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $viewedLeafCount = null; + + /** + * + * @var ?int $childCount + */ + #[\JMS\Serializer\Annotation\SerializedName('childCount')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $childCount = null; + + /** + * + * @var ?string $hasPremiumExtras + */ + #[\JMS\Serializer\Annotation\SerializedName('hasPremiumExtras')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $hasPremiumExtras = null; + + /** + * + * @var ?string $hasPremiumPrimaryExtra + */ + #[\JMS\Serializer\Annotation\SerializedName('hasPremiumPrimaryExtra')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $hasPremiumPrimaryExtra = null; + + /** + * The rating key of the parent item. + * + * + * + * @var ?string $parentRatingKey + */ + #[\JMS\Serializer\Annotation\SerializedName('parentRatingKey')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentRatingKey = null; + + /** + * + * @var ?string $parentGuid + */ + #[\JMS\Serializer\Annotation\SerializedName('parentGuid')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentGuid = null; + + /** + * + * @var ?string $parentStudio + */ + #[\JMS\Serializer\Annotation\SerializedName('parentStudio')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentStudio = null; + + /** + * + * @var ?string $parentKey + */ + #[\JMS\Serializer\Annotation\SerializedName('parentKey')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentKey = null; + + /** + * + * @var ?string $parentTitle + */ + #[\JMS\Serializer\Annotation\SerializedName('parentTitle')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentTitle = null; + + /** + * + * @var ?int $parentIndex + */ + #[\JMS\Serializer\Annotation\SerializedName('parentIndex')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $parentIndex = null; + + /** + * + * @var ?int $parentYear + */ + #[\JMS\Serializer\Annotation\SerializedName('parentYear')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $parentYear = null; + + /** + * + * @var ?string $parentThumb + */ + #[\JMS\Serializer\Annotation\SerializedName('parentThumb')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentThumb = null; + + /** + * + * @var ?string $parentTheme + */ + #[\JMS\Serializer\Annotation\SerializedName('parentTheme')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $parentTheme = null; + + /** + * @param string $ratingKey + * @param string $key + * @param string $guid + * @param GetRecentlyAddedHubsType $type + * @param string $title + * @param string $summary + * @param int $addedAt * @param ?string $studio - * @param ?string $type - * @param ?string $title + * @param ?bool $skipChildren + * @param ?int $librarySectionID + * @param ?string $librarySectionTitle + * @param ?string $librarySectionKey + * @param ?string $slug * @param ?string $contentRating - * @param ?string $summary * @param ?float $rating * @param ?float $audienceRating - * @param ?float $year + * @param ?int $year + * @param ?int $seasonCount * @param ?string $tagline + * @param ?FlattenSeasons $flattenSeasons + * @param ?ShowOrdering $showOrdering * @param ?string $thumb * @param ?string $art - * @param ?float $duration - * @param ?\DateTime $originallyAvailableAt - * @param ?float $addedAt - * @param ?float $updatedAt + * @param ?string $banner + * @param ?int $duration + * @param ?LocalDate $originallyAvailableAt + * @param ?int $updatedAt * @param ?string $audienceRatingImage * @param ?string $chapterSource * @param ?string $primaryExtraKey * @param ?string $ratingImage + * @param ?string $grandparentRatingKey + * @param ?string $grandparentGuid + * @param ?string $grandparentKey + * @param ?string $grandparentTitle + * @param ?string $grandparentThumb + * @param ?string $parentSlug + * @param ?string $grandparentSlug + * @param ?string $grandparentArt + * @param ?string $grandparentTheme * @param ?array $media * @param ?array $genre + * @param ?array $country * @param ?array $director * @param ?array $writer - * @param ?array $country + * @param ?array $collection * @param ?array $role + * @param ?array $mediaGuid + * @param ?UltraBlurColors $ultraBlurColors + * @param ?array $metaDataRating + * @param ?array $image + * @param ?string $titleSort + * @param ?int $viewCount + * @param ?int $lastViewedAt + * @param ?string $originalTitle + * @param ?int $viewOffset + * @param ?int $skipCount + * @param ?int $index + * @param ?string $theme + * @param ?int $leafCount + * @param ?int $viewedLeafCount + * @param ?int $childCount + * @param ?string $hasPremiumExtras + * @param ?string $hasPremiumPrimaryExtra + * @param ?string $parentRatingKey + * @param ?string $parentGuid + * @param ?string $parentStudio + * @param ?string $parentKey + * @param ?string $parentTitle + * @param ?int $parentIndex + * @param ?int $parentYear + * @param ?string $parentThumb + * @param ?string $parentTheme */ - public function __construct(?bool $allowSync = null, ?float $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionUUID = null, ?float $ratingKey = null, ?string $key = null, ?string $guid = null, ?string $studio = null, ?string $type = null, ?string $title = null, ?string $contentRating = null, ?string $summary = null, ?float $rating = null, ?float $audienceRating = null, ?float $year = null, ?string $tagline = null, ?string $thumb = null, ?string $art = null, ?float $duration = null, ?\DateTime $originallyAvailableAt = null, ?float $addedAt = null, ?float $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?array $media = null, ?array $genre = null, ?array $director = null, ?array $writer = null, ?array $country = null, ?array $role = null) + public function __construct(string $ratingKey, string $key, string $guid, GetRecentlyAddedHubsType $type, string $title, string $summary, int $addedAt, ?string $studio = null, ?bool $skipChildren = null, ?int $librarySectionID = null, ?string $librarySectionTitle = null, ?string $librarySectionKey = null, ?string $slug = null, ?string $contentRating = null, ?float $rating = null, ?float $audienceRating = null, ?int $year = null, ?int $seasonCount = null, ?string $tagline = null, ?FlattenSeasons $flattenSeasons = null, ?ShowOrdering $showOrdering = null, ?string $thumb = null, ?string $art = null, ?string $banner = null, ?int $duration = null, ?LocalDate $originallyAvailableAt = null, ?int $updatedAt = null, ?string $audienceRatingImage = null, ?string $chapterSource = null, ?string $primaryExtraKey = null, ?string $ratingImage = null, ?string $grandparentRatingKey = null, ?string $grandparentGuid = null, ?string $grandparentKey = null, ?string $grandparentTitle = null, ?string $grandparentThumb = null, ?string $parentSlug = null, ?string $grandparentSlug = null, ?string $grandparentArt = null, ?string $grandparentTheme = null, ?array $media = null, ?array $genre = null, ?array $country = null, ?array $director = null, ?array $writer = null, ?array $collection = null, ?array $role = null, ?array $mediaGuid = null, ?UltraBlurColors $ultraBlurColors = null, ?array $metaDataRating = null, ?array $image = null, ?string $titleSort = null, ?int $viewCount = null, ?int $lastViewedAt = null, ?string $originalTitle = null, ?int $viewOffset = null, ?int $skipCount = null, ?int $index = null, ?string $theme = null, ?int $leafCount = null, ?int $viewedLeafCount = null, ?int $childCount = null, ?string $hasPremiumExtras = null, ?string $hasPremiumPrimaryExtra = null, ?string $parentRatingKey = null, ?string $parentGuid = null, ?string $parentStudio = null, ?string $parentKey = null, ?string $parentTitle = null, ?int $parentIndex = null, ?int $parentYear = null, ?string $parentThumb = null, ?string $parentTheme = null) { - $this->allowSync = $allowSync; - $this->librarySectionID = $librarySectionID; - $this->librarySectionTitle = $librarySectionTitle; - $this->librarySectionUUID = $librarySectionUUID; $this->ratingKey = $ratingKey; $this->key = $key; $this->guid = $guid; - $this->studio = $studio; $this->type = $type; $this->title = $title; - $this->contentRating = $contentRating; $this->summary = $summary; + $this->addedAt = $addedAt; + $this->studio = $studio; + $this->skipChildren = $skipChildren; + $this->librarySectionID = $librarySectionID; + $this->librarySectionTitle = $librarySectionTitle; + $this->librarySectionKey = $librarySectionKey; + $this->slug = $slug; + $this->contentRating = $contentRating; $this->rating = $rating; $this->audienceRating = $audienceRating; $this->year = $year; + $this->seasonCount = $seasonCount; $this->tagline = $tagline; + $this->flattenSeasons = $flattenSeasons; + $this->showOrdering = $showOrdering; $this->thumb = $thumb; $this->art = $art; + $this->banner = $banner; $this->duration = $duration; $this->originallyAvailableAt = $originallyAvailableAt; - $this->addedAt = $addedAt; $this->updatedAt = $updatedAt; $this->audienceRatingImage = $audienceRatingImage; $this->chapterSource = $chapterSource; $this->primaryExtraKey = $primaryExtraKey; $this->ratingImage = $ratingImage; + $this->grandparentRatingKey = $grandparentRatingKey; + $this->grandparentGuid = $grandparentGuid; + $this->grandparentKey = $grandparentKey; + $this->grandparentTitle = $grandparentTitle; + $this->grandparentThumb = $grandparentThumb; + $this->parentSlug = $parentSlug; + $this->grandparentSlug = $grandparentSlug; + $this->grandparentArt = $grandparentArt; + $this->grandparentTheme = $grandparentTheme; $this->media = $media; $this->genre = $genre; + $this->country = $country; $this->director = $director; $this->writer = $writer; - $this->country = $country; + $this->collection = $collection; $this->role = $role; + $this->mediaGuid = $mediaGuid; + $this->ultraBlurColors = $ultraBlurColors; + $this->metaDataRating = $metaDataRating; + $this->image = $image; + $this->titleSort = $titleSort; + $this->viewCount = $viewCount; + $this->lastViewedAt = $lastViewedAt; + $this->originalTitle = $originalTitle; + $this->viewOffset = $viewOffset; + $this->skipCount = $skipCount; + $this->index = $index; + $this->theme = $theme; + $this->leafCount = $leafCount; + $this->viewedLeafCount = $viewedLeafCount; + $this->childCount = $childCount; + $this->hasPremiumExtras = $hasPremiumExtras; + $this->hasPremiumPrimaryExtra = $hasPremiumPrimaryExtra; + $this->parentRatingKey = $parentRatingKey; + $this->parentGuid = $parentGuid; + $this->parentStudio = $parentStudio; + $this->parentKey = $parentKey; + $this->parentTitle = $parentTitle; + $this->parentIndex = $parentIndex; + $this->parentYear = $parentYear; + $this->parentThumb = $parentThumb; + $this->parentTheme = $parentTheme; } } \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedOperator.php b/src/Models/Operations/GetRecentlyAddedOperator.php new file mode 100644 index 0000000..1924be6 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedOperator.php @@ -0,0 +1,37 @@ +key = $key; + $this->title = $title; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedRequest.php b/src/Models/Operations/GetRecentlyAddedRequest.php index 1f3271a..862824e 100644 --- a/src/Models/Operations/GetRecentlyAddedRequest.php +++ b/src/Models/Operations/GetRecentlyAddedRequest.php @@ -11,6 +11,55 @@ namespace LukeHagar\Plex_API\Models\Operations; use LukeHagar\Plex_API\Utils\SpeakeasyMetadata; class GetRecentlyAddedRequest { + /** + * The content directory ID. + * + * @var int $contentDirectoryID + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=contentDirectoryID')] + public int $contentDirectoryID; + + /** + * Comma-separated list of pinned content directory IDs. + * + * @var ?string $pinnedContentDirectoryID + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=pinnedContentDirectoryID')] + public ?string $pinnedContentDirectoryID = null; + + /** + * The library section ID for filtering content. + * + * @var ?int $sectionID + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=sectionID')] + public ?int $sectionID = null; + + /** + * The type of media to retrieve. + * + * 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 + * + * + * @var Type $type + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=type')] + public Type $type; + + /** + * Adds the Meta object to the response + * + * + * + * @var ?IncludeMeta $includeMeta + */ + #[SpeakeasyMetadata('queryParam:style=form,explode=true,name=includeMeta')] + public ?IncludeMeta $includeMeta = null; + /** * The index of the first item to return. If not specified, the first item will be returned. * @@ -36,11 +85,21 @@ class GetRecentlyAddedRequest public ?int $xPlexContainerSize = null; /** + * @param int $contentDirectoryID + * @param Type $type + * @param ?string $pinnedContentDirectoryID + * @param ?int $sectionID + * @param ?IncludeMeta $includeMeta * @param ?int $xPlexContainerStart * @param ?int $xPlexContainerSize */ - public function __construct(?int $xPlexContainerStart = null, ?int $xPlexContainerSize = null) + public function __construct(int $contentDirectoryID, Type $type, ?string $pinnedContentDirectoryID = null, ?int $sectionID = null, ?IncludeMeta $includeMeta = null, ?int $xPlexContainerStart = null, ?int $xPlexContainerSize = null) { + $this->contentDirectoryID = $contentDirectoryID; + $this->type = $type; + $this->pinnedContentDirectoryID = $pinnedContentDirectoryID; + $this->sectionID = $sectionID; + $this->includeMeta = $includeMeta; $this->xPlexContainerStart = $xPlexContainerStart; $this->xPlexContainerSize = $xPlexContainerSize; } diff --git a/src/Models/Operations/GetRecentlyAddedResponse.php b/src/Models/Operations/GetRecentlyAddedResponse.php index f78f3f2..403addf 100644 --- a/src/Models/Operations/GetRecentlyAddedResponse.php +++ b/src/Models/Operations/GetRecentlyAddedResponse.php @@ -33,7 +33,7 @@ class GetRecentlyAddedResponse public \Psr\Http\Message\ResponseInterface $rawResponse; /** - * The recently added content + * A successful response with recently added content. * * @var ?GetRecentlyAddedResponseBody $object */ diff --git a/src/Models/Operations/GetRecentlyAddedResponseBody.php b/src/Models/Operations/GetRecentlyAddedResponseBody.php index 2351ff5..50f2655 100644 --- a/src/Models/Operations/GetRecentlyAddedResponseBody.php +++ b/src/Models/Operations/GetRecentlyAddedResponseBody.php @@ -9,7 +9,7 @@ declare(strict_types=1); namespace LukeHagar\Plex_API\Models\Operations; -/** GetRecentlyAddedResponseBody - The recently added content */ +/** GetRecentlyAddedResponseBody - A successful response with recently added content. */ class GetRecentlyAddedResponseBody { /** diff --git a/src/Models/Operations/GetRecentlyAddedSort.php b/src/Models/Operations/GetRecentlyAddedSort.php new file mode 100644 index 0000000..e5ed41b --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedSort.php @@ -0,0 +1,104 @@ +defaultDirection = $defaultDirection; + $this->key = $key; + $this->title = $title; + $this->default = $default; + $this->active = $active; + $this->activeDirection = $activeDirection; + $this->descKey = $descKey; + $this->firstCharacterKey = $firstCharacterKey; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetRecentlyAddedType.php b/src/Models/Operations/GetRecentlyAddedType.php new file mode 100644 index 0000000..576a4d8 --- /dev/null +++ b/src/Models/Operations/GetRecentlyAddedType.php @@ -0,0 +1,91 @@ + $filter + */ + #[\JMS\Serializer\Annotation\SerializedName('Filter')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedFilter>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $filter = null; + + /** + * $sort + * + * @var ?array $sort + */ + #[\JMS\Serializer\Annotation\SerializedName('Sort')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedSort>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $sort = null; + + /** + * $field + * + * @var ?array $field + */ + #[\JMS\Serializer\Annotation\SerializedName('Field')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedField>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $field = null; + + /** + * @param string $key + * @param string $type + * @param string $title + * @param bool $active + * @param ?array $filter + * @param ?array $sort + * @param ?array $field + */ + public function __construct(string $key, string $type, string $title, bool $active, ?array $filter = null, ?array $sort = null, ?array $field = null) + { + $this->key = $key; + $this->type = $type; + $this->title = $title; + $this->active = $active; + $this->filter = $filter; + $this->sort = $sort; + $this->field = $field; + } +} \ No newline at end of file diff --git a/src/Models/Operations/GetSearchLibraryQueryParamType.php b/src/Models/Operations/GetSearchLibraryQueryParamType.php new file mode 100644 index 0000000..e6f1ff2 --- /dev/null +++ b/src/Models/Operations/GetSearchLibraryQueryParamType.php @@ -0,0 +1,28 @@ +sectionKey = $sectionKey; $this->type = $type; diff --git a/src/Models/Operations/Media.php b/src/Models/Operations/Media.php index f263b53..c21673f 100644 --- a/src/Models/Operations/Media.php +++ b/src/Models/Operations/Media.php @@ -13,107 +13,119 @@ class Media { /** * - * @var ?float $id + * @var int $id */ #[\JMS\Serializer\Annotation\SerializedName('id')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $id = null; + public int $id; /** * - * @var ?float $duration + * @var int $duration */ #[\JMS\Serializer\Annotation\SerializedName('duration')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $duration = null; + public int $duration; /** * - * @var ?float $bitrate + * @var int $bitrate */ #[\JMS\Serializer\Annotation\SerializedName('bitrate')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $bitrate = null; + public int $bitrate; /** * - * @var ?float $width + * @var int $width */ #[\JMS\Serializer\Annotation\SerializedName('width')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $width = null; + public int $width; /** * - * @var ?float $height + * @var int $height */ #[\JMS\Serializer\Annotation\SerializedName('height')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $height = null; + public int $height; /** * - * @var ?float $aspectRatio + * @var float $aspectRatio */ #[\JMS\Serializer\Annotation\SerializedName('aspectRatio')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $aspectRatio = null; + public float $aspectRatio; /** * - * @var ?float $audioChannels + * @var ?string $audioProfile + */ + #[\JMS\Serializer\Annotation\SerializedName('audioProfile')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $audioProfile = null; + + /** + * + * @var int $audioChannels */ #[\JMS\Serializer\Annotation\SerializedName('audioChannels')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $audioChannels = null; + public int $audioChannels; /** * - * @var ?string $audioCodec + * @var string $audioCodec */ #[\JMS\Serializer\Annotation\SerializedName('audioCodec')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $audioCodec = null; + public string $audioCodec; /** * - * @var ?string $videoCodec + * @var string $videoCodec */ #[\JMS\Serializer\Annotation\SerializedName('videoCodec')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $videoCodec = null; + public string $videoCodec; /** * - * @var ?float $videoResolution + * @var string $videoResolution */ #[\JMS\Serializer\Annotation\SerializedName('videoResolution')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $videoResolution = null; + public string $videoResolution; /** * - * @var ?string $container + * @var string $container */ #[\JMS\Serializer\Annotation\SerializedName('container')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $container = null; + public string $container; /** * - * @var ?string $videoFrameRate + * @var string $videoFrameRate */ #[\JMS\Serializer\Annotation\SerializedName('videoFrameRate')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $videoFrameRate = null; + public string $videoFrameRate; /** * - * @var ?float $optimizedForStreaming + * @var string $videoProfile + */ + #[\JMS\Serializer\Annotation\SerializedName('videoProfile')] + public string $videoProfile; + + /** + * + * @var ?bool $hasVoiceActivity + */ + #[\JMS\Serializer\Annotation\SerializedName('hasVoiceActivity')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $hasVoiceActivity = null; + + /** + * + * @var ?OptimizedForStreaming $optimizedForStreaming */ #[\JMS\Serializer\Annotation\SerializedName('optimizedForStreaming')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\OptimizedForStreaming|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?float $optimizedForStreaming = null; + public ?OptimizedForStreaming $optimizedForStreaming = null; /** * @@ -123,43 +135,36 @@ class Media #[\JMS\Serializer\Annotation\SkipWhenNull] public ?bool $has64bitOffsets = null; - /** - * - * @var ?string $videoProfile - */ - #[\JMS\Serializer\Annotation\SerializedName('videoProfile')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $videoProfile = null; - /** * $part * - * @var ?array $part + * @var array $part */ #[\JMS\Serializer\Annotation\SerializedName('Part')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Part>|null')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?array $part = null; + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Part>')] + public array $part; /** - * @param ?float $id - * @param ?float $duration - * @param ?float $bitrate - * @param ?float $width - * @param ?float $height - * @param ?float $aspectRatio - * @param ?float $audioChannels - * @param ?string $audioCodec - * @param ?string $videoCodec - * @param ?float $videoResolution - * @param ?string $container - * @param ?string $videoFrameRate - * @param ?float $optimizedForStreaming + * @param int $id + * @param int $duration + * @param int $bitrate + * @param int $width + * @param int $height + * @param float $aspectRatio + * @param int $audioChannels + * @param string $audioCodec + * @param string $videoCodec + * @param string $videoResolution + * @param string $container + * @param string $videoFrameRate + * @param string $videoProfile + * @param array $part + * @param ?string $audioProfile + * @param ?bool $hasVoiceActivity + * @param ?OptimizedForStreaming $optimizedForStreaming * @param ?bool $has64bitOffsets - * @param ?string $videoProfile - * @param ?array $part */ - public function __construct(?float $id = null, ?float $duration = null, ?float $bitrate = null, ?float $width = null, ?float $height = null, ?float $aspectRatio = null, ?float $audioChannels = null, ?string $audioCodec = null, ?string $videoCodec = null, ?float $videoResolution = null, ?string $container = null, ?string $videoFrameRate = null, ?float $optimizedForStreaming = null, ?bool $has64bitOffsets = null, ?string $videoProfile = null, ?array $part = null) + public function __construct(int $id, int $duration, int $bitrate, int $width, int $height, float $aspectRatio, int $audioChannels, string $audioCodec, string $videoCodec, string $videoResolution, string $container, string $videoFrameRate, string $videoProfile, array $part, ?string $audioProfile = null, ?bool $hasVoiceActivity = null, ?OptimizedForStreaming $optimizedForStreaming = null, ?bool $has64bitOffsets = null) { $this->id = $id; $this->duration = $duration; @@ -173,9 +178,11 @@ class Media $this->videoResolution = $videoResolution; $this->container = $container; $this->videoFrameRate = $videoFrameRate; - $this->optimizedForStreaming = $optimizedForStreaming; - $this->has64bitOffsets = $has64bitOffsets; $this->videoProfile = $videoProfile; $this->part = $part; + $this->audioProfile = $audioProfile; + $this->hasVoiceActivity = $hasVoiceActivity; + $this->optimizedForStreaming = $optimizedForStreaming; + $this->has64bitOffsets = $has64bitOffsets; } } \ No newline at end of file diff --git a/src/Models/Operations/Meta.php b/src/Models/Operations/Meta.php index 7da9d0f..abb5b08 100644 --- a/src/Models/Operations/Meta.php +++ b/src/Models/Operations/Meta.php @@ -19,26 +19,26 @@ class Meta /** * $type * - * @var ?array $type + * @var ?array $type */ #[\JMS\Serializer\Annotation\SerializedName('Type')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsLibraryType>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedType>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $type = null; /** * $fieldType * - * @var ?array $fieldType + * @var ?array $fieldType */ #[\JMS\Serializer\Annotation\SerializedName('FieldType')] - #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetLibraryItemsFieldType>|null')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\GetRecentlyAddedFieldType>|null')] #[\JMS\Serializer\Annotation\SkipWhenNull] public ?array $fieldType = null; /** - * @param ?array $type - * @param ?array $fieldType + * @param ?array $type + * @param ?array $fieldType */ public function __construct(?array $type = null, ?array $fieldType = null) { diff --git a/src/Models/Operations/MetaDataRating.php b/src/Models/Operations/MetaDataRating.php new file mode 100644 index 0000000..b638415 --- /dev/null +++ b/src/Models/Operations/MetaDataRating.php @@ -0,0 +1,49 @@ +image = $image; + $this->value = $value; + $this->type = $type; + } +} \ No newline at end of file diff --git a/src/Models/Operations/Operator.php b/src/Models/Operations/Operator.php index 3dad457..b0cf2ea 100644 --- a/src/Models/Operations/Operator.php +++ b/src/Models/Operations/Operator.php @@ -13,25 +13,23 @@ class Operator { /** * - * @var ?string $key + * @var string $key */ #[\JMS\Serializer\Annotation\SerializedName('key')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $key = null; + public string $key; /** * - * @var ?string $title + * @var string $title */ #[\JMS\Serializer\Annotation\SerializedName('title')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $title = null; + public string $title; /** - * @param ?string $key - * @param ?string $title + * @param string $key + * @param string $title */ - public function __construct(?string $key = null, ?string $title = null) + public function __construct(string $key, string $title) { $this->key = $key; $this->title = $title; diff --git a/src/Models/Operations/OptimizedForStreaming.php b/src/Models/Operations/OptimizedForStreaming.php new file mode 100644 index 0000000..673a77e --- /dev/null +++ b/src/Models/Operations/OptimizedForStreaming.php @@ -0,0 +1,16 @@ + $stream + */ + #[\JMS\Serializer\Annotation\SerializedName('Stream')] + #[\JMS\Serializer\Annotation\Type('array<\LukeHagar\Plex_API\Models\Operations\Stream>|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?array $stream = null; + + /** + * @param int $id + * @param string $key + * @param int $duration + * @param string $file + * @param int $size + * @param string $container + * @param string $videoProfile + * @param ?string $audioProfile + * @param ?bool $has64bitOffsets + * @param ?bool $optimizedForStreaming + * @param ?string $indexes + * @param ?HasThumbnail $hasThumbnail + * @param ?array $stream + */ + public function __construct(int $id, string $key, int $duration, string $file, int $size, string $container, string $videoProfile, ?string $audioProfile = null, ?bool $has64bitOffsets = null, ?bool $optimizedForStreaming = null, ?string $indexes = null, ?HasThumbnail $hasThumbnail = null, ?array $stream = null) { $this->id = $id; $this->key = $key; @@ -111,9 +137,12 @@ class Part $this->file = $file; $this->size = $size; $this->container = $container; - $this->has64bitOffsets = $has64bitOffsets; - $this->hasThumbnail = $hasThumbnail; - $this->optimizedForStreaming = $optimizedForStreaming; $this->videoProfile = $videoProfile; + $this->audioProfile = $audioProfile; + $this->has64bitOffsets = $has64bitOffsets; + $this->optimizedForStreaming = $optimizedForStreaming; + $this->indexes = $indexes; + $this->hasThumbnail = $hasThumbnail; + $this->stream = $stream; } } \ No newline at end of file diff --git a/src/Models/Operations/PostUsersSignInDataRequest.php b/src/Models/Operations/PostUsersSignInDataRequest.php new file mode 100644 index 0000000..3a16260 --- /dev/null +++ b/src/Models/Operations/PostUsersSignInDataRequest.php @@ -0,0 +1,79 @@ +clientID = $clientID; + $this->clientName = $clientName; + $this->deviceName = $deviceName; + $this->clientVersion = $clientVersion; + $this->clientPlatform = $clientPlatform; + $this->requestBody = $requestBody; + } +} \ No newline at end of file diff --git a/src/Models/Operations/QueryParamIncludeMeta.php b/src/Models/Operations/QueryParamIncludeMeta.php new file mode 100644 index 0000000..ee2a89e --- /dev/null +++ b/src/Models/Operations/QueryParamIncludeMeta.php @@ -0,0 +1,21 @@ +id = $id; + $this->filter = $filter; + $this->thumb = $thumb; $this->tag = $tag; + $this->tagKey = $tagKey; + $this->role = $role; } } \ No newline at end of file diff --git a/src/Models/Operations/Sort.php b/src/Models/Operations/Sort.php index da82615..edbbbe8 100644 --- a/src/Models/Operations/Sort.php +++ b/src/Models/Operations/Sort.php @@ -21,11 +21,34 @@ class Sort /** * - * @var ?string $defaultDirection + * @var ?bool $active + */ + #[\JMS\Serializer\Annotation\SerializedName('active')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $active = null; + + /** + * The direction of the sort. Can be either `asc` or `desc`. + * + * + * + * @var ?ActiveDirection $activeDirection + */ + #[\JMS\Serializer\Annotation\SerializedName('activeDirection')] + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\ActiveDirection|null')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?ActiveDirection $activeDirection = null; + + /** + * The direction of the sort. Can be either `asc` or `desc`. + * + * + * + * @var DefaultDirection $defaultDirection */ #[\JMS\Serializer\Annotation\SerializedName('defaultDirection')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $defaultDirection = null; + #[\JMS\Serializer\Annotation\Type('\LukeHagar\Plex_API\Models\Operations\DefaultDirection')] + public DefaultDirection $defaultDirection; /** * @@ -45,35 +68,37 @@ class Sort /** * - * @var ?string $key + * @var string $key */ #[\JMS\Serializer\Annotation\SerializedName('key')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $key = null; + public string $key; /** * - * @var ?string $title + * @var string $title */ #[\JMS\Serializer\Annotation\SerializedName('title')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $title = null; + public string $title; /** + * @param DefaultDirection $defaultDirection + * @param string $key + * @param string $title * @param ?string $default - * @param ?string $defaultDirection + * @param ?bool $active + * @param ?ActiveDirection $activeDirection * @param ?string $descKey * @param ?string $firstCharacterKey - * @param ?string $key - * @param ?string $title */ - public function __construct(?string $default = null, ?string $defaultDirection = null, ?string $descKey = null, ?string $firstCharacterKey = null, ?string $key = null, ?string $title = null) + public function __construct(DefaultDirection $defaultDirection, string $key, string $title, ?string $default = null, ?bool $active = null, ?ActiveDirection $activeDirection = null, ?string $descKey = null, ?string $firstCharacterKey = null) { - $this->default = $default; $this->defaultDirection = $defaultDirection; - $this->descKey = $descKey; - $this->firstCharacterKey = $firstCharacterKey; $this->key = $key; $this->title = $title; + $this->default = $default; + $this->active = $active; + $this->activeDirection = $activeDirection; + $this->descKey = $descKey; + $this->firstCharacterKey = $firstCharacterKey; } } \ No newline at end of file diff --git a/src/Models/Operations/Stream.php b/src/Models/Operations/Stream.php index 8610698..ca2be4f 100644 --- a/src/Models/Operations/Stream.php +++ b/src/Models/Operations/Stream.php @@ -13,21 +13,21 @@ class Stream { /** * - * @var ?int $id + * @var int $id */ #[\JMS\Serializer\Annotation\SerializedName('id')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?int $id = null; + public int $id; /** + * Type of stream (1 = video, 2 = audio, 3 = subtitle) * - * @var ?int $streamType + * @var int $streamType */ #[\JMS\Serializer\Annotation\SerializedName('streamType')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?int $streamType = null; + public int $streamType; /** + * Indicates if this is the default stream * * @var ?bool $default */ @@ -36,22 +36,32 @@ class Stream public ?bool $default = null; /** + * Indicates if the stream is selected * - * @var ?string $codec + * @var ?bool $selected + */ + #[\JMS\Serializer\Annotation\SerializedName('selected')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $selected = null; + + /** + * Codec used by the stream + * + * @var string $codec */ #[\JMS\Serializer\Annotation\SerializedName('codec')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $codec = null; + public string $codec; /** + * The index of the stream * - * @var ?int $index + * @var int $index */ #[\JMS\Serializer\Annotation\SerializedName('index')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?int $index = null; + public int $index; /** + * The bitrate of the stream in kbps * * @var ?int $bitrate */ @@ -60,46 +70,7 @@ class Stream public ?int $bitrate = null; /** - * - * @var ?int $bitDepth - */ - #[\JMS\Serializer\Annotation\SerializedName('bitDepth')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?int $bitDepth = null; - - /** - * - * @var ?string $chromaLocation - */ - #[\JMS\Serializer\Annotation\SerializedName('chromaLocation')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $chromaLocation = null; - - /** - * - * @var ?string $chromaSubsampling - */ - #[\JMS\Serializer\Annotation\SerializedName('chromaSubsampling')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $chromaSubsampling = null; - - /** - * - * @var ?int $codedHeight - */ - #[\JMS\Serializer\Annotation\SerializedName('codedHeight')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?int $codedHeight = null; - - /** - * - * @var ?int $codedWidth - */ - #[\JMS\Serializer\Annotation\SerializedName('codedWidth')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?int $codedWidth = null; - - /** + * The color primaries of the video stream * * @var ?string $colorPrimaries */ @@ -108,6 +79,7 @@ class Stream public ?string $colorPrimaries = null; /** + * The color range of the video stream * * @var ?string $colorRange */ @@ -116,6 +88,7 @@ class Stream public ?string $colorRange = null; /** + * The color space of the video stream * * @var ?string $colorSpace */ @@ -124,6 +97,7 @@ class Stream public ?string $colorSpace = null; /** + * The transfer characteristics (TRC) of the video stream * * @var ?string $colorTrc */ @@ -132,14 +106,70 @@ class Stream public ?string $colorTrc = null; /** + * The bit depth of the video stream * - * @var ?int $frameRate + * @var ?int $bitDepth + */ + #[\JMS\Serializer\Annotation\SerializedName('bitDepth')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $bitDepth = null; + + /** + * The chroma location of the video stream + * + * @var ?string $chromaLocation + */ + #[\JMS\Serializer\Annotation\SerializedName('chromaLocation')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $chromaLocation = null; + + /** + * The identifier of the video stream + * + * @var ?string $streamIdentifier + */ + #[\JMS\Serializer\Annotation\SerializedName('streamIdentifier')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $streamIdentifier = null; + + /** + * The chroma subsampling format + * + * @var ?string $chromaSubsampling + */ + #[\JMS\Serializer\Annotation\SerializedName('chromaSubsampling')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $chromaSubsampling = null; + + /** + * The coded height of the video stream + * + * @var ?int $codedHeight + */ + #[\JMS\Serializer\Annotation\SerializedName('codedHeight')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $codedHeight = null; + + /** + * The coded width of the video stream + * + * @var ?int $codedWidth + */ + #[\JMS\Serializer\Annotation\SerializedName('codedWidth')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?int $codedWidth = null; + + /** + * The frame rate of the video stream + * + * @var ?float $frameRate */ #[\JMS\Serializer\Annotation\SerializedName('frameRate')] #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?int $frameRate = null; + public ?float $frameRate = null; /** + * Indicates if the stream has a scaling matrix * * @var ?bool $hasScalingMatrix */ @@ -148,6 +178,31 @@ class Stream public ?bool $hasScalingMatrix = null; /** + * + * @var ?bool $hearingImpaired + */ + #[\JMS\Serializer\Annotation\SerializedName('hearingImpaired')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $hearingImpaired = null; + + /** + * + * @var ?bool $closedCaptions + */ + #[\JMS\Serializer\Annotation\SerializedName('closedCaptions')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $closedCaptions = null; + + /** + * + * @var ?string $embeddedInVideo + */ + #[\JMS\Serializer\Annotation\SerializedName('embeddedInVideo')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $embeddedInVideo = null; + + /** + * The height of the video stream * * @var ?int $height */ @@ -156,6 +211,7 @@ class Stream public ?int $height = null; /** + * The level of the video codec * * @var ?int $level */ @@ -164,6 +220,7 @@ class Stream public ?int $level = null; /** + * The profile of the video codec * * @var ?string $profile */ @@ -172,6 +229,7 @@ class Stream public ?string $profile = null; /** + * Number of reference frames * * @var ?int $refFrames */ @@ -180,6 +238,7 @@ class Stream public ?int $refFrames = null; /** + * The scan type (progressive or interlaced) * * @var ?string $scanType */ @@ -188,14 +247,7 @@ class Stream public ?string $scanType = null; /** - * - * @var ?string $streamIdentifier - */ - #[\JMS\Serializer\Annotation\SerializedName('streamIdentifier')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?string $streamIdentifier = null; - - /** + * The width of the video stream * * @var ?int $width */ @@ -204,6 +256,7 @@ class Stream public ?int $width = null; /** + * Display title of the stream * * @var ?string $displayTitle */ @@ -212,6 +265,7 @@ class Stream public ?string $displayTitle = null; /** + * Extended display title of the stream * * @var ?string $extendedDisplayTitle */ @@ -220,14 +274,7 @@ class Stream public ?string $extendedDisplayTitle = null; /** - * - * @var ?bool $selected - */ - #[\JMS\Serializer\Annotation\SerializedName('selected')] - #[\JMS\Serializer\Annotation\SkipWhenNull] - public ?bool $selected = null; - - /** + * Number of audio channels (for audio streams) * * @var ?int $channels */ @@ -236,6 +283,7 @@ class Stream public ?int $channels = null; /** + * The language of the stream (for audio/subtitle streams) * * @var ?string $language */ @@ -244,6 +292,7 @@ class Stream public ?string $language = null; /** + * Language tag of the stream * * @var ?string $languageTag */ @@ -252,6 +301,7 @@ class Stream public ?string $languageTag = null; /** + * Language code of the stream * * @var ?string $languageCode */ @@ -260,6 +310,16 @@ class Stream public ?string $languageCode = null; /** + * The audio channel layout + * + * @var ?string $audioChannelLayout + */ + #[\JMS\Serializer\Annotation\SerializedName('audioChannelLayout')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $audioChannelLayout = null; + + /** + * Sampling rate of the audio stream in Hz * * @var ?int $samplingRate */ @@ -268,72 +328,102 @@ class Stream public ?int $samplingRate = null; /** - * @param ?int $id - * @param ?int $streamType + * Title of the subtitle track (for subtitle streams) + * + * @var ?string $title + */ + #[\JMS\Serializer\Annotation\SerializedName('title')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?string $title = null; + + /** + * Indicates if the subtitle stream can auto-sync + * + * @var ?bool $canAutoSync + */ + #[\JMS\Serializer\Annotation\SerializedName('canAutoSync')] + #[\JMS\Serializer\Annotation\SkipWhenNull] + public ?bool $canAutoSync = null; + + /** + * @param int $id + * @param int $streamType + * @param string $codec + * @param int $index * @param ?bool $default - * @param ?string $codec - * @param ?int $index + * @param ?bool $selected * @param ?int $bitrate - * @param ?int $bitDepth - * @param ?string $chromaLocation - * @param ?string $chromaSubsampling - * @param ?int $codedHeight - * @param ?int $codedWidth * @param ?string $colorPrimaries * @param ?string $colorRange * @param ?string $colorSpace * @param ?string $colorTrc - * @param ?int $frameRate + * @param ?int $bitDepth + * @param ?string $chromaLocation + * @param ?string $streamIdentifier + * @param ?string $chromaSubsampling + * @param ?int $codedHeight + * @param ?int $codedWidth + * @param ?float $frameRate * @param ?bool $hasScalingMatrix + * @param ?bool $hearingImpaired + * @param ?bool $closedCaptions + * @param ?string $embeddedInVideo * @param ?int $height * @param ?int $level * @param ?string $profile * @param ?int $refFrames * @param ?string $scanType - * @param ?string $streamIdentifier * @param ?int $width * @param ?string $displayTitle * @param ?string $extendedDisplayTitle - * @param ?bool $selected * @param ?int $channels * @param ?string $language * @param ?string $languageTag * @param ?string $languageCode + * @param ?string $audioChannelLayout * @param ?int $samplingRate + * @param ?string $title + * @param ?bool $canAutoSync */ - public function __construct(?int $id = null, ?int $streamType = null, ?bool $default = null, ?string $codec = null, ?int $index = null, ?int $bitrate = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?int $frameRate = null, ?bool $hasScalingMatrix = null, ?int $height = null, ?int $level = null, ?string $profile = null, ?int $refFrames = null, ?string $scanType = null, ?string $streamIdentifier = null, ?int $width = null, ?string $displayTitle = null, ?string $extendedDisplayTitle = null, ?bool $selected = null, ?int $channels = null, ?string $language = null, ?string $languageTag = null, ?string $languageCode = null, ?int $samplingRate = null) + public function __construct(int $id, int $streamType, string $codec, int $index, ?bool $default = null, ?bool $selected = null, ?int $bitrate = null, ?string $colorPrimaries = null, ?string $colorRange = null, ?string $colorSpace = null, ?string $colorTrc = null, ?int $bitDepth = null, ?string $chromaLocation = null, ?string $streamIdentifier = null, ?string $chromaSubsampling = null, ?int $codedHeight = null, ?int $codedWidth = null, ?float $frameRate = null, ?bool $hasScalingMatrix = null, ?bool $hearingImpaired = null, ?bool $closedCaptions = null, ?string $embeddedInVideo = null, ?int $height = null, ?int $level = null, ?string $profile = null, ?int $refFrames = null, ?string $scanType = null, ?int $width = null, ?string $displayTitle = null, ?string $extendedDisplayTitle = null, ?int $channels = null, ?string $language = null, ?string $languageTag = null, ?string $languageCode = null, ?string $audioChannelLayout = null, ?int $samplingRate = null, ?string $title = null, ?bool $canAutoSync = null) { $this->id = $id; $this->streamType = $streamType; - $this->default = $default; $this->codec = $codec; $this->index = $index; + $this->default = $default; + $this->selected = $selected; $this->bitrate = $bitrate; - $this->bitDepth = $bitDepth; - $this->chromaLocation = $chromaLocation; - $this->chromaSubsampling = $chromaSubsampling; - $this->codedHeight = $codedHeight; - $this->codedWidth = $codedWidth; $this->colorPrimaries = $colorPrimaries; $this->colorRange = $colorRange; $this->colorSpace = $colorSpace; $this->colorTrc = $colorTrc; + $this->bitDepth = $bitDepth; + $this->chromaLocation = $chromaLocation; + $this->streamIdentifier = $streamIdentifier; + $this->chromaSubsampling = $chromaSubsampling; + $this->codedHeight = $codedHeight; + $this->codedWidth = $codedWidth; $this->frameRate = $frameRate; $this->hasScalingMatrix = $hasScalingMatrix; + $this->hearingImpaired = $hearingImpaired; + $this->closedCaptions = $closedCaptions; + $this->embeddedInVideo = $embeddedInVideo; $this->height = $height; $this->level = $level; $this->profile = $profile; $this->refFrames = $refFrames; $this->scanType = $scanType; - $this->streamIdentifier = $streamIdentifier; $this->width = $width; $this->displayTitle = $displayTitle; $this->extendedDisplayTitle = $extendedDisplayTitle; - $this->selected = $selected; $this->channels = $channels; $this->language = $language; $this->languageTag = $languageTag; $this->languageCode = $languageCode; + $this->audioChannelLayout = $audioChannelLayout; $this->samplingRate = $samplingRate; + $this->title = $title; + $this->canAutoSync = $canAutoSync; } } \ No newline at end of file diff --git a/src/SDKConfiguration.php b/src/SDKConfiguration.php index 4bd0380..c4f2f2a 100644 --- a/src/SDKConfiguration.php +++ b/src/SDKConfiguration.php @@ -36,11 +36,11 @@ class SDKConfiguration public string $openapiDocVersion = '0.0.3'; - public string $sdkVersion = '0.9.1'; + public string $sdkVersion = '0.10.0'; - public string $genVersion = '2.421.3'; + public string $genVersion = '2.422.22'; - public string $userAgent = 'speakeasy-sdk/php 0.9.1 2.421.3 0.0.3 lukehagar/plex-api'; + public string $userAgent = 'speakeasy-sdk/php 0.10.0 2.422.22 0.0.3 lukehagar/plex-api'; /** @var array>> */ public ?array $globals = [ 'parameters' => [],