From f33408b177a144fa2803d0fd742ae65b25f7c68e Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 5 Feb 2025 00:27:30 +0000 Subject: [PATCH] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.484.1 --- .speakeasy/gen.lock | 75 ++- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 14 +- README.md | 6 +- RELEASES.md | 12 +- build.gradle | 4 +- codeSamples.yaml | 84 ++- .../errors/GetCountriesLibraryBadRequest.md | 11 + .../errors/GetCountriesLibraryErrors.md | 10 + .../GetCountriesLibraryLibraryErrors.md | 10 + .../errors/GetCountriesLibraryUnauthorized.md | 11 + .../errors/GetGenresLibraryBadRequest.md | 11 + docs/models/errors/GetGenresLibraryErrors.md | 10 + .../errors/GetGenresLibraryLibraryErrors.md | 10 + .../errors/GetGenresLibraryUnauthorized.md | 11 + .../GetCountriesLibraryDirectory.md | 10 + .../GetCountriesLibraryMediaContainer.md | 22 + .../operations/GetCountriesLibraryRequest.md | 8 + .../operations/GetCountriesLibraryResponse.md | 11 + .../GetCountriesLibraryResponseBody.md | 10 + .../operations/GetGenresLibraryDirectory.md | 11 + .../GetGenresLibraryMediaContainer.md | 22 + .../operations/GetGenresLibraryRequest.md | 8 + .../operations/GetGenresLibraryResponse.md | 11 + .../GetGenresLibraryResponseBody.md | 10 + .../GetRecentlyAddedMediaContainer.md | 2 +- docs/sdks/authentication/README.md | 1 - docs/sdks/hubs/README.md | 4 - docs/sdks/library/README.md | 122 +++- docs/sdks/plex/README.md | 1 - docs/sdks/watchlist/README.md | 2 - src/main/java/dev/plexapi/sdk/Library.java | 352 +++++++++++ .../dev/plexapi/sdk/SDKConfiguration.java | 4 +- src/main/java/dev/plexapi/sdk/Updater.java | 4 +- .../errors/GetCountriesLibraryBadRequest.java | 173 ++++++ .../errors/GetCountriesLibraryErrors.java | 194 ++++++ .../GetCountriesLibraryLibraryErrors.java | 194 ++++++ .../GetCountriesLibraryUnauthorized.java | 173 ++++++ .../errors/GetGenresLibraryBadRequest.java | 173 ++++++ .../models/errors/GetGenresLibraryErrors.java | 194 ++++++ .../errors/GetGenresLibraryLibraryErrors.java | 194 ++++++ .../errors/GetGenresLibraryUnauthorized.java | 173 ++++++ .../GetCountriesLibraryDirectory.java | 147 +++++ .../GetCountriesLibraryMediaContainer.java | 560 ++++++++++++++++++ .../GetCountriesLibraryRequest.java | 110 ++++ .../GetCountriesLibraryRequestBuilder.java | 30 + .../GetCountriesLibraryResponse.java | 251 ++++++++ .../GetCountriesLibraryResponseBody.java | 114 ++++ .../operations/GetGenresLibraryDirectory.java | 176 ++++++ .../GetGenresLibraryMediaContainer.java | 560 ++++++++++++++++++ .../operations/GetGenresLibraryRequest.java | 110 ++++ .../GetGenresLibraryRequestBuilder.java | 30 + .../operations/GetGenresLibraryResponse.java | 251 ++++++++ .../GetGenresLibraryResponseBody.java | 114 ++++ .../operations/SDKMethodInterfaces.java | 12 + .../dev/plexapi/sdk/utils/HTTPRequest.java | 4 +- .../plexapi/sdk/utils/RecordingClient.java | 51 ++ 57 files changed, 4815 insertions(+), 69 deletions(-) create mode 100644 docs/models/errors/GetCountriesLibraryBadRequest.md create mode 100644 docs/models/errors/GetCountriesLibraryErrors.md create mode 100644 docs/models/errors/GetCountriesLibraryLibraryErrors.md create mode 100644 docs/models/errors/GetCountriesLibraryUnauthorized.md create mode 100644 docs/models/errors/GetGenresLibraryBadRequest.md create mode 100644 docs/models/errors/GetGenresLibraryErrors.md create mode 100644 docs/models/errors/GetGenresLibraryLibraryErrors.md create mode 100644 docs/models/errors/GetGenresLibraryUnauthorized.md create mode 100644 docs/models/operations/GetCountriesLibraryDirectory.md create mode 100644 docs/models/operations/GetCountriesLibraryMediaContainer.md create mode 100644 docs/models/operations/GetCountriesLibraryRequest.md create mode 100644 docs/models/operations/GetCountriesLibraryResponse.md create mode 100644 docs/models/operations/GetCountriesLibraryResponseBody.md create mode 100644 docs/models/operations/GetGenresLibraryDirectory.md create mode 100644 docs/models/operations/GetGenresLibraryMediaContainer.md create mode 100644 docs/models/operations/GetGenresLibraryRequest.md create mode 100644 docs/models/operations/GetGenresLibraryResponse.md create mode 100644 docs/models/operations/GetGenresLibraryResponseBody.md create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryBadRequest.java create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryErrors.java create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryLibraryErrors.java create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryUnauthorized.java create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryBadRequest.java create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryErrors.java create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryLibraryErrors.java create mode 100644 src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryUnauthorized.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryDirectory.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryMediaContainer.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequest.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequestBuilder.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponse.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponseBody.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryDirectory.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryMediaContainer.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequest.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequestBuilder.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponse.java create mode 100644 src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponseBody.java create mode 100644 src/main/java/dev/plexapi/sdk/utils/RecordingClient.java diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 956dab6b..1641e62d 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 1732900d-e173-47c1-a90d-d45182eb35d9 management: - docChecksum: a643a64d282d705e3e24f61ed6f068c6 + docChecksum: 14b35829d4be91a88269761c3ed01426 docVersion: 0.0.3 - speakeasyVersion: 1.476.1 - generationVersion: 2.495.1 - releaseVersion: 0.11.3 - configChecksum: 6395be3d833cb132a8994afd879a1f26 + speakeasyVersion: 1.484.1 + generationVersion: 2.503.2 + releaseVersion: 0.11.4 + configChecksum: 126ca5c605b680e9fad7993275f418f0 repoURL: https://github.com/LukeHagar/plexjava.git published: true features: java: additionalDependencies: 0.1.0 constsAndDefaults: 0.1.1 - core: 3.33.5 + core: 3.33.8 deprecations: 2.81.1 downloadStreams: 0.1.1 enums: 2.81.2 @@ -92,6 +92,10 @@ generatedFiles: - docs/models/errors/GetCompanionsDataErrors.md - docs/models/errors/GetCompanionsDataPlexErrors.md - docs/models/errors/GetCompanionsDataUnauthorized.md + - docs/models/errors/GetCountriesLibraryBadRequest.md + - docs/models/errors/GetCountriesLibraryErrors.md + - docs/models/errors/GetCountriesLibraryLibraryErrors.md + - docs/models/errors/GetCountriesLibraryUnauthorized.md - docs/models/errors/GetDevicesBadRequest.md - docs/models/errors/GetDevicesErrors.md - docs/models/errors/GetDevicesServerErrors.md @@ -100,6 +104,10 @@ generatedFiles: - docs/models/errors/GetFileHashErrors.md - docs/models/errors/GetFileHashLibraryErrors.md - docs/models/errors/GetFileHashUnauthorized.md + - docs/models/errors/GetGenresLibraryBadRequest.md + - docs/models/errors/GetGenresLibraryErrors.md + - docs/models/errors/GetGenresLibraryLibraryErrors.md + - docs/models/errors/GetGenresLibraryUnauthorized.md - docs/models/errors/GetGeoDataBadRequest.md - docs/models/errors/GetGeoDataErrors.md - docs/models/errors/GetGeoDataPlexErrors.md @@ -399,11 +407,21 @@ generatedFiles: - docs/models/operations/GetButlerTasksResponse.md - docs/models/operations/GetButlerTasksResponseBody.md - docs/models/operations/GetCompanionsDataResponse.md + - docs/models/operations/GetCountriesLibraryDirectory.md + - docs/models/operations/GetCountriesLibraryMediaContainer.md + - docs/models/operations/GetCountriesLibraryRequest.md + - docs/models/operations/GetCountriesLibraryResponse.md + - docs/models/operations/GetCountriesLibraryResponseBody.md - docs/models/operations/GetDevicesMediaContainer.md - docs/models/operations/GetDevicesResponse.md - docs/models/operations/GetDevicesResponseBody.md - docs/models/operations/GetFileHashRequest.md - docs/models/operations/GetFileHashResponse.md + - docs/models/operations/GetGenresLibraryDirectory.md + - docs/models/operations/GetGenresLibraryMediaContainer.md + - docs/models/operations/GetGenresLibraryRequest.md + - docs/models/operations/GetGenresLibraryResponse.md + - docs/models/operations/GetGenresLibraryResponseBody.md - docs/models/operations/GetGeoDataGeoData.md - docs/models/operations/GetGeoDataResponse.md - docs/models/operations/GetGlobalHubsMediaContainer.md @@ -933,6 +951,10 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/errors/GetCompanionsDataErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetCompanionsDataPlexErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetCompanionsDataUnauthorized.java + - src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryBadRequest.java + - src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryErrors.java + - src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryLibraryErrors.java + - src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryUnauthorized.java - src/main/java/dev/plexapi/sdk/models/errors/GetDevicesBadRequest.java - src/main/java/dev/plexapi/sdk/models/errors/GetDevicesErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetDevicesServerErrors.java @@ -941,6 +963,10 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/errors/GetFileHashErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetFileHashLibraryErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetFileHashUnauthorized.java + - src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryBadRequest.java + - src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryErrors.java + - src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryLibraryErrors.java + - src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryUnauthorized.java - src/main/java/dev/plexapi/sdk/models/errors/GetGeoDataBadRequest.java - src/main/java/dev/plexapi/sdk/models/errors/GetGeoDataErrors.java - src/main/java/dev/plexapi/sdk/models/errors/GetGeoDataPlexErrors.java @@ -1256,6 +1282,12 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/operations/GetButlerTasksResponseBody.java - src/main/java/dev/plexapi/sdk/models/operations/GetCompanionsDataRequestBuilder.java - src/main/java/dev/plexapi/sdk/models/operations/GetCompanionsDataResponse.java + - src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryDirectory.java + - src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryMediaContainer.java + - src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequest.java + - src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequestBuilder.java + - src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponse.java + - src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponseBody.java - src/main/java/dev/plexapi/sdk/models/operations/GetDevicesMediaContainer.java - src/main/java/dev/plexapi/sdk/models/operations/GetDevicesRequestBuilder.java - src/main/java/dev/plexapi/sdk/models/operations/GetDevicesResponse.java @@ -1263,6 +1295,12 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/models/operations/GetFileHashRequest.java - src/main/java/dev/plexapi/sdk/models/operations/GetFileHashRequestBuilder.java - src/main/java/dev/plexapi/sdk/models/operations/GetFileHashResponse.java + - src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryDirectory.java + - src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryMediaContainer.java + - src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequest.java + - src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequestBuilder.java + - src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponse.java + - src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponseBody.java - src/main/java/dev/plexapi/sdk/models/operations/GetGeoDataGeoData.java - src/main/java/dev/plexapi/sdk/models/operations/GetGeoDataRequestBuilder.java - src/main/java/dev/plexapi/sdk/models/operations/GetGeoDataResponse.java @@ -1774,6 +1812,7 @@ generatedFiles: - src/main/java/dev/plexapi/sdk/utils/QueryParameter.java - src/main/java/dev/plexapi/sdk/utils/QueryParameters.java - src/main/java/dev/plexapi/sdk/utils/QueryParamsMetadata.java + - src/main/java/dev/plexapi/sdk/utils/RecordingClient.java - src/main/java/dev/plexapi/sdk/utils/RequestBody.java - src/main/java/dev/plexapi/sdk/utils/RequestMetadata.java - src/main/java/dev/plexapi/sdk/utils/Response.java @@ -2775,5 +2814,29 @@ examples: 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}]} "401": application/json: {"errors": [{"code": 1001, "message": "User could not be authenticated", "status": 401}]} + get-genres-library: + speakeasy-default-get-genres-library: + parameters: + path: + sectionKey: 9518 + responses: + "200": + application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Shows (Reality)", "title2": "By Genre", "viewGroup": "secondary", "Directory": [{"fastKey": "/library/sections/10/all?genre=89", "key": "89", "title": "Action", "type": "genre"}]}} + "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}]} + get-countries-library: + speakeasy-default-get-countries-library: + parameters: + path: + sectionKey: 9518 + responses: + "200": + application/json: {"MediaContainer": {"size": 50, "identifier": "com.plexapp.plugins.library", "allowSync": false, "art": "/:/resources/show-fanart.jpg", "content": "secondary", "mediaTagPrefix": "/system/bundle/media/flags/", "mediaTagVersion": 1734362201, "nocache": true, "thumb": "/:/resources/show.png", "title1": "TV Series", "title2": "By Country", "viewGroup": "secondary", "Directory": [{"fastKey": "/library/sections/2/all?country=15491", "key": "15491", "title": "Japan"}]}} + "400": + application/json: {"errors": [{"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}, {"code": 1000, "message": "X-Plex-Client-Identifier is missing", "status": 400}]} + "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}]} examplesVersion: 1.0.0 generatedTests: {} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 37e72e25..5ac9d35f 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: false java: - version: 0.11.3 + version: 0.11.4 additionalDependencies: [] additionalPlugins: [] artifactID: plexapi diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 5c3c255a..a495eefc 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,4 +1,4 @@ -speakeasyVersion: 1.476.1 +speakeasyVersion: 1.484.1 sources: my-source: sourceNamespace: my-source @@ -8,19 +8,19 @@ sources: - latest plexapi: sourceNamespace: plexapi - sourceRevisionDigest: sha256:e73707dfae50d22dab2166b1661938446b9831bcee252ecd696a1172dfd6ae2c - sourceBlobDigest: sha256:e06caa091ad527fd21714fc0d43e7ea385e181fbad8c4f60296457a89a23c696 + sourceRevisionDigest: sha256:0b88c8bfc41def63e19e91fdd4d51bab07cb947cc3d39d2b44e8523a209cec10 + sourceBlobDigest: sha256:89d5b8427d4fb61b25751aebbaf71f9613958e9e91073fc084fed2c2ec62ce55 tags: - latest - - speakeasy-sdk-regen-1737937609 + - speakeasy-sdk-regen-1738715170 targets: plexjava: source: plexapi sourceNamespace: plexapi - sourceRevisionDigest: sha256:e73707dfae50d22dab2166b1661938446b9831bcee252ecd696a1172dfd6ae2c - sourceBlobDigest: sha256:e06caa091ad527fd21714fc0d43e7ea385e181fbad8c4f60296457a89a23c696 + sourceRevisionDigest: sha256:0b88c8bfc41def63e19e91fdd4d51bab07cb947cc3d39d2b44e8523a209cec10 + sourceBlobDigest: sha256:89d5b8427d4fb61b25751aebbaf71f9613958e9e91073fc084fed2c2ec62ce55 codeSamplesNamespace: code-samples-java-plexjava - codeSamplesRevisionDigest: sha256:88e5ff78d25261d63cd6b797a5176884e5606d54b7ff8bade974b8464a274a94 + codeSamplesRevisionDigest: sha256:2aa7538a82c8a44f72d94eb4f26788f861508b856440d207b35e5160b54e9420 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 46ccdaa1..6066cf4c 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ The samples below show how a published SDK artifact is used: Gradle: ```groovy -implementation 'dev.plexapi:plexapi:0.11.3' +implementation 'dev.plexapi:plexapi:0.11.4' ``` Maven: @@ -77,7 +77,7 @@ Maven: dev.plexapi plexapi - 0.11.3 + 0.11.4 ``` @@ -171,6 +171,8 @@ public class Application { * [getLibraryItems](docs/sdks/library/README.md#getlibraryitems) - Get Library Items * [getRefreshLibraryMetadata](docs/sdks/library/README.md#getrefreshlibrarymetadata) - Refresh Metadata Of The Library * [getSearchLibrary](docs/sdks/library/README.md#getsearchlibrary) - Search Library +* [getGenresLibrary](docs/sdks/library/README.md#getgenreslibrary) - Get Genres of library media +* [getCountriesLibrary](docs/sdks/library/README.md#getcountrieslibrary) - Get Countries of library media * [getSearchAllLibraries](docs/sdks/library/README.md#getsearchalllibraries) - Search All Libraries * [getMetaDataByRatingKey](docs/sdks/library/README.md#getmetadatabyratingkey) - Get Metadata by RatingKey * [getMetadataChildren](docs/sdks/library/README.md#getmetadatachildren) - Get Items Children diff --git a/RELEASES.md b/RELEASES.md index 6b1fe844..8a0fbe13 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -218,4 +218,14 @@ Based on: ### Generated - [java v0.11.3] . ### Releases -- [Maven Central v0.11.3] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.11.3 - . \ No newline at end of file +- [Maven Central v0.11.3] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.11.3 - . + +## 2025-02-05 00:25:55 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.484.1 (2.503.2) https://github.com/speakeasy-api/speakeasy +### Generated +- [java v0.11.4] . +### Releases +- [Maven Central v0.11.4] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.11.4 - . \ No newline at end of file diff --git a/build.gradle b/build.gradle index 11a521f3..0a8dec69 100644 --- a/build.gradle +++ b/build.gradle @@ -63,7 +63,7 @@ tasks.withType(Javadoc) { } group = "dev.plexapi" -version = "0.11.3" +version = "0.11.4" sourcesJar { archiveBaseName = "plexapi" @@ -101,7 +101,7 @@ publishing { maven(MavenPublication) { groupId = 'dev.plexapi' artifactId = 'plexapi' - version = '0.11.3' + version = '0.11.4' from components.java diff --git a/codeSamples.yaml b/codeSamples.yaml index 739e3d0b..87d93487 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -624,7 +624,6 @@ actions: import dev.plexapi.plexapi.PlexAPI; import dev.plexapi.plexapi.models.operations.GetRecentlyAddedRequest; import dev.plexapi.plexapi.models.operations.GetRecentlyAddedResponse; - import dev.plexapi.plexapi.models.operations.IncludeMeta; import dev.plexapi.plexapi.models.operations.Type; import java.lang.Exception; @@ -640,9 +639,6 @@ actions: .contentDirectoryID(470161L) .type(Type.TvShow) .sectionID(2L) - .includeMeta(IncludeMeta.Enable) - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetRecentlyAddedResponse res = sdk.hubs().getRecentlyAdded() @@ -1029,7 +1025,6 @@ actions: import dev.plexapi.plexapi.models.errors.GetRecentlyAddedLibraryUnauthorized; import dev.plexapi.plexapi.models.operations.GetRecentlyAddedLibraryRequest; import dev.plexapi.plexapi.models.operations.GetRecentlyAddedLibraryResponse; - import dev.plexapi.plexapi.models.operations.QueryParamIncludeMeta; import dev.plexapi.plexapi.models.operations.QueryParamType; import java.lang.Exception; import java.util.List; @@ -1059,9 +1054,6 @@ actions: 16L, 17L)) .sectionID(2L) - .includeMeta(QueryParamIncludeMeta.Enable) - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetRecentlyAddedLibraryResponse res = sdk.library().getRecentlyAddedLibrary() @@ -1086,8 +1078,6 @@ actions: import dev.plexapi.plexapi.models.errors.GetSearchAllLibrariesUnauthorized; import dev.plexapi.plexapi.models.operations.GetSearchAllLibrariesRequest; import dev.plexapi.plexapi.models.operations.GetSearchAllLibrariesResponse; - import dev.plexapi.plexapi.models.operations.QueryParamIncludeCollections; - import dev.plexapi.plexapi.models.operations.QueryParamIncludeExternalMedia; import dev.plexapi.plexapi.models.operations.SearchTypes; import java.lang.Exception; import java.util.List; @@ -1105,8 +1095,6 @@ actions: .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .searchTypes(List.of( SearchTypes.PEOPLE)) - .includeCollections(QueryParamIncludeCollections.Enable) - .includeExternalMedia(QueryParamIncludeExternalMedia.Enable) .build(); GetSearchAllLibrariesResponse res = sdk.library().getSearchAllLibraries() @@ -1175,8 +1163,6 @@ actions: GetWatchListRequest req = GetWatchListRequest.builder() .filter(Filter.AVAILABLE) .xPlexToken("CV5xoxjTpFKUzBTShsaf") - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetWatchListResponse res = sdk.watchlist().getWatchList() @@ -1245,6 +1231,68 @@ actions: .sectionKey(9518) .call(); + if (res.object().isPresent()) { + // handle response + } + } + } + - target: $["paths"]["/library/sections/{sectionKey}/country"]["get"] + update: + x-codeSamples: + - lang: java + label: library + source: |- + package hello.world; + + import dev.plexapi.plexapi.PlexAPI; + import dev.plexapi.plexapi.models.errors.GetCountriesLibraryBadRequest; + import dev.plexapi.plexapi.models.errors.GetCountriesLibraryUnauthorized; + import dev.plexapi.plexapi.models.operations.GetCountriesLibraryResponse; + import java.lang.Exception; + + public class Application { + + public static void main(String[] args) throws GetCountriesLibraryBadRequest, GetCountriesLibraryUnauthorized, Exception { + + PlexAPI sdk = PlexAPI.builder() + .accessToken("") + .build(); + + GetCountriesLibraryResponse res = sdk.library().getCountriesLibrary() + .sectionKey(9518) + .call(); + + if (res.object().isPresent()) { + // handle response + } + } + } + - target: $["paths"]["/library/sections/{sectionKey}/genre"]["get"] + update: + x-codeSamples: + - lang: java + label: library + source: |- + package hello.world; + + import dev.plexapi.plexapi.PlexAPI; + import dev.plexapi.plexapi.models.errors.GetGenresLibraryBadRequest; + import dev.plexapi.plexapi.models.errors.GetGenresLibraryUnauthorized; + import dev.plexapi.plexapi.models.operations.GetGenresLibraryResponse; + import java.lang.Exception; + + public class Application { + + public static void main(String[] args) throws GetGenresLibraryBadRequest, GetGenresLibraryUnauthorized, Exception { + + PlexAPI sdk = PlexAPI.builder() + .accessToken("") + .build(); + + GetGenresLibraryResponse res = sdk.library().getGenresLibrary() + .sectionKey(9518) + .call(); + if (res.object().isPresent()) { // handle response } @@ -1325,11 +1373,9 @@ actions: import dev.plexapi.plexapi.PlexAPI; import dev.plexapi.plexapi.models.errors.GetLibraryItemsBadRequest; import dev.plexapi.plexapi.models.errors.GetLibraryItemsUnauthorized; - import dev.plexapi.plexapi.models.operations.GetLibraryItemsQueryParamIncludeMeta; import dev.plexapi.plexapi.models.operations.GetLibraryItemsQueryParamType; import dev.plexapi.plexapi.models.operations.GetLibraryItemsRequest; import dev.plexapi.plexapi.models.operations.GetLibraryItemsResponse; - import dev.plexapi.plexapi.models.operations.IncludeGuids; import dev.plexapi.plexapi.models.operations.Tag; import java.lang.Exception; @@ -1344,11 +1390,7 @@ actions: GetLibraryItemsRequest req = GetLibraryItemsRequest.builder() .tag(Tag.EDITION) .sectionKey(9518) - .includeGuids(IncludeGuids.Enable) .type(GetLibraryItemsQueryParamType.TvShow) - .includeMeta(GetLibraryItemsQueryParamIncludeMeta.Enable) - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetLibraryItemsResponse res = sdk.library().getLibraryItems() @@ -1578,7 +1620,6 @@ actions: GetPinRequest req = GetPinRequest.builder() .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") - .strong(false) .clientName("Plex for Roku") .deviceNickname("Roku 3") .clientVersion("2.4.1") @@ -2458,7 +2499,6 @@ actions: .requestBody(PostUsersSignInDataRequestBody.builder() .login("username@email.com") .password("password123") - .rememberMe(false) .verificationCode("123456") .build()) .build(); diff --git a/docs/models/errors/GetCountriesLibraryBadRequest.md b/docs/models/errors/GetCountriesLibraryBadRequest.md new file mode 100644 index 00000000..d6b4576b --- /dev/null +++ b/docs/models/errors/GetCountriesLibraryBadRequest.md @@ -0,0 +1,11 @@ +# GetCountriesLibraryBadRequest + +Bad Request - A parameter was not specified, or was specified incorrectly. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `errors` | List\<[GetCountriesLibraryErrors](../../models/errors/GetCountriesLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `rawResponse` | [HttpResponse\](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/GetCountriesLibraryErrors.md b/docs/models/errors/GetCountriesLibraryErrors.md new file mode 100644 index 00000000..fc28903c --- /dev/null +++ b/docs/models/errors/GetCountriesLibraryErrors.md @@ -0,0 +1,10 @@ +# GetCountriesLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `code` | *Optional\* | :heavy_minus_sign: | N/A | 1000 | +| `message` | *Optional\* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | +| `status` | *Optional\* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/models/errors/GetCountriesLibraryLibraryErrors.md b/docs/models/errors/GetCountriesLibraryLibraryErrors.md new file mode 100644 index 00000000..fc95fe1d --- /dev/null +++ b/docs/models/errors/GetCountriesLibraryLibraryErrors.md @@ -0,0 +1,10 @@ +# GetCountriesLibraryLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Optional\* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *Optional\* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Optional\* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/errors/GetCountriesLibraryUnauthorized.md b/docs/models/errors/GetCountriesLibraryUnauthorized.md new file mode 100644 index 00000000..a73a8247 --- /dev/null +++ b/docs/models/errors/GetCountriesLibraryUnauthorized.md @@ -0,0 +1,11 @@ +# GetCountriesLibraryUnauthorized + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `errors` | List\<[GetCountriesLibraryLibraryErrors](../../models/errors/GetCountriesLibraryLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `rawResponse` | [HttpResponse\](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/GetGenresLibraryBadRequest.md b/docs/models/errors/GetGenresLibraryBadRequest.md new file mode 100644 index 00000000..611c08a2 --- /dev/null +++ b/docs/models/errors/GetGenresLibraryBadRequest.md @@ -0,0 +1,11 @@ +# GetGenresLibraryBadRequest + +Bad Request - A parameter was not specified, or was specified incorrectly. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `errors` | List\<[GetGenresLibraryErrors](../../models/errors/GetGenresLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `rawResponse` | [HttpResponse\](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/errors/GetGenresLibraryErrors.md b/docs/models/errors/GetGenresLibraryErrors.md new file mode 100644 index 00000000..0d945204 --- /dev/null +++ b/docs/models/errors/GetGenresLibraryErrors.md @@ -0,0 +1,10 @@ +# GetGenresLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `code` | *Optional\* | :heavy_minus_sign: | N/A | 1000 | +| `message` | *Optional\* | :heavy_minus_sign: | N/A | X-Plex-Client-Identifier is missing | +| `status` | *Optional\* | :heavy_minus_sign: | N/A | 400 | \ No newline at end of file diff --git a/docs/models/errors/GetGenresLibraryLibraryErrors.md b/docs/models/errors/GetGenresLibraryLibraryErrors.md new file mode 100644 index 00000000..98b4b797 --- /dev/null +++ b/docs/models/errors/GetGenresLibraryLibraryErrors.md @@ -0,0 +1,10 @@ +# GetGenresLibraryLibraryErrors + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `code` | *Optional\* | :heavy_minus_sign: | N/A | 1001 | +| `message` | *Optional\* | :heavy_minus_sign: | N/A | User could not be authenticated | +| `status` | *Optional\* | :heavy_minus_sign: | N/A | 401 | \ No newline at end of file diff --git a/docs/models/errors/GetGenresLibraryUnauthorized.md b/docs/models/errors/GetGenresLibraryUnauthorized.md new file mode 100644 index 00000000..944083ba --- /dev/null +++ b/docs/models/errors/GetGenresLibraryUnauthorized.md @@ -0,0 +1,11 @@ +# GetGenresLibraryUnauthorized + +Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `errors` | List\<[GetGenresLibraryLibraryErrors](../../models/errors/GetGenresLibraryLibraryErrors.md)> | :heavy_minus_sign: | N/A | +| `rawResponse` | [HttpResponse\](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_minus_sign: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/operations/GetCountriesLibraryDirectory.md b/docs/models/operations/GetCountriesLibraryDirectory.md new file mode 100644 index 00000000..2a7168d9 --- /dev/null +++ b/docs/models/operations/GetCountriesLibraryDirectory.md @@ -0,0 +1,10 @@ +# GetCountriesLibraryDirectory + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | +| `fastKey` | *String* | :heavy_check_mark: | N/A | /library/sections/2/all?country=15491 | +| `key` | *String* | :heavy_check_mark: | N/A | 15491 | +| `title` | *String* | :heavy_check_mark: | N/A | Japan | \ No newline at end of file diff --git a/docs/models/operations/GetCountriesLibraryMediaContainer.md b/docs/models/operations/GetCountriesLibraryMediaContainer.md new file mode 100644 index 00000000..e03e5733 --- /dev/null +++ b/docs/models/operations/GetCountriesLibraryMediaContainer.md @@ -0,0 +1,22 @@ +# GetCountriesLibraryMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `size` | *double* | :heavy_check_mark: | N/A | 50 | +| `offset` | *Optional\* | :heavy_minus_sign: | N/A | | +| `totalSize` | *Optional\* | :heavy_minus_sign: | N/A | | +| `identifier` | *String* | :heavy_check_mark: | N/A | com.plexapp.plugins.library | +| `allowSync` | *boolean* | :heavy_check_mark: | N/A | false | +| `art` | *String* | :heavy_check_mark: | N/A | /:/resources/show-fanart.jpg | +| `content` | *String* | :heavy_check_mark: | N/A | secondary | +| `mediaTagPrefix` | *String* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *long* | :heavy_check_mark: | N/A | 1734362201 | +| `nocache` | *boolean* | :heavy_check_mark: | N/A | true | +| `thumb` | *String* | :heavy_check_mark: | N/A | /:/resources/show.png | +| `title1` | *String* | :heavy_check_mark: | N/A | TV Series | +| `title2` | *String* | :heavy_check_mark: | N/A | By Country | +| `viewGroup` | *String* | :heavy_check_mark: | N/A | secondary | +| `directory` | List\<[GetCountriesLibraryDirectory](../../models/operations/GetCountriesLibraryDirectory.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetCountriesLibraryRequest.md b/docs/models/operations/GetCountriesLibraryRequest.md new file mode 100644 index 00000000..d52503e5 --- /dev/null +++ b/docs/models/operations/GetCountriesLibraryRequest.md @@ -0,0 +1,8 @@ +# GetCountriesLibraryRequest + + +## Fields + +| 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 | \ No newline at end of file diff --git a/docs/models/operations/GetCountriesLibraryResponse.md b/docs/models/operations/GetCountriesLibraryResponse.md new file mode 100644 index 00000000..40755bd1 --- /dev/null +++ b/docs/models/operations/GetCountriesLibraryResponse.md @@ -0,0 +1,11 @@ +# GetCountriesLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse\](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [Optional\](../../models/operations/GetCountriesLibraryResponseBody.md) | :heavy_minus_sign: | Successful response containing media container data. | \ No newline at end of file diff --git a/docs/models/operations/GetCountriesLibraryResponseBody.md b/docs/models/operations/GetCountriesLibraryResponseBody.md new file mode 100644 index 00000000..d180d081 --- /dev/null +++ b/docs/models/operations/GetCountriesLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetCountriesLibraryResponseBody + +Successful response containing media container data. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `mediaContainer` | [Optional\](../../models/operations/GetCountriesLibraryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetGenresLibraryDirectory.md b/docs/models/operations/GetGenresLibraryDirectory.md new file mode 100644 index 00000000..ea1e9701 --- /dev/null +++ b/docs/models/operations/GetGenresLibraryDirectory.md @@ -0,0 +1,11 @@ +# GetGenresLibraryDirectory + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `fastKey` | *String* | :heavy_check_mark: | N/A | /library/sections/10/all?genre=89 | +| `key` | *String* | :heavy_check_mark: | N/A | 89 | +| `title` | *String* | :heavy_check_mark: | N/A | Action | +| `type` | *String* | :heavy_check_mark: | N/A | genre | \ No newline at end of file diff --git a/docs/models/operations/GetGenresLibraryMediaContainer.md b/docs/models/operations/GetGenresLibraryMediaContainer.md new file mode 100644 index 00000000..7229c5bd --- /dev/null +++ b/docs/models/operations/GetGenresLibraryMediaContainer.md @@ -0,0 +1,22 @@ +# GetGenresLibraryMediaContainer + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `size` | *double* | :heavy_check_mark: | N/A | 50 | +| `offset` | *Optional\* | :heavy_minus_sign: | N/A | | +| `totalSize` | *Optional\* | :heavy_minus_sign: | N/A | | +| `identifier` | *String* | :heavy_check_mark: | N/A | com.plexapp.plugins.library | +| `allowSync` | *boolean* | :heavy_check_mark: | N/A | false | +| `art` | *String* | :heavy_check_mark: | N/A | /:/resources/show-fanart.jpg | +| `content` | *String* | :heavy_check_mark: | N/A | secondary | +| `mediaTagPrefix` | *String* | :heavy_check_mark: | N/A | /system/bundle/media/flags/ | +| `mediaTagVersion` | *long* | :heavy_check_mark: | N/A | 1734362201 | +| `nocache` | *boolean* | :heavy_check_mark: | N/A | true | +| `thumb` | *String* | :heavy_check_mark: | N/A | /:/resources/show.png | +| `title1` | *String* | :heavy_check_mark: | N/A | TV Shows (Reality) | +| `title2` | *String* | :heavy_check_mark: | N/A | By Genre | +| `viewGroup` | *String* | :heavy_check_mark: | N/A | secondary | +| `directory` | List\<[GetGenresLibraryDirectory](../../models/operations/GetGenresLibraryDirectory.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/operations/GetGenresLibraryRequest.md b/docs/models/operations/GetGenresLibraryRequest.md new file mode 100644 index 00000000..59c96272 --- /dev/null +++ b/docs/models/operations/GetGenresLibraryRequest.md @@ -0,0 +1,8 @@ +# GetGenresLibraryRequest + + +## Fields + +| 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 | \ No newline at end of file diff --git a/docs/models/operations/GetGenresLibraryResponse.md b/docs/models/operations/GetGenresLibraryResponse.md new file mode 100644 index 00000000..ae399767 --- /dev/null +++ b/docs/models/operations/GetGenresLibraryResponse.md @@ -0,0 +1,11 @@ +# GetGenresLibraryResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `contentType` | *String* | :heavy_check_mark: | HTTP response content type for this operation | +| `statusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `rawResponse` | [HttpResponse\](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.html) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `object` | [Optional\](../../models/operations/GetGenresLibraryResponseBody.md) | :heavy_minus_sign: | Successful response containing media container data. | \ No newline at end of file diff --git a/docs/models/operations/GetGenresLibraryResponseBody.md b/docs/models/operations/GetGenresLibraryResponseBody.md new file mode 100644 index 00000000..1161bc31 --- /dev/null +++ b/docs/models/operations/GetGenresLibraryResponseBody.md @@ -0,0 +1,10 @@ +# GetGenresLibraryResponseBody + +Successful response containing media container data. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `mediaContainer` | [Optional\](../../models/operations/GetGenresLibraryMediaContainer.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/GetRecentlyAddedMediaContainer.md b/docs/models/operations/GetRecentlyAddedMediaContainer.md index a97dd238..5ed42bb2 100644 --- a/docs/models/operations/GetRecentlyAddedMediaContainer.md +++ b/docs/models/operations/GetRecentlyAddedMediaContainer.md @@ -9,6 +9,6 @@ | `offset` | *Optional\* | :heavy_minus_sign: | N/A | | | `totalSize` | *Optional\* | :heavy_minus_sign: | N/A | | | `identifier` | *Optional\* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library | -| `allowSync` | *Optional\* | :heavy_minus_sign: | N/A | | +| `allowSync` | *Optional\* | :heavy_minus_sign: | N/A | false | | `meta` | [Optional\](../../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` | List\<[GetRecentlyAddedMetadata](../../models/operations/GetRecentlyAddedMetadata.md)> | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index 18b6426d..ad9d3c98 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -204,7 +204,6 @@ public class Application { .requestBody(PostUsersSignInDataRequestBody.builder() .login("username@email.com") .password("password123") - .rememberMe(false) .verificationCode("123456") .build()) .build(); diff --git a/docs/sdks/hubs/README.md b/docs/sdks/hubs/README.md index 298f5bd7..e35da521 100644 --- a/docs/sdks/hubs/README.md +++ b/docs/sdks/hubs/README.md @@ -80,7 +80,6 @@ package hello.world; import dev.plexapi.sdk.PlexAPI; import dev.plexapi.sdk.models.operations.GetRecentlyAddedRequest; import dev.plexapi.sdk.models.operations.GetRecentlyAddedResponse; -import dev.plexapi.sdk.models.operations.IncludeMeta; import dev.plexapi.sdk.models.operations.Type; import java.lang.Exception; @@ -96,9 +95,6 @@ public class Application { .contentDirectoryID(470161L) .type(Type.TvShow) .sectionID(2L) - .includeMeta(IncludeMeta.Enable) - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetRecentlyAddedResponse res = sdk.hubs().getRecentlyAdded() diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md index 5388d4ac..ccf8fde0 100644 --- a/docs/sdks/library/README.md +++ b/docs/sdks/library/README.md @@ -16,6 +16,8 @@ API Calls interacting with Plex Media Server Libraries * [getLibraryItems](#getlibraryitems) - Get Library Items * [getRefreshLibraryMetadata](#getrefreshlibrarymetadata) - Refresh Metadata Of The Library * [getSearchLibrary](#getsearchlibrary) - Search Library +* [getGenresLibrary](#getgenreslibrary) - Get Genres of library media +* [getCountriesLibrary](#getcountrieslibrary) - Get Countries of library media * [getSearchAllLibraries](#getsearchalllibraries) - Search All Libraries * [getMetaDataByRatingKey](#getmetadatabyratingkey) - Get Metadata by RatingKey * [getMetadataChildren](#getmetadatachildren) - Get Items Children @@ -89,7 +91,6 @@ import dev.plexapi.sdk.models.errors.GetRecentlyAddedLibraryBadRequest; import dev.plexapi.sdk.models.errors.GetRecentlyAddedLibraryUnauthorized; import dev.plexapi.sdk.models.operations.GetRecentlyAddedLibraryRequest; import dev.plexapi.sdk.models.operations.GetRecentlyAddedLibraryResponse; -import dev.plexapi.sdk.models.operations.QueryParamIncludeMeta; import dev.plexapi.sdk.models.operations.QueryParamType; import java.lang.Exception; import java.util.List; @@ -119,9 +120,6 @@ public class Application { 16L, 17L)) .sectionID(2L) - .includeMeta(QueryParamIncludeMeta.Enable) - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetRecentlyAddedLibraryResponse res = sdk.library().getRecentlyAddedLibrary() @@ -381,11 +379,9 @@ package hello.world; import dev.plexapi.sdk.PlexAPI; import dev.plexapi.sdk.models.errors.GetLibraryItemsBadRequest; import dev.plexapi.sdk.models.errors.GetLibraryItemsUnauthorized; -import dev.plexapi.sdk.models.operations.GetLibraryItemsQueryParamIncludeMeta; import dev.plexapi.sdk.models.operations.GetLibraryItemsQueryParamType; import dev.plexapi.sdk.models.operations.GetLibraryItemsRequest; import dev.plexapi.sdk.models.operations.GetLibraryItemsResponse; -import dev.plexapi.sdk.models.operations.IncludeGuids; import dev.plexapi.sdk.models.operations.Tag; import java.lang.Exception; @@ -400,11 +396,7 @@ public class Application { GetLibraryItemsRequest req = GetLibraryItemsRequest.builder() .tag(Tag.EDITION) .sectionKey(9518) - .includeGuids(IncludeGuids.Enable) .type(GetLibraryItemsQueryParamType.TvShow) - .includeMeta(GetLibraryItemsQueryParamIncludeMeta.Enable) - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetLibraryItemsResponse res = sdk.library().getLibraryItems() @@ -563,6 +555,112 @@ public class Application { | models/errors/GetSearchLibraryUnauthorized | 401 | application/json | | models/errors/SDKError | 4XX, 5XX | \*/\* | +## getGenresLibrary + +Retrieves a list of all the genres that are found for the media in this library. + + +### Example Usage + +```java +package hello.world; + +import dev.plexapi.sdk.PlexAPI; +import dev.plexapi.sdk.models.errors.GetGenresLibraryBadRequest; +import dev.plexapi.sdk.models.errors.GetGenresLibraryUnauthorized; +import dev.plexapi.sdk.models.operations.GetGenresLibraryResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws GetGenresLibraryBadRequest, GetGenresLibraryUnauthorized, Exception { + + PlexAPI sdk = PlexAPI.builder() + .accessToken("") + .build(); + + GetGenresLibraryResponse res = sdk.library().getGenresLibrary() + .sectionKey(9518) + .call(); + + if (res.object().isPresent()) { + // handle response + } + } +} +``` + +### Parameters + +| 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 | + +### Response + +**[GetGenresLibraryResponse](../../models/operations/GetGenresLibraryResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| models/errors/GetGenresLibraryBadRequest | 400 | application/json | +| models/errors/GetGenresLibraryUnauthorized | 401 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + +## getCountriesLibrary + +Retrieves a list of all the countries that are found for the media in this library. + + +### Example Usage + +```java +package hello.world; + +import dev.plexapi.sdk.PlexAPI; +import dev.plexapi.sdk.models.errors.GetCountriesLibraryBadRequest; +import dev.plexapi.sdk.models.errors.GetCountriesLibraryUnauthorized; +import dev.plexapi.sdk.models.operations.GetCountriesLibraryResponse; +import java.lang.Exception; + +public class Application { + + public static void main(String[] args) throws GetCountriesLibraryBadRequest, GetCountriesLibraryUnauthorized, Exception { + + PlexAPI sdk = PlexAPI.builder() + .accessToken("") + .build(); + + GetCountriesLibraryResponse res = sdk.library().getCountriesLibrary() + .sectionKey(9518) + .call(); + + if (res.object().isPresent()) { + // handle response + } + } +} +``` + +### Parameters + +| 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 | + +### Response + +**[GetCountriesLibraryResponse](../../models/operations/GetCountriesLibraryResponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | +| models/errors/GetCountriesLibraryBadRequest | 400 | application/json | +| models/errors/GetCountriesLibraryUnauthorized | 401 | application/json | +| models/errors/SDKError | 4XX, 5XX | \*/\* | + ## getSearchAllLibraries Search the provided query across all library sections, or a single section, and return matches as hubs, split up by type. @@ -578,8 +676,6 @@ import dev.plexapi.sdk.models.errors.GetSearchAllLibrariesBadRequest; import dev.plexapi.sdk.models.errors.GetSearchAllLibrariesUnauthorized; import dev.plexapi.sdk.models.operations.GetSearchAllLibrariesRequest; import dev.plexapi.sdk.models.operations.GetSearchAllLibrariesResponse; -import dev.plexapi.sdk.models.operations.QueryParamIncludeCollections; -import dev.plexapi.sdk.models.operations.QueryParamIncludeExternalMedia; import dev.plexapi.sdk.models.operations.SearchTypes; import java.lang.Exception; import java.util.List; @@ -597,8 +693,6 @@ public class Application { .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") .searchTypes(List.of( SearchTypes.PEOPLE)) - .includeCollections(QueryParamIncludeCollections.Enable) - .includeExternalMedia(QueryParamIncludeExternalMedia.Enable) .build(); GetSearchAllLibrariesResponse res = sdk.library().getSearchAllLibraries() diff --git a/docs/sdks/plex/README.md b/docs/sdks/plex/README.md index 7e6aaabd..d698c7be 100644 --- a/docs/sdks/plex/README.md +++ b/docs/sdks/plex/README.md @@ -299,7 +299,6 @@ public class Application { GetPinRequest req = GetPinRequest.builder() .clientID("3381b62b-9ab7-4e37-827b-203e9809eb58") - .strong(false) .clientName("Plex for Roku") .deviceNickname("Roku 3") .clientVersion("2.4.1") diff --git a/docs/sdks/watchlist/README.md b/docs/sdks/watchlist/README.md index 0dbafce7..4b643056 100644 --- a/docs/sdks/watchlist/README.md +++ b/docs/sdks/watchlist/README.md @@ -38,8 +38,6 @@ public class Application { GetWatchListRequest req = GetWatchListRequest.builder() .filter(Filter.AVAILABLE) .xPlexToken("CV5xoxjTpFKUzBTShsaf") - .xPlexContainerStart(0) - .xPlexContainerSize(50) .build(); GetWatchListResponse res = sdk.watchlist().getWatchList() diff --git a/src/main/java/dev/plexapi/sdk/Library.java b/src/main/java/dev/plexapi/sdk/Library.java index afcb0c9a..58a6f900 100644 --- a/src/main/java/dev/plexapi/sdk/Library.java +++ b/src/main/java/dev/plexapi/sdk/Library.java @@ -9,8 +9,12 @@ import dev.plexapi.sdk.models.errors.DeleteLibraryBadRequest; import dev.plexapi.sdk.models.errors.DeleteLibraryUnauthorized; import dev.plexapi.sdk.models.errors.GetAllLibrariesBadRequest; import dev.plexapi.sdk.models.errors.GetAllLibrariesUnauthorized; +import dev.plexapi.sdk.models.errors.GetCountriesLibraryBadRequest; +import dev.plexapi.sdk.models.errors.GetCountriesLibraryUnauthorized; import dev.plexapi.sdk.models.errors.GetFileHashBadRequest; import dev.plexapi.sdk.models.errors.GetFileHashUnauthorized; +import dev.plexapi.sdk.models.errors.GetGenresLibraryBadRequest; +import dev.plexapi.sdk.models.errors.GetGenresLibraryUnauthorized; import dev.plexapi.sdk.models.errors.GetLibraryDetailsBadRequest; import dev.plexapi.sdk.models.errors.GetLibraryDetailsUnauthorized; import dev.plexapi.sdk.models.errors.GetLibraryItemsBadRequest; @@ -39,9 +43,17 @@ import dev.plexapi.sdk.models.operations.Force; import dev.plexapi.sdk.models.operations.GetAllLibrariesRequestBuilder; import dev.plexapi.sdk.models.operations.GetAllLibrariesResponse; import dev.plexapi.sdk.models.operations.GetAllLibrariesResponseBody; +import dev.plexapi.sdk.models.operations.GetCountriesLibraryRequest; +import dev.plexapi.sdk.models.operations.GetCountriesLibraryRequestBuilder; +import dev.plexapi.sdk.models.operations.GetCountriesLibraryResponse; +import dev.plexapi.sdk.models.operations.GetCountriesLibraryResponseBody; import dev.plexapi.sdk.models.operations.GetFileHashRequest; import dev.plexapi.sdk.models.operations.GetFileHashRequestBuilder; import dev.plexapi.sdk.models.operations.GetFileHashResponse; +import dev.plexapi.sdk.models.operations.GetGenresLibraryRequest; +import dev.plexapi.sdk.models.operations.GetGenresLibraryRequestBuilder; +import dev.plexapi.sdk.models.operations.GetGenresLibraryResponse; +import dev.plexapi.sdk.models.operations.GetGenresLibraryResponseBody; import dev.plexapi.sdk.models.operations.GetLibraryDetailsRequest; import dev.plexapi.sdk.models.operations.GetLibraryDetailsRequestBuilder; import dev.plexapi.sdk.models.operations.GetLibraryDetailsResponse; @@ -113,6 +125,8 @@ public class Library implements MethodCallGetLibraryItems, MethodCallGetRefreshLibraryMetadata, MethodCallGetSearchLibrary, + MethodCallGetGenresLibrary, + MethodCallGetCountriesLibrary, MethodCallGetSearchAllLibraries, MethodCallGetMetaDataByRatingKey, MethodCallGetMetadataChildren, @@ -1697,6 +1711,344 @@ public class Library implements + /** + * Get Genres of library media + * Retrieves a list of all the genres that are found for the media in this library. + * + * @return The call builder + */ + public GetGenresLibraryRequestBuilder getGenresLibrary() { + return new GetGenresLibraryRequestBuilder(this); + } + + /** + * Get Genres of library media + * Retrieves a list of all the genres that are found for the media in this library. + * + * @param sectionKey The unique key of the Plex library. + Note: This is unique in the context of the Plex server. + + * @return The response from the API call + * @throws Exception if the API call fails + */ + public GetGenresLibraryResponse getGenresLibrary( + int sectionKey) throws Exception { + GetGenresLibraryRequest request = + GetGenresLibraryRequest + .builder() + .sectionKey(sectionKey) + .build(); + + String _baseUrl = Utils.templateUrl( + this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String _url = Utils.generateURL( + GetGenresLibraryRequest.class, + _baseUrl, + "/library/sections/{sectionKey}/genre", + request, null); + + HTTPRequest _req = new HTTPRequest(_url, "GET"); + _req.addHeader("Accept", "application/json") + .addHeader("user-agent", + SDKConfiguration.USER_AGENT); + + Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Utils.configureSecurity(_req, + this.sdkConfiguration.securitySource.getSecurity()); + HTTPClient _client = this.sdkConfiguration.defaultClient; + HttpRequest _r = + sdkConfiguration.hooks() + .beforeRequest( + new BeforeRequestContextImpl( + "get-genres-library", + Optional.of(List.of()), + _hookSecuritySource), + _req.build()); + HttpResponse _httpRes; + try { + _httpRes = _client.send(_r); + if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "401", "404", "4XX", "5XX")) { + _httpRes = sdkConfiguration.hooks() + .afterError( + new AfterErrorContextImpl( + "get-genres-library", + Optional.of(List.of()), + _hookSecuritySource), + Optional.of(_httpRes), + Optional.empty()); + } else { + _httpRes = sdkConfiguration.hooks() + .afterSuccess( + new AfterSuccessContextImpl( + "get-genres-library", + Optional.of(List.of()), + _hookSecuritySource), + _httpRes); + } + } catch (Exception _e) { + _httpRes = sdkConfiguration.hooks() + .afterError( + new AfterErrorContextImpl( + "get-genres-library", + Optional.of(List.of()), + _hookSecuritySource), + Optional.empty(), + Optional.of(_e)); + } + String _contentType = _httpRes + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + GetGenresLibraryResponse.Builder _resBuilder = + GetGenresLibraryResponse + .builder() + .contentType(_contentType) + .statusCode(_httpRes.statusCode()) + .rawResponse(_httpRes); + + GetGenresLibraryResponse _res = _resBuilder.build(); + + if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) { + if (Utils.contentTypeMatches(_contentType, "application/json")) { + GetGenresLibraryResponseBody _out = Utils.mapper().readValue( + Utils.toUtf8AndClose(_httpRes.body()), + new TypeReference() {}); + _res.withObject(Optional.ofNullable(_out)); + return _res; + } else { + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected content-type received: " + _contentType, + Utils.extractByteArrayFromBody(_httpRes)); + } + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) { + if (Utils.contentTypeMatches(_contentType, "application/json")) { + GetGenresLibraryBadRequest _out = Utils.mapper().readValue( + Utils.toUtf8AndClose(_httpRes.body()), + new TypeReference() {}); + _out.withRawResponse(Optional.ofNullable(_httpRes)); + + throw _out; + } else { + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected content-type received: " + _contentType, + Utils.extractByteArrayFromBody(_httpRes)); + } + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) { + if (Utils.contentTypeMatches(_contentType, "application/json")) { + GetGenresLibraryUnauthorized _out = Utils.mapper().readValue( + Utils.toUtf8AndClose(_httpRes.body()), + new TypeReference() {}); + _out.withRawResponse(Optional.ofNullable(_httpRes)); + + throw _out; + } else { + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected content-type received: " + _contentType, + Utils.extractByteArrayFromBody(_httpRes)); + } + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX")) { + // no content + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "API error occurred", + Utils.extractByteArrayFromBody(_httpRes)); + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "5XX")) { + // no content + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "API error occurred", + Utils.extractByteArrayFromBody(_httpRes)); + } + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected status code received: " + _httpRes.statusCode(), + Utils.extractByteArrayFromBody(_httpRes)); + } + + + + /** + * Get Countries of library media + * Retrieves a list of all the countries that are found for the media in this library. + * + * @return The call builder + */ + public GetCountriesLibraryRequestBuilder getCountriesLibrary() { + return new GetCountriesLibraryRequestBuilder(this); + } + + /** + * Get Countries of library media + * Retrieves a list of all the countries that are found for the media in this library. + * + * @param sectionKey The unique key of the Plex library. + Note: This is unique in the context of the Plex server. + + * @return The response from the API call + * @throws Exception if the API call fails + */ + public GetCountriesLibraryResponse getCountriesLibrary( + int sectionKey) throws Exception { + GetCountriesLibraryRequest request = + GetCountriesLibraryRequest + .builder() + .sectionKey(sectionKey) + .build(); + + String _baseUrl = Utils.templateUrl( + this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults()); + String _url = Utils.generateURL( + GetCountriesLibraryRequest.class, + _baseUrl, + "/library/sections/{sectionKey}/country", + request, null); + + HTTPRequest _req = new HTTPRequest(_url, "GET"); + _req.addHeader("Accept", "application/json") + .addHeader("user-agent", + SDKConfiguration.USER_AGENT); + + Optional _hookSecuritySource = this.sdkConfiguration.securitySource(); + Utils.configureSecurity(_req, + this.sdkConfiguration.securitySource.getSecurity()); + HTTPClient _client = this.sdkConfiguration.defaultClient; + HttpRequest _r = + sdkConfiguration.hooks() + .beforeRequest( + new BeforeRequestContextImpl( + "get-countries-library", + Optional.of(List.of()), + _hookSecuritySource), + _req.build()); + HttpResponse _httpRes; + try { + _httpRes = _client.send(_r); + if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "401", "404", "4XX", "5XX")) { + _httpRes = sdkConfiguration.hooks() + .afterError( + new AfterErrorContextImpl( + "get-countries-library", + Optional.of(List.of()), + _hookSecuritySource), + Optional.of(_httpRes), + Optional.empty()); + } else { + _httpRes = sdkConfiguration.hooks() + .afterSuccess( + new AfterSuccessContextImpl( + "get-countries-library", + Optional.of(List.of()), + _hookSecuritySource), + _httpRes); + } + } catch (Exception _e) { + _httpRes = sdkConfiguration.hooks() + .afterError( + new AfterErrorContextImpl( + "get-countries-library", + Optional.of(List.of()), + _hookSecuritySource), + Optional.empty(), + Optional.of(_e)); + } + String _contentType = _httpRes + .headers() + .firstValue("Content-Type") + .orElse("application/octet-stream"); + GetCountriesLibraryResponse.Builder _resBuilder = + GetCountriesLibraryResponse + .builder() + .contentType(_contentType) + .statusCode(_httpRes.statusCode()) + .rawResponse(_httpRes); + + GetCountriesLibraryResponse _res = _resBuilder.build(); + + if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) { + if (Utils.contentTypeMatches(_contentType, "application/json")) { + GetCountriesLibraryResponseBody _out = Utils.mapper().readValue( + Utils.toUtf8AndClose(_httpRes.body()), + new TypeReference() {}); + _res.withObject(Optional.ofNullable(_out)); + return _res; + } else { + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected content-type received: " + _contentType, + Utils.extractByteArrayFromBody(_httpRes)); + } + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) { + if (Utils.contentTypeMatches(_contentType, "application/json")) { + GetCountriesLibraryBadRequest _out = Utils.mapper().readValue( + Utils.toUtf8AndClose(_httpRes.body()), + new TypeReference() {}); + _out.withRawResponse(Optional.ofNullable(_httpRes)); + + throw _out; + } else { + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected content-type received: " + _contentType, + Utils.extractByteArrayFromBody(_httpRes)); + } + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) { + if (Utils.contentTypeMatches(_contentType, "application/json")) { + GetCountriesLibraryUnauthorized _out = Utils.mapper().readValue( + Utils.toUtf8AndClose(_httpRes.body()), + new TypeReference() {}); + _out.withRawResponse(Optional.ofNullable(_httpRes)); + + throw _out; + } else { + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected content-type received: " + _contentType, + Utils.extractByteArrayFromBody(_httpRes)); + } + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX")) { + // no content + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "API error occurred", + Utils.extractByteArrayFromBody(_httpRes)); + } + if (Utils.statusCodeMatches(_httpRes.statusCode(), "5XX")) { + // no content + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "API error occurred", + Utils.extractByteArrayFromBody(_httpRes)); + } + throw new SDKError( + _httpRes, + _httpRes.statusCode(), + "Unexpected status code received: " + _httpRes.statusCode(), + Utils.extractByteArrayFromBody(_httpRes)); + } + + + /** * Search All Libraries * Search the provided query across all library sections, or a single section, and return matches as hubs, split up by type. diff --git a/src/main/java/dev/plexapi/sdk/SDKConfiguration.java b/src/main/java/dev/plexapi/sdk/SDKConfiguration.java index e160248d..de1bf519 100644 --- a/src/main/java/dev/plexapi/sdk/SDKConfiguration.java +++ b/src/main/java/dev/plexapi/sdk/SDKConfiguration.java @@ -43,8 +43,8 @@ class SDKConfiguration { } }; private static final String LANGUAGE = "java"; public static final String OPENAPI_DOC_VERSION = "0.0.3"; - public static final String SDK_VERSION = "0.11.3"; - public static final String GEN_VERSION = "2.495.1"; + public static final String SDK_VERSION = "0.11.4"; + public static final String GEN_VERSION = "2.503.2"; private static final String BASE_PACKAGE = "dev.plexapi.sdk"; public static final String USER_AGENT = String.format("speakeasy-sdk/%s %s %s %s %s", diff --git a/src/main/java/dev/plexapi/sdk/Updater.java b/src/main/java/dev/plexapi/sdk/Updater.java index ed0a40f9..59b3b145 100644 --- a/src/main/java/dev/plexapi/sdk/Updater.java +++ b/src/main/java/dev/plexapi/sdk/Updater.java @@ -526,7 +526,7 @@ public class Updater implements Utils.extractByteArrayFromBody(_httpRes)); } } - if (Utils.statusCodeMatches(_httpRes.statusCode(), "500", "5XX")) { + if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX")) { // no content throw new SDKError( _httpRes, @@ -534,7 +534,7 @@ public class Updater implements "API error occurred", Utils.extractByteArrayFromBody(_httpRes)); } - if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX")) { + if (Utils.statusCodeMatches(_httpRes.statusCode(), "500", "5XX")) { // no content throw new SDKError( _httpRes, diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryBadRequest.java b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryBadRequest.java new file mode 100644 index 00000000..9bce461d --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryBadRequest.java @@ -0,0 +1,173 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.io.InputStream; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +/** + * GetCountriesLibraryBadRequest - Bad Request - A parameter was not specified, or was specified incorrectly. + */ +@SuppressWarnings("serial") +public class GetCountriesLibraryBadRequest extends RuntimeException { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + private Optional> errors; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("RawResponse") + private Optional> rawResponse; + + @JsonCreator + public GetCountriesLibraryBadRequest( + @JsonProperty("errors") Optional> errors, + @JsonProperty("RawResponse") Optional> rawResponse) { + Utils.checkNotNull(errors, "errors"); + Utils.checkNotNull(rawResponse, "rawResponse"); + this.errors = errors; + this.rawResponse = rawResponse; + } + + public GetCountriesLibraryBadRequest() { + this(Optional.empty(), Optional.empty()); + } + + @SuppressWarnings("unchecked") + public Optional> errors(){ + return (Optional>) errors; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @SuppressWarnings("unchecked") + public Optional> rawResponse(){ + return (Optional>) rawResponse; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetCountriesLibraryBadRequest withErrors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public GetCountriesLibraryBadRequest withErrors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetCountriesLibraryBadRequest withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetCountriesLibraryBadRequest withRawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryBadRequest other = (GetCountriesLibraryBadRequest) o; + return + Objects.deepEquals(this.errors, other.errors) && + Objects.deepEquals(this.rawResponse, other.rawResponse); + } + + @Override + public int hashCode() { + return java.util.Objects.hash( + errors, + rawResponse); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryBadRequest.class, + "errors", errors, + "rawResponse", rawResponse); + } + + public final static class Builder { + + private Optional> errors = Optional.empty(); + + private Optional> rawResponse; + + private Builder() { + // force use of static builder() method + } + + public Builder errors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public Builder errors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + public GetCountriesLibraryBadRequest build() { + return new GetCountriesLibraryBadRequest( + errors, + rawResponse); + } + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryErrors.java b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryErrors.java new file mode 100644 index 00000000..b68d534b --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryErrors.java @@ -0,0 +1,194 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + + +public class GetCountriesLibraryErrors { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + private Optional code; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + private Optional message; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + private Optional status; + + @JsonCreator + public GetCountriesLibraryErrors( + @JsonProperty("code") Optional code, + @JsonProperty("message") Optional message, + @JsonProperty("status") Optional status) { + Utils.checkNotNull(code, "code"); + Utils.checkNotNull(message, "message"); + Utils.checkNotNull(status, "status"); + this.code = code; + this.message = message; + this.status = status; + } + + public GetCountriesLibraryErrors() { + this(Optional.empty(), Optional.empty(), Optional.empty()); + } + + @JsonIgnore + public Optional code() { + return code; + } + + @JsonIgnore + public Optional message() { + return message; + } + + @JsonIgnore + public Optional status() { + return status; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetCountriesLibraryErrors withCode(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public GetCountriesLibraryErrors withCode(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public GetCountriesLibraryErrors withMessage(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public GetCountriesLibraryErrors withMessage(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public GetCountriesLibraryErrors withStatus(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public GetCountriesLibraryErrors withStatus(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryErrors other = (GetCountriesLibraryErrors) o; + return + Objects.deepEquals(this.code, other.code) && + Objects.deepEquals(this.message, other.message) && + Objects.deepEquals(this.status, other.status); + } + + @Override + public int hashCode() { + return Objects.hash( + code, + message, + status); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryErrors.class, + "code", code, + "message", message, + "status", status); + } + + public final static class Builder { + + private Optional code = Optional.empty(); + + private Optional message = Optional.empty(); + + private Optional status = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder code(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public Builder code(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public Builder message(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public Builder message(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public Builder status(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public Builder status(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + public GetCountriesLibraryErrors build() { + return new GetCountriesLibraryErrors( + code, + message, + status); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryLibraryErrors.java b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryLibraryErrors.java new file mode 100644 index 00000000..26990d9d --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryLibraryErrors.java @@ -0,0 +1,194 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + + +public class GetCountriesLibraryLibraryErrors { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + private Optional code; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + private Optional message; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + private Optional status; + + @JsonCreator + public GetCountriesLibraryLibraryErrors( + @JsonProperty("code") Optional code, + @JsonProperty("message") Optional message, + @JsonProperty("status") Optional status) { + Utils.checkNotNull(code, "code"); + Utils.checkNotNull(message, "message"); + Utils.checkNotNull(status, "status"); + this.code = code; + this.message = message; + this.status = status; + } + + public GetCountriesLibraryLibraryErrors() { + this(Optional.empty(), Optional.empty(), Optional.empty()); + } + + @JsonIgnore + public Optional code() { + return code; + } + + @JsonIgnore + public Optional message() { + return message; + } + + @JsonIgnore + public Optional status() { + return status; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetCountriesLibraryLibraryErrors withCode(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public GetCountriesLibraryLibraryErrors withCode(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public GetCountriesLibraryLibraryErrors withMessage(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public GetCountriesLibraryLibraryErrors withMessage(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public GetCountriesLibraryLibraryErrors withStatus(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public GetCountriesLibraryLibraryErrors withStatus(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryLibraryErrors other = (GetCountriesLibraryLibraryErrors) o; + return + Objects.deepEquals(this.code, other.code) && + Objects.deepEquals(this.message, other.message) && + Objects.deepEquals(this.status, other.status); + } + + @Override + public int hashCode() { + return Objects.hash( + code, + message, + status); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryLibraryErrors.class, + "code", code, + "message", message, + "status", status); + } + + public final static class Builder { + + private Optional code = Optional.empty(); + + private Optional message = Optional.empty(); + + private Optional status = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder code(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public Builder code(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public Builder message(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public Builder message(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public Builder status(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public Builder status(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + public GetCountriesLibraryLibraryErrors build() { + return new GetCountriesLibraryLibraryErrors( + code, + message, + status); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryUnauthorized.java b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryUnauthorized.java new file mode 100644 index 00000000..4120d84a --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetCountriesLibraryUnauthorized.java @@ -0,0 +1,173 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.io.InputStream; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +/** + * GetCountriesLibraryUnauthorized - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ +@SuppressWarnings("serial") +public class GetCountriesLibraryUnauthorized extends RuntimeException { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + private Optional> errors; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("RawResponse") + private Optional> rawResponse; + + @JsonCreator + public GetCountriesLibraryUnauthorized( + @JsonProperty("errors") Optional> errors, + @JsonProperty("RawResponse") Optional> rawResponse) { + Utils.checkNotNull(errors, "errors"); + Utils.checkNotNull(rawResponse, "rawResponse"); + this.errors = errors; + this.rawResponse = rawResponse; + } + + public GetCountriesLibraryUnauthorized() { + this(Optional.empty(), Optional.empty()); + } + + @SuppressWarnings("unchecked") + public Optional> errors(){ + return (Optional>) errors; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @SuppressWarnings("unchecked") + public Optional> rawResponse(){ + return (Optional>) rawResponse; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetCountriesLibraryUnauthorized withErrors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public GetCountriesLibraryUnauthorized withErrors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetCountriesLibraryUnauthorized withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetCountriesLibraryUnauthorized withRawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryUnauthorized other = (GetCountriesLibraryUnauthorized) o; + return + Objects.deepEquals(this.errors, other.errors) && + Objects.deepEquals(this.rawResponse, other.rawResponse); + } + + @Override + public int hashCode() { + return java.util.Objects.hash( + errors, + rawResponse); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryUnauthorized.class, + "errors", errors, + "rawResponse", rawResponse); + } + + public final static class Builder { + + private Optional> errors = Optional.empty(); + + private Optional> rawResponse; + + private Builder() { + // force use of static builder() method + } + + public Builder errors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public Builder errors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + public GetCountriesLibraryUnauthorized build() { + return new GetCountriesLibraryUnauthorized( + errors, + rawResponse); + } + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryBadRequest.java b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryBadRequest.java new file mode 100644 index 00000000..b5a786df --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryBadRequest.java @@ -0,0 +1,173 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.io.InputStream; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +/** + * GetGenresLibraryBadRequest - Bad Request - A parameter was not specified, or was specified incorrectly. + */ +@SuppressWarnings("serial") +public class GetGenresLibraryBadRequest extends RuntimeException { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + private Optional> errors; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("RawResponse") + private Optional> rawResponse; + + @JsonCreator + public GetGenresLibraryBadRequest( + @JsonProperty("errors") Optional> errors, + @JsonProperty("RawResponse") Optional> rawResponse) { + Utils.checkNotNull(errors, "errors"); + Utils.checkNotNull(rawResponse, "rawResponse"); + this.errors = errors; + this.rawResponse = rawResponse; + } + + public GetGenresLibraryBadRequest() { + this(Optional.empty(), Optional.empty()); + } + + @SuppressWarnings("unchecked") + public Optional> errors(){ + return (Optional>) errors; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @SuppressWarnings("unchecked") + public Optional> rawResponse(){ + return (Optional>) rawResponse; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetGenresLibraryBadRequest withErrors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public GetGenresLibraryBadRequest withErrors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetGenresLibraryBadRequest withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetGenresLibraryBadRequest withRawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryBadRequest other = (GetGenresLibraryBadRequest) o; + return + Objects.deepEquals(this.errors, other.errors) && + Objects.deepEquals(this.rawResponse, other.rawResponse); + } + + @Override + public int hashCode() { + return java.util.Objects.hash( + errors, + rawResponse); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryBadRequest.class, + "errors", errors, + "rawResponse", rawResponse); + } + + public final static class Builder { + + private Optional> errors = Optional.empty(); + + private Optional> rawResponse; + + private Builder() { + // force use of static builder() method + } + + public Builder errors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public Builder errors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + public GetGenresLibraryBadRequest build() { + return new GetGenresLibraryBadRequest( + errors, + rawResponse); + } + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryErrors.java b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryErrors.java new file mode 100644 index 00000000..ed9d6c9e --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryErrors.java @@ -0,0 +1,194 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + + +public class GetGenresLibraryErrors { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + private Optional code; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + private Optional message; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + private Optional status; + + @JsonCreator + public GetGenresLibraryErrors( + @JsonProperty("code") Optional code, + @JsonProperty("message") Optional message, + @JsonProperty("status") Optional status) { + Utils.checkNotNull(code, "code"); + Utils.checkNotNull(message, "message"); + Utils.checkNotNull(status, "status"); + this.code = code; + this.message = message; + this.status = status; + } + + public GetGenresLibraryErrors() { + this(Optional.empty(), Optional.empty(), Optional.empty()); + } + + @JsonIgnore + public Optional code() { + return code; + } + + @JsonIgnore + public Optional message() { + return message; + } + + @JsonIgnore + public Optional status() { + return status; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetGenresLibraryErrors withCode(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public GetGenresLibraryErrors withCode(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public GetGenresLibraryErrors withMessage(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public GetGenresLibraryErrors withMessage(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public GetGenresLibraryErrors withStatus(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public GetGenresLibraryErrors withStatus(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryErrors other = (GetGenresLibraryErrors) o; + return + Objects.deepEquals(this.code, other.code) && + Objects.deepEquals(this.message, other.message) && + Objects.deepEquals(this.status, other.status); + } + + @Override + public int hashCode() { + return Objects.hash( + code, + message, + status); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryErrors.class, + "code", code, + "message", message, + "status", status); + } + + public final static class Builder { + + private Optional code = Optional.empty(); + + private Optional message = Optional.empty(); + + private Optional status = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder code(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public Builder code(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public Builder message(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public Builder message(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public Builder status(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public Builder status(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + public GetGenresLibraryErrors build() { + return new GetGenresLibraryErrors( + code, + message, + status); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryLibraryErrors.java b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryLibraryErrors.java new file mode 100644 index 00000000..9ff449f1 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryLibraryErrors.java @@ -0,0 +1,194 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + + +public class GetGenresLibraryLibraryErrors { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("code") + private Optional code; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("message") + private Optional message; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("status") + private Optional status; + + @JsonCreator + public GetGenresLibraryLibraryErrors( + @JsonProperty("code") Optional code, + @JsonProperty("message") Optional message, + @JsonProperty("status") Optional status) { + Utils.checkNotNull(code, "code"); + Utils.checkNotNull(message, "message"); + Utils.checkNotNull(status, "status"); + this.code = code; + this.message = message; + this.status = status; + } + + public GetGenresLibraryLibraryErrors() { + this(Optional.empty(), Optional.empty(), Optional.empty()); + } + + @JsonIgnore + public Optional code() { + return code; + } + + @JsonIgnore + public Optional message() { + return message; + } + + @JsonIgnore + public Optional status() { + return status; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetGenresLibraryLibraryErrors withCode(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public GetGenresLibraryLibraryErrors withCode(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public GetGenresLibraryLibraryErrors withMessage(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public GetGenresLibraryLibraryErrors withMessage(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public GetGenresLibraryLibraryErrors withStatus(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public GetGenresLibraryLibraryErrors withStatus(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryLibraryErrors other = (GetGenresLibraryLibraryErrors) o; + return + Objects.deepEquals(this.code, other.code) && + Objects.deepEquals(this.message, other.message) && + Objects.deepEquals(this.status, other.status); + } + + @Override + public int hashCode() { + return Objects.hash( + code, + message, + status); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryLibraryErrors.class, + "code", code, + "message", message, + "status", status); + } + + public final static class Builder { + + private Optional code = Optional.empty(); + + private Optional message = Optional.empty(); + + private Optional status = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder code(int code) { + Utils.checkNotNull(code, "code"); + this.code = Optional.ofNullable(code); + return this; + } + + public Builder code(Optional code) { + Utils.checkNotNull(code, "code"); + this.code = code; + return this; + } + + public Builder message(String message) { + Utils.checkNotNull(message, "message"); + this.message = Optional.ofNullable(message); + return this; + } + + public Builder message(Optional message) { + Utils.checkNotNull(message, "message"); + this.message = message; + return this; + } + + public Builder status(int status) { + Utils.checkNotNull(status, "status"); + this.status = Optional.ofNullable(status); + return this; + } + + public Builder status(Optional status) { + Utils.checkNotNull(status, "status"); + this.status = status; + return this; + } + + public GetGenresLibraryLibraryErrors build() { + return new GetGenresLibraryLibraryErrors( + code, + message, + status); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryUnauthorized.java b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryUnauthorized.java new file mode 100644 index 00000000..60062f94 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/errors/GetGenresLibraryUnauthorized.java @@ -0,0 +1,173 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.errors; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.io.InputStream; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +/** + * GetGenresLibraryUnauthorized - Unauthorized - Returned if the X-Plex-Token is missing from the header or query. + */ +@SuppressWarnings("serial") +public class GetGenresLibraryUnauthorized extends RuntimeException { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("errors") + private Optional> errors; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("RawResponse") + private Optional> rawResponse; + + @JsonCreator + public GetGenresLibraryUnauthorized( + @JsonProperty("errors") Optional> errors, + @JsonProperty("RawResponse") Optional> rawResponse) { + Utils.checkNotNull(errors, "errors"); + Utils.checkNotNull(rawResponse, "rawResponse"); + this.errors = errors; + this.rawResponse = rawResponse; + } + + public GetGenresLibraryUnauthorized() { + this(Optional.empty(), Optional.empty()); + } + + @SuppressWarnings("unchecked") + public Optional> errors(){ + return (Optional>) errors; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @SuppressWarnings("unchecked") + public Optional> rawResponse(){ + return (Optional>) rawResponse; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetGenresLibraryUnauthorized withErrors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public GetGenresLibraryUnauthorized withErrors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetGenresLibraryUnauthorized withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetGenresLibraryUnauthorized withRawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryUnauthorized other = (GetGenresLibraryUnauthorized) o; + return + Objects.deepEquals(this.errors, other.errors) && + Objects.deepEquals(this.rawResponse, other.rawResponse); + } + + @Override + public int hashCode() { + return java.util.Objects.hash( + errors, + rawResponse); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryUnauthorized.class, + "errors", errors, + "rawResponse", rawResponse); + } + + public final static class Builder { + + private Optional> errors = Optional.empty(); + + private Optional> rawResponse; + + private Builder() { + // force use of static builder() method + } + + public Builder errors(List errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = Optional.ofNullable(errors); + return this; + } + + public Builder errors(Optional> errors) { + Utils.checkNotNull(errors, "errors"); + this.errors = errors; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = Optional.ofNullable(rawResponse); + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(Optional> rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + public GetGenresLibraryUnauthorized build() { + return new GetGenresLibraryUnauthorized( + errors, + rawResponse); + } + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryDirectory.java b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryDirectory.java new file mode 100644 index 00000000..aefca01d --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryDirectory.java @@ -0,0 +1,147 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + + +public class GetCountriesLibraryDirectory { + + @JsonProperty("fastKey") + private String fastKey; + + @JsonProperty("key") + private String key; + + @JsonProperty("title") + private String title; + + @JsonCreator + public GetCountriesLibraryDirectory( + @JsonProperty("fastKey") String fastKey, + @JsonProperty("key") String key, + @JsonProperty("title") String title) { + Utils.checkNotNull(fastKey, "fastKey"); + Utils.checkNotNull(key, "key"); + Utils.checkNotNull(title, "title"); + this.fastKey = fastKey; + this.key = key; + this.title = title; + } + + @JsonIgnore + public String fastKey() { + return fastKey; + } + + @JsonIgnore + public String key() { + return key; + } + + @JsonIgnore + public String title() { + return title; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetCountriesLibraryDirectory withFastKey(String fastKey) { + Utils.checkNotNull(fastKey, "fastKey"); + this.fastKey = fastKey; + return this; + } + + public GetCountriesLibraryDirectory withKey(String key) { + Utils.checkNotNull(key, "key"); + this.key = key; + return this; + } + + public GetCountriesLibraryDirectory withTitle(String title) { + Utils.checkNotNull(title, "title"); + this.title = title; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryDirectory other = (GetCountriesLibraryDirectory) o; + return + Objects.deepEquals(this.fastKey, other.fastKey) && + Objects.deepEquals(this.key, other.key) && + Objects.deepEquals(this.title, other.title); + } + + @Override + public int hashCode() { + return Objects.hash( + fastKey, + key, + title); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryDirectory.class, + "fastKey", fastKey, + "key", key, + "title", title); + } + + public final static class Builder { + + private String fastKey; + + private String key; + + private String title; + + private Builder() { + // force use of static builder() method + } + + public Builder fastKey(String fastKey) { + Utils.checkNotNull(fastKey, "fastKey"); + this.fastKey = fastKey; + return this; + } + + public Builder key(String key) { + Utils.checkNotNull(key, "key"); + this.key = key; + return this; + } + + public Builder title(String title) { + Utils.checkNotNull(title, "title"); + this.title = title; + return this; + } + + public GetCountriesLibraryDirectory build() { + return new GetCountriesLibraryDirectory( + fastKey, + key, + title); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryMediaContainer.java b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryMediaContainer.java new file mode 100644 index 00000000..3e12a572 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryMediaContainer.java @@ -0,0 +1,560 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.Integer; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + + +public class GetCountriesLibraryMediaContainer { + + @JsonProperty("size") + private double size; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("offset") + private Optional offset; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("totalSize") + private Optional totalSize; + + @JsonProperty("identifier") + private String identifier; + + @JsonProperty("allowSync") + private boolean allowSync; + + @JsonProperty("art") + private String art; + + @JsonProperty("content") + private String content; + + @JsonProperty("mediaTagPrefix") + private String mediaTagPrefix; + + @JsonProperty("mediaTagVersion") + private long mediaTagVersion; + + @JsonProperty("nocache") + private boolean nocache; + + @JsonProperty("thumb") + private String thumb; + + @JsonProperty("title1") + private String title1; + + @JsonProperty("title2") + private String title2; + + @JsonProperty("viewGroup") + private String viewGroup; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Directory") + private Optional> directory; + + @JsonCreator + public GetCountriesLibraryMediaContainer( + @JsonProperty("size") double size, + @JsonProperty("offset") Optional offset, + @JsonProperty("totalSize") Optional totalSize, + @JsonProperty("identifier") String identifier, + @JsonProperty("allowSync") boolean allowSync, + @JsonProperty("art") String art, + @JsonProperty("content") String content, + @JsonProperty("mediaTagPrefix") String mediaTagPrefix, + @JsonProperty("mediaTagVersion") long mediaTagVersion, + @JsonProperty("nocache") boolean nocache, + @JsonProperty("thumb") String thumb, + @JsonProperty("title1") String title1, + @JsonProperty("title2") String title2, + @JsonProperty("viewGroup") String viewGroup, + @JsonProperty("Directory") Optional> directory) { + Utils.checkNotNull(size, "size"); + Utils.checkNotNull(offset, "offset"); + Utils.checkNotNull(totalSize, "totalSize"); + Utils.checkNotNull(identifier, "identifier"); + Utils.checkNotNull(allowSync, "allowSync"); + Utils.checkNotNull(art, "art"); + Utils.checkNotNull(content, "content"); + Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); + Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); + Utils.checkNotNull(nocache, "nocache"); + Utils.checkNotNull(thumb, "thumb"); + Utils.checkNotNull(title1, "title1"); + Utils.checkNotNull(title2, "title2"); + Utils.checkNotNull(viewGroup, "viewGroup"); + Utils.checkNotNull(directory, "directory"); + this.size = size; + this.offset = offset; + this.totalSize = totalSize; + this.identifier = identifier; + this.allowSync = allowSync; + this.art = art; + this.content = content; + this.mediaTagPrefix = mediaTagPrefix; + this.mediaTagVersion = mediaTagVersion; + this.nocache = nocache; + this.thumb = thumb; + this.title1 = title1; + this.title2 = title2; + this.viewGroup = viewGroup; + this.directory = directory; + } + + public GetCountriesLibraryMediaContainer( + double size, + String identifier, + boolean allowSync, + String art, + String content, + String mediaTagPrefix, + long mediaTagVersion, + boolean nocache, + String thumb, + String title1, + String title2, + String viewGroup) { + this(size, Optional.empty(), Optional.empty(), identifier, allowSync, art, content, mediaTagPrefix, mediaTagVersion, nocache, thumb, title1, title2, viewGroup, Optional.empty()); + } + + @JsonIgnore + public double size() { + return size; + } + + @JsonIgnore + public Optional offset() { + return offset; + } + + @JsonIgnore + public Optional totalSize() { + return totalSize; + } + + @JsonIgnore + public String identifier() { + return identifier; + } + + @JsonIgnore + public boolean allowSync() { + return allowSync; + } + + @JsonIgnore + public String art() { + return art; + } + + @JsonIgnore + public String content() { + return content; + } + + @JsonIgnore + public String mediaTagPrefix() { + return mediaTagPrefix; + } + + @JsonIgnore + public long mediaTagVersion() { + return mediaTagVersion; + } + + @JsonIgnore + public boolean nocache() { + return nocache; + } + + @JsonIgnore + public String thumb() { + return thumb; + } + + @JsonIgnore + public String title1() { + return title1; + } + + @JsonIgnore + public String title2() { + return title2; + } + + @JsonIgnore + public String viewGroup() { + return viewGroup; + } + + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional> directory() { + return (Optional>) directory; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetCountriesLibraryMediaContainer withSize(double size) { + Utils.checkNotNull(size, "size"); + this.size = size; + return this; + } + + public GetCountriesLibraryMediaContainer withOffset(int offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = Optional.ofNullable(offset); + return this; + } + + public GetCountriesLibraryMediaContainer withOffset(Optional offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = offset; + return this; + } + + public GetCountriesLibraryMediaContainer withTotalSize(int totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = Optional.ofNullable(totalSize); + return this; + } + + public GetCountriesLibraryMediaContainer withTotalSize(Optional totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = totalSize; + return this; + } + + public GetCountriesLibraryMediaContainer withIdentifier(String identifier) { + Utils.checkNotNull(identifier, "identifier"); + this.identifier = identifier; + return this; + } + + public GetCountriesLibraryMediaContainer withAllowSync(boolean allowSync) { + Utils.checkNotNull(allowSync, "allowSync"); + this.allowSync = allowSync; + return this; + } + + public GetCountriesLibraryMediaContainer withArt(String art) { + Utils.checkNotNull(art, "art"); + this.art = art; + return this; + } + + public GetCountriesLibraryMediaContainer withContent(String content) { + Utils.checkNotNull(content, "content"); + this.content = content; + return this; + } + + public GetCountriesLibraryMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + public GetCountriesLibraryMediaContainer withMediaTagVersion(long mediaTagVersion) { + Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); + this.mediaTagVersion = mediaTagVersion; + return this; + } + + public GetCountriesLibraryMediaContainer withNocache(boolean nocache) { + Utils.checkNotNull(nocache, "nocache"); + this.nocache = nocache; + return this; + } + + public GetCountriesLibraryMediaContainer withThumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } + + public GetCountriesLibraryMediaContainer withTitle1(String title1) { + Utils.checkNotNull(title1, "title1"); + this.title1 = title1; + return this; + } + + public GetCountriesLibraryMediaContainer withTitle2(String title2) { + Utils.checkNotNull(title2, "title2"); + this.title2 = title2; + return this; + } + + public GetCountriesLibraryMediaContainer withViewGroup(String viewGroup) { + Utils.checkNotNull(viewGroup, "viewGroup"); + this.viewGroup = viewGroup; + return this; + } + + public GetCountriesLibraryMediaContainer withDirectory(List directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + public GetCountriesLibraryMediaContainer withDirectory(Optional> directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryMediaContainer other = (GetCountriesLibraryMediaContainer) o; + return + Objects.deepEquals(this.size, other.size) && + Objects.deepEquals(this.offset, other.offset) && + Objects.deepEquals(this.totalSize, other.totalSize) && + Objects.deepEquals(this.identifier, other.identifier) && + Objects.deepEquals(this.allowSync, other.allowSync) && + Objects.deepEquals(this.art, other.art) && + Objects.deepEquals(this.content, other.content) && + Objects.deepEquals(this.mediaTagPrefix, other.mediaTagPrefix) && + Objects.deepEquals(this.mediaTagVersion, other.mediaTagVersion) && + Objects.deepEquals(this.nocache, other.nocache) && + Objects.deepEquals(this.thumb, other.thumb) && + Objects.deepEquals(this.title1, other.title1) && + Objects.deepEquals(this.title2, other.title2) && + Objects.deepEquals(this.viewGroup, other.viewGroup) && + Objects.deepEquals(this.directory, other.directory); + } + + @Override + public int hashCode() { + return Objects.hash( + size, + offset, + totalSize, + identifier, + allowSync, + art, + content, + mediaTagPrefix, + mediaTagVersion, + nocache, + thumb, + title1, + title2, + viewGroup, + directory); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryMediaContainer.class, + "size", size, + "offset", offset, + "totalSize", totalSize, + "identifier", identifier, + "allowSync", allowSync, + "art", art, + "content", content, + "mediaTagPrefix", mediaTagPrefix, + "mediaTagVersion", mediaTagVersion, + "nocache", nocache, + "thumb", thumb, + "title1", title1, + "title2", title2, + "viewGroup", viewGroup, + "directory", directory); + } + + public final static class Builder { + + private Double size; + + private Optional offset = Optional.empty(); + + private Optional totalSize = Optional.empty(); + + private String identifier; + + private Boolean allowSync; + + private String art; + + private String content; + + private String mediaTagPrefix; + + private Long mediaTagVersion; + + private Boolean nocache; + + private String thumb; + + private String title1; + + private String title2; + + private String viewGroup; + + private Optional> directory = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder size(double size) { + Utils.checkNotNull(size, "size"); + this.size = size; + return this; + } + + public Builder offset(int offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = Optional.ofNullable(offset); + return this; + } + + public Builder offset(Optional offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = offset; + return this; + } + + public Builder totalSize(int totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = Optional.ofNullable(totalSize); + return this; + } + + public Builder totalSize(Optional totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = totalSize; + return this; + } + + public Builder identifier(String identifier) { + Utils.checkNotNull(identifier, "identifier"); + this.identifier = identifier; + return this; + } + + public Builder allowSync(boolean allowSync) { + Utils.checkNotNull(allowSync, "allowSync"); + this.allowSync = allowSync; + return this; + } + + public Builder art(String art) { + Utils.checkNotNull(art, "art"); + this.art = art; + return this; + } + + public Builder content(String content) { + Utils.checkNotNull(content, "content"); + this.content = content; + return this; + } + + public Builder mediaTagPrefix(String mediaTagPrefix) { + Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + public Builder mediaTagVersion(long mediaTagVersion) { + Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); + this.mediaTagVersion = mediaTagVersion; + return this; + } + + public Builder nocache(boolean nocache) { + Utils.checkNotNull(nocache, "nocache"); + this.nocache = nocache; + return this; + } + + public Builder thumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } + + public Builder title1(String title1) { + Utils.checkNotNull(title1, "title1"); + this.title1 = title1; + return this; + } + + public Builder title2(String title2) { + Utils.checkNotNull(title2, "title2"); + this.title2 = title2; + return this; + } + + public Builder viewGroup(String viewGroup) { + Utils.checkNotNull(viewGroup, "viewGroup"); + this.viewGroup = viewGroup; + return this; + } + + public Builder directory(List directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + public Builder directory(Optional> directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + public GetCountriesLibraryMediaContainer build() { + return new GetCountriesLibraryMediaContainer( + size, + offset, + totalSize, + identifier, + allowSync, + art, + content, + mediaTagPrefix, + mediaTagVersion, + nocache, + thumb, + title1, + title2, + viewGroup, + directory); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequest.java b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequest.java new file mode 100644 index 00000000..d5ac43a3 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequest.java @@ -0,0 +1,110 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import dev.plexapi.sdk.utils.SpeakeasyMetadata; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + + +public class GetCountriesLibraryRequest { + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey") + private int sectionKey; + + @JsonCreator + public GetCountriesLibraryRequest( + int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + } + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + @JsonIgnore + public int sectionKey() { + return sectionKey; + } + + public final static Builder builder() { + return new Builder(); + } + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + public GetCountriesLibraryRequest withSectionKey(int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryRequest other = (GetCountriesLibraryRequest) o; + return + Objects.deepEquals(this.sectionKey, other.sectionKey); + } + + @Override + public int hashCode() { + return Objects.hash( + sectionKey); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryRequest.class, + "sectionKey", sectionKey); + } + + public final static class Builder { + + private Integer sectionKey; + + private Builder() { + // force use of static builder() method + } + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + public Builder sectionKey(int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + return this; + } + + public GetCountriesLibraryRequest build() { + return new GetCountriesLibraryRequest( + sectionKey); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequestBuilder.java b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequestBuilder.java new file mode 100644 index 00000000..786fd4e5 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryRequestBuilder.java @@ -0,0 +1,30 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; + +public class GetCountriesLibraryRequestBuilder { + + private Integer sectionKey; + private final SDKMethodInterfaces.MethodCallGetCountriesLibrary sdk; + + public GetCountriesLibraryRequestBuilder(SDKMethodInterfaces.MethodCallGetCountriesLibrary sdk) { + this.sdk = sdk; + } + + public GetCountriesLibraryRequestBuilder sectionKey(int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + return this; + } + + public GetCountriesLibraryResponse call() throws Exception { + + return sdk.getCountriesLibrary( + sectionKey); + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponse.java b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponse.java new file mode 100644 index 00000000..4283bac2 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponse.java @@ -0,0 +1,251 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import dev.plexapi.sdk.utils.Response; +import dev.plexapi.sdk.utils.Utils; +import java.io.InputStream; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.Objects; +import java.util.Optional; + + +public class GetCountriesLibraryResponse implements Response { + + /** + * HTTP response content type for this operation + */ + private String contentType; + + /** + * HTTP response status code for this operation + */ + private int statusCode; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + private HttpResponse rawResponse; + + /** + * Successful response containing media container data. + */ + private Optional object; + + @JsonCreator + public GetCountriesLibraryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional object) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(object, "object"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.object = object; + } + + public GetCountriesLibraryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse) { + this(contentType, statusCode, rawResponse, Optional.empty()); + } + + /** + * HTTP response content type for this operation + */ + @JsonIgnore + public String contentType() { + return contentType; + } + + /** + * HTTP response status code for this operation + */ + @JsonIgnore + public int statusCode() { + return statusCode; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonIgnore + public HttpResponse rawResponse() { + return rawResponse; + } + + /** + * Successful response containing media container data. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional object() { + return (Optional) object; + } + + public final static Builder builder() { + return new Builder(); + } + + /** + * HTTP response content type for this operation + */ + public GetCountriesLibraryResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public GetCountriesLibraryResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetCountriesLibraryResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Successful response containing media container data. + */ + public GetCountriesLibraryResponse withObject(GetCountriesLibraryResponseBody object) { + Utils.checkNotNull(object, "object"); + this.object = Optional.ofNullable(object); + return this; + } + + /** + * Successful response containing media container data. + */ + public GetCountriesLibraryResponse withObject(Optional object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryResponse other = (GetCountriesLibraryResponse) o; + return + Objects.deepEquals(this.contentType, other.contentType) && + Objects.deepEquals(this.statusCode, other.statusCode) && + Objects.deepEquals(this.rawResponse, other.rawResponse) && + Objects.deepEquals(this.object, other.object); + } + + @Override + public int hashCode() { + return Objects.hash( + contentType, + statusCode, + rawResponse, + object); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "object", object); + } + + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional object = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + /** + * HTTP response content type for this operation + */ + public Builder contentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public Builder statusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Successful response containing media container data. + */ + public Builder object(GetCountriesLibraryResponseBody object) { + Utils.checkNotNull(object, "object"); + this.object = Optional.ofNullable(object); + return this; + } + + /** + * Successful response containing media container data. + */ + public Builder object(Optional object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + public GetCountriesLibraryResponse build() { + return new GetCountriesLibraryResponse( + contentType, + statusCode, + rawResponse, + object); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponseBody.java b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponseBody.java new file mode 100644 index 00000000..2ae9ab4a --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetCountriesLibraryResponseBody.java @@ -0,0 +1,114 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Objects; +import java.util.Optional; + +/** + * GetCountriesLibraryResponseBody - Successful response containing media container data. + */ + +public class GetCountriesLibraryResponseBody { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + private Optional mediaContainer; + + @JsonCreator + public GetCountriesLibraryResponseBody( + @JsonProperty("MediaContainer") Optional mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = mediaContainer; + } + + public GetCountriesLibraryResponseBody() { + this(Optional.empty()); + } + + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional mediaContainer() { + return (Optional) mediaContainer; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetCountriesLibraryResponseBody withMediaContainer(GetCountriesLibraryMediaContainer mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = Optional.ofNullable(mediaContainer); + return this; + } + + public GetCountriesLibraryResponseBody withMediaContainer(Optional mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = mediaContainer; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetCountriesLibraryResponseBody other = (GetCountriesLibraryResponseBody) o; + return + Objects.deepEquals(this.mediaContainer, other.mediaContainer); + } + + @Override + public int hashCode() { + return Objects.hash( + mediaContainer); + } + + @Override + public String toString() { + return Utils.toString(GetCountriesLibraryResponseBody.class, + "mediaContainer", mediaContainer); + } + + public final static class Builder { + + private Optional mediaContainer = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder mediaContainer(GetCountriesLibraryMediaContainer mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = Optional.ofNullable(mediaContainer); + return this; + } + + public Builder mediaContainer(Optional mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = mediaContainer; + return this; + } + + public GetCountriesLibraryResponseBody build() { + return new GetCountriesLibraryResponseBody( + mediaContainer); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryDirectory.java b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryDirectory.java new file mode 100644 index 00000000..de089835 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryDirectory.java @@ -0,0 +1,176 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + + +public class GetGenresLibraryDirectory { + + @JsonProperty("fastKey") + private String fastKey; + + @JsonProperty("key") + private String key; + + @JsonProperty("title") + private String title; + + @JsonProperty("type") + private String type; + + @JsonCreator + public GetGenresLibraryDirectory( + @JsonProperty("fastKey") String fastKey, + @JsonProperty("key") String key, + @JsonProperty("title") String title, + @JsonProperty("type") String type) { + Utils.checkNotNull(fastKey, "fastKey"); + Utils.checkNotNull(key, "key"); + Utils.checkNotNull(title, "title"); + Utils.checkNotNull(type, "type"); + this.fastKey = fastKey; + this.key = key; + this.title = title; + this.type = type; + } + + @JsonIgnore + public String fastKey() { + return fastKey; + } + + @JsonIgnore + public String key() { + return key; + } + + @JsonIgnore + public String title() { + return title; + } + + @JsonIgnore + public String type() { + return type; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetGenresLibraryDirectory withFastKey(String fastKey) { + Utils.checkNotNull(fastKey, "fastKey"); + this.fastKey = fastKey; + return this; + } + + public GetGenresLibraryDirectory withKey(String key) { + Utils.checkNotNull(key, "key"); + this.key = key; + return this; + } + + public GetGenresLibraryDirectory withTitle(String title) { + Utils.checkNotNull(title, "title"); + this.title = title; + return this; + } + + public GetGenresLibraryDirectory withType(String type) { + Utils.checkNotNull(type, "type"); + this.type = type; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryDirectory other = (GetGenresLibraryDirectory) o; + return + Objects.deepEquals(this.fastKey, other.fastKey) && + Objects.deepEquals(this.key, other.key) && + Objects.deepEquals(this.title, other.title) && + Objects.deepEquals(this.type, other.type); + } + + @Override + public int hashCode() { + return Objects.hash( + fastKey, + key, + title, + type); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryDirectory.class, + "fastKey", fastKey, + "key", key, + "title", title, + "type", type); + } + + public final static class Builder { + + private String fastKey; + + private String key; + + private String title; + + private String type; + + private Builder() { + // force use of static builder() method + } + + public Builder fastKey(String fastKey) { + Utils.checkNotNull(fastKey, "fastKey"); + this.fastKey = fastKey; + return this; + } + + public Builder key(String key) { + Utils.checkNotNull(key, "key"); + this.key = key; + return this; + } + + public Builder title(String title) { + Utils.checkNotNull(title, "title"); + this.title = title; + return this; + } + + public Builder type(String type) { + Utils.checkNotNull(type, "type"); + this.type = type; + return this; + } + + public GetGenresLibraryDirectory build() { + return new GetGenresLibraryDirectory( + fastKey, + key, + title, + type); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryMediaContainer.java b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryMediaContainer.java new file mode 100644 index 00000000..15390758 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryMediaContainer.java @@ -0,0 +1,560 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.Integer; +import java.lang.Long; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + + +public class GetGenresLibraryMediaContainer { + + @JsonProperty("size") + private double size; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("offset") + private Optional offset; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("totalSize") + private Optional totalSize; + + @JsonProperty("identifier") + private String identifier; + + @JsonProperty("allowSync") + private boolean allowSync; + + @JsonProperty("art") + private String art; + + @JsonProperty("content") + private String content; + + @JsonProperty("mediaTagPrefix") + private String mediaTagPrefix; + + @JsonProperty("mediaTagVersion") + private long mediaTagVersion; + + @JsonProperty("nocache") + private boolean nocache; + + @JsonProperty("thumb") + private String thumb; + + @JsonProperty("title1") + private String title1; + + @JsonProperty("title2") + private String title2; + + @JsonProperty("viewGroup") + private String viewGroup; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("Directory") + private Optional> directory; + + @JsonCreator + public GetGenresLibraryMediaContainer( + @JsonProperty("size") double size, + @JsonProperty("offset") Optional offset, + @JsonProperty("totalSize") Optional totalSize, + @JsonProperty("identifier") String identifier, + @JsonProperty("allowSync") boolean allowSync, + @JsonProperty("art") String art, + @JsonProperty("content") String content, + @JsonProperty("mediaTagPrefix") String mediaTagPrefix, + @JsonProperty("mediaTagVersion") long mediaTagVersion, + @JsonProperty("nocache") boolean nocache, + @JsonProperty("thumb") String thumb, + @JsonProperty("title1") String title1, + @JsonProperty("title2") String title2, + @JsonProperty("viewGroup") String viewGroup, + @JsonProperty("Directory") Optional> directory) { + Utils.checkNotNull(size, "size"); + Utils.checkNotNull(offset, "offset"); + Utils.checkNotNull(totalSize, "totalSize"); + Utils.checkNotNull(identifier, "identifier"); + Utils.checkNotNull(allowSync, "allowSync"); + Utils.checkNotNull(art, "art"); + Utils.checkNotNull(content, "content"); + Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); + Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); + Utils.checkNotNull(nocache, "nocache"); + Utils.checkNotNull(thumb, "thumb"); + Utils.checkNotNull(title1, "title1"); + Utils.checkNotNull(title2, "title2"); + Utils.checkNotNull(viewGroup, "viewGroup"); + Utils.checkNotNull(directory, "directory"); + this.size = size; + this.offset = offset; + this.totalSize = totalSize; + this.identifier = identifier; + this.allowSync = allowSync; + this.art = art; + this.content = content; + this.mediaTagPrefix = mediaTagPrefix; + this.mediaTagVersion = mediaTagVersion; + this.nocache = nocache; + this.thumb = thumb; + this.title1 = title1; + this.title2 = title2; + this.viewGroup = viewGroup; + this.directory = directory; + } + + public GetGenresLibraryMediaContainer( + double size, + String identifier, + boolean allowSync, + String art, + String content, + String mediaTagPrefix, + long mediaTagVersion, + boolean nocache, + String thumb, + String title1, + String title2, + String viewGroup) { + this(size, Optional.empty(), Optional.empty(), identifier, allowSync, art, content, mediaTagPrefix, mediaTagVersion, nocache, thumb, title1, title2, viewGroup, Optional.empty()); + } + + @JsonIgnore + public double size() { + return size; + } + + @JsonIgnore + public Optional offset() { + return offset; + } + + @JsonIgnore + public Optional totalSize() { + return totalSize; + } + + @JsonIgnore + public String identifier() { + return identifier; + } + + @JsonIgnore + public boolean allowSync() { + return allowSync; + } + + @JsonIgnore + public String art() { + return art; + } + + @JsonIgnore + public String content() { + return content; + } + + @JsonIgnore + public String mediaTagPrefix() { + return mediaTagPrefix; + } + + @JsonIgnore + public long mediaTagVersion() { + return mediaTagVersion; + } + + @JsonIgnore + public boolean nocache() { + return nocache; + } + + @JsonIgnore + public String thumb() { + return thumb; + } + + @JsonIgnore + public String title1() { + return title1; + } + + @JsonIgnore + public String title2() { + return title2; + } + + @JsonIgnore + public String viewGroup() { + return viewGroup; + } + + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional> directory() { + return (Optional>) directory; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetGenresLibraryMediaContainer withSize(double size) { + Utils.checkNotNull(size, "size"); + this.size = size; + return this; + } + + public GetGenresLibraryMediaContainer withOffset(int offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = Optional.ofNullable(offset); + return this; + } + + public GetGenresLibraryMediaContainer withOffset(Optional offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = offset; + return this; + } + + public GetGenresLibraryMediaContainer withTotalSize(int totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = Optional.ofNullable(totalSize); + return this; + } + + public GetGenresLibraryMediaContainer withTotalSize(Optional totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = totalSize; + return this; + } + + public GetGenresLibraryMediaContainer withIdentifier(String identifier) { + Utils.checkNotNull(identifier, "identifier"); + this.identifier = identifier; + return this; + } + + public GetGenresLibraryMediaContainer withAllowSync(boolean allowSync) { + Utils.checkNotNull(allowSync, "allowSync"); + this.allowSync = allowSync; + return this; + } + + public GetGenresLibraryMediaContainer withArt(String art) { + Utils.checkNotNull(art, "art"); + this.art = art; + return this; + } + + public GetGenresLibraryMediaContainer withContent(String content) { + Utils.checkNotNull(content, "content"); + this.content = content; + return this; + } + + public GetGenresLibraryMediaContainer withMediaTagPrefix(String mediaTagPrefix) { + Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + public GetGenresLibraryMediaContainer withMediaTagVersion(long mediaTagVersion) { + Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); + this.mediaTagVersion = mediaTagVersion; + return this; + } + + public GetGenresLibraryMediaContainer withNocache(boolean nocache) { + Utils.checkNotNull(nocache, "nocache"); + this.nocache = nocache; + return this; + } + + public GetGenresLibraryMediaContainer withThumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } + + public GetGenresLibraryMediaContainer withTitle1(String title1) { + Utils.checkNotNull(title1, "title1"); + this.title1 = title1; + return this; + } + + public GetGenresLibraryMediaContainer withTitle2(String title2) { + Utils.checkNotNull(title2, "title2"); + this.title2 = title2; + return this; + } + + public GetGenresLibraryMediaContainer withViewGroup(String viewGroup) { + Utils.checkNotNull(viewGroup, "viewGroup"); + this.viewGroup = viewGroup; + return this; + } + + public GetGenresLibraryMediaContainer withDirectory(List directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + public GetGenresLibraryMediaContainer withDirectory(Optional> directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryMediaContainer other = (GetGenresLibraryMediaContainer) o; + return + Objects.deepEquals(this.size, other.size) && + Objects.deepEquals(this.offset, other.offset) && + Objects.deepEquals(this.totalSize, other.totalSize) && + Objects.deepEquals(this.identifier, other.identifier) && + Objects.deepEquals(this.allowSync, other.allowSync) && + Objects.deepEquals(this.art, other.art) && + Objects.deepEquals(this.content, other.content) && + Objects.deepEquals(this.mediaTagPrefix, other.mediaTagPrefix) && + Objects.deepEquals(this.mediaTagVersion, other.mediaTagVersion) && + Objects.deepEquals(this.nocache, other.nocache) && + Objects.deepEquals(this.thumb, other.thumb) && + Objects.deepEquals(this.title1, other.title1) && + Objects.deepEquals(this.title2, other.title2) && + Objects.deepEquals(this.viewGroup, other.viewGroup) && + Objects.deepEquals(this.directory, other.directory); + } + + @Override + public int hashCode() { + return Objects.hash( + size, + offset, + totalSize, + identifier, + allowSync, + art, + content, + mediaTagPrefix, + mediaTagVersion, + nocache, + thumb, + title1, + title2, + viewGroup, + directory); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryMediaContainer.class, + "size", size, + "offset", offset, + "totalSize", totalSize, + "identifier", identifier, + "allowSync", allowSync, + "art", art, + "content", content, + "mediaTagPrefix", mediaTagPrefix, + "mediaTagVersion", mediaTagVersion, + "nocache", nocache, + "thumb", thumb, + "title1", title1, + "title2", title2, + "viewGroup", viewGroup, + "directory", directory); + } + + public final static class Builder { + + private Double size; + + private Optional offset = Optional.empty(); + + private Optional totalSize = Optional.empty(); + + private String identifier; + + private Boolean allowSync; + + private String art; + + private String content; + + private String mediaTagPrefix; + + private Long mediaTagVersion; + + private Boolean nocache; + + private String thumb; + + private String title1; + + private String title2; + + private String viewGroup; + + private Optional> directory = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder size(double size) { + Utils.checkNotNull(size, "size"); + this.size = size; + return this; + } + + public Builder offset(int offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = Optional.ofNullable(offset); + return this; + } + + public Builder offset(Optional offset) { + Utils.checkNotNull(offset, "offset"); + this.offset = offset; + return this; + } + + public Builder totalSize(int totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = Optional.ofNullable(totalSize); + return this; + } + + public Builder totalSize(Optional totalSize) { + Utils.checkNotNull(totalSize, "totalSize"); + this.totalSize = totalSize; + return this; + } + + public Builder identifier(String identifier) { + Utils.checkNotNull(identifier, "identifier"); + this.identifier = identifier; + return this; + } + + public Builder allowSync(boolean allowSync) { + Utils.checkNotNull(allowSync, "allowSync"); + this.allowSync = allowSync; + return this; + } + + public Builder art(String art) { + Utils.checkNotNull(art, "art"); + this.art = art; + return this; + } + + public Builder content(String content) { + Utils.checkNotNull(content, "content"); + this.content = content; + return this; + } + + public Builder mediaTagPrefix(String mediaTagPrefix) { + Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix"); + this.mediaTagPrefix = mediaTagPrefix; + return this; + } + + public Builder mediaTagVersion(long mediaTagVersion) { + Utils.checkNotNull(mediaTagVersion, "mediaTagVersion"); + this.mediaTagVersion = mediaTagVersion; + return this; + } + + public Builder nocache(boolean nocache) { + Utils.checkNotNull(nocache, "nocache"); + this.nocache = nocache; + return this; + } + + public Builder thumb(String thumb) { + Utils.checkNotNull(thumb, "thumb"); + this.thumb = thumb; + return this; + } + + public Builder title1(String title1) { + Utils.checkNotNull(title1, "title1"); + this.title1 = title1; + return this; + } + + public Builder title2(String title2) { + Utils.checkNotNull(title2, "title2"); + this.title2 = title2; + return this; + } + + public Builder viewGroup(String viewGroup) { + Utils.checkNotNull(viewGroup, "viewGroup"); + this.viewGroup = viewGroup; + return this; + } + + public Builder directory(List directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = Optional.ofNullable(directory); + return this; + } + + public Builder directory(Optional> directory) { + Utils.checkNotNull(directory, "directory"); + this.directory = directory; + return this; + } + + public GetGenresLibraryMediaContainer build() { + return new GetGenresLibraryMediaContainer( + size, + offset, + totalSize, + identifier, + allowSync, + art, + content, + mediaTagPrefix, + mediaTagVersion, + nocache, + thumb, + title1, + title2, + viewGroup, + directory); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequest.java b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequest.java new file mode 100644 index 00000000..d5567d8e --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequest.java @@ -0,0 +1,110 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import dev.plexapi.sdk.utils.SpeakeasyMetadata; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + + +public class GetGenresLibraryRequest { + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + @SpeakeasyMetadata("pathParam:style=simple,explode=false,name=sectionKey") + private int sectionKey; + + @JsonCreator + public GetGenresLibraryRequest( + int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + } + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + @JsonIgnore + public int sectionKey() { + return sectionKey; + } + + public final static Builder builder() { + return new Builder(); + } + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + public GetGenresLibraryRequest withSectionKey(int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryRequest other = (GetGenresLibraryRequest) o; + return + Objects.deepEquals(this.sectionKey, other.sectionKey); + } + + @Override + public int hashCode() { + return Objects.hash( + sectionKey); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryRequest.class, + "sectionKey", sectionKey); + } + + public final static class Builder { + + private Integer sectionKey; + + private Builder() { + // force use of static builder() method + } + + /** + * The unique key of the Plex library. + * Note: This is unique in the context of the Plex server. + * + */ + public Builder sectionKey(int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + return this; + } + + public GetGenresLibraryRequest build() { + return new GetGenresLibraryRequest( + sectionKey); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequestBuilder.java b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequestBuilder.java new file mode 100644 index 00000000..7dd7175b --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryRequestBuilder.java @@ -0,0 +1,30 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + +import dev.plexapi.sdk.utils.Utils; +import java.lang.Integer; + +public class GetGenresLibraryRequestBuilder { + + private Integer sectionKey; + private final SDKMethodInterfaces.MethodCallGetGenresLibrary sdk; + + public GetGenresLibraryRequestBuilder(SDKMethodInterfaces.MethodCallGetGenresLibrary sdk) { + this.sdk = sdk; + } + + public GetGenresLibraryRequestBuilder sectionKey(int sectionKey) { + Utils.checkNotNull(sectionKey, "sectionKey"); + this.sectionKey = sectionKey; + return this; + } + + public GetGenresLibraryResponse call() throws Exception { + + return sdk.getGenresLibrary( + sectionKey); + } +} diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponse.java b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponse.java new file mode 100644 index 00000000..c200caf1 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponse.java @@ -0,0 +1,251 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import dev.plexapi.sdk.utils.Response; +import dev.plexapi.sdk.utils.Utils; +import java.io.InputStream; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.net.http.HttpResponse; +import java.util.Objects; +import java.util.Optional; + + +public class GetGenresLibraryResponse implements Response { + + /** + * HTTP response content type for this operation + */ + private String contentType; + + /** + * HTTP response status code for this operation + */ + private int statusCode; + + /** + * Raw HTTP response; suitable for custom response parsing + */ + private HttpResponse rawResponse; + + /** + * Successful response containing media container data. + */ + private Optional object; + + @JsonCreator + public GetGenresLibraryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse, + Optional object) { + Utils.checkNotNull(contentType, "contentType"); + Utils.checkNotNull(statusCode, "statusCode"); + Utils.checkNotNull(rawResponse, "rawResponse"); + Utils.checkNotNull(object, "object"); + this.contentType = contentType; + this.statusCode = statusCode; + this.rawResponse = rawResponse; + this.object = object; + } + + public GetGenresLibraryResponse( + String contentType, + int statusCode, + HttpResponse rawResponse) { + this(contentType, statusCode, rawResponse, Optional.empty()); + } + + /** + * HTTP response content type for this operation + */ + @JsonIgnore + public String contentType() { + return contentType; + } + + /** + * HTTP response status code for this operation + */ + @JsonIgnore + public int statusCode() { + return statusCode; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + @JsonIgnore + public HttpResponse rawResponse() { + return rawResponse; + } + + /** + * Successful response containing media container data. + */ + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional object() { + return (Optional) object; + } + + public final static Builder builder() { + return new Builder(); + } + + /** + * HTTP response content type for this operation + */ + public GetGenresLibraryResponse withContentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public GetGenresLibraryResponse withStatusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public GetGenresLibraryResponse withRawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Successful response containing media container data. + */ + public GetGenresLibraryResponse withObject(GetGenresLibraryResponseBody object) { + Utils.checkNotNull(object, "object"); + this.object = Optional.ofNullable(object); + return this; + } + + /** + * Successful response containing media container data. + */ + public GetGenresLibraryResponse withObject(Optional object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryResponse other = (GetGenresLibraryResponse) o; + return + Objects.deepEquals(this.contentType, other.contentType) && + Objects.deepEquals(this.statusCode, other.statusCode) && + Objects.deepEquals(this.rawResponse, other.rawResponse) && + Objects.deepEquals(this.object, other.object); + } + + @Override + public int hashCode() { + return Objects.hash( + contentType, + statusCode, + rawResponse, + object); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryResponse.class, + "contentType", contentType, + "statusCode", statusCode, + "rawResponse", rawResponse, + "object", object); + } + + public final static class Builder { + + private String contentType; + + private Integer statusCode; + + private HttpResponse rawResponse; + + private Optional object = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + /** + * HTTP response content type for this operation + */ + public Builder contentType(String contentType) { + Utils.checkNotNull(contentType, "contentType"); + this.contentType = contentType; + return this; + } + + /** + * HTTP response status code for this operation + */ + public Builder statusCode(int statusCode) { + Utils.checkNotNull(statusCode, "statusCode"); + this.statusCode = statusCode; + return this; + } + + /** + * Raw HTTP response; suitable for custom response parsing + */ + public Builder rawResponse(HttpResponse rawResponse) { + Utils.checkNotNull(rawResponse, "rawResponse"); + this.rawResponse = rawResponse; + return this; + } + + /** + * Successful response containing media container data. + */ + public Builder object(GetGenresLibraryResponseBody object) { + Utils.checkNotNull(object, "object"); + this.object = Optional.ofNullable(object); + return this; + } + + /** + * Successful response containing media container data. + */ + public Builder object(Optional object) { + Utils.checkNotNull(object, "object"); + this.object = object; + return this; + } + + public GetGenresLibraryResponse build() { + return new GetGenresLibraryResponse( + contentType, + statusCode, + rawResponse, + object); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponseBody.java b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponseBody.java new file mode 100644 index 00000000..bce0fb5c --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/models/operations/GetGenresLibraryResponseBody.java @@ -0,0 +1,114 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.models.operations; + + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import dev.plexapi.sdk.utils.Utils; +import java.lang.Override; +import java.lang.String; +import java.lang.SuppressWarnings; +import java.util.Objects; +import java.util.Optional; + +/** + * GetGenresLibraryResponseBody - Successful response containing media container data. + */ + +public class GetGenresLibraryResponseBody { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("MediaContainer") + private Optional mediaContainer; + + @JsonCreator + public GetGenresLibraryResponseBody( + @JsonProperty("MediaContainer") Optional mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = mediaContainer; + } + + public GetGenresLibraryResponseBody() { + this(Optional.empty()); + } + + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional mediaContainer() { + return (Optional) mediaContainer; + } + + public final static Builder builder() { + return new Builder(); + } + + public GetGenresLibraryResponseBody withMediaContainer(GetGenresLibraryMediaContainer mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = Optional.ofNullable(mediaContainer); + return this; + } + + public GetGenresLibraryResponseBody withMediaContainer(Optional mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = mediaContainer; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetGenresLibraryResponseBody other = (GetGenresLibraryResponseBody) o; + return + Objects.deepEquals(this.mediaContainer, other.mediaContainer); + } + + @Override + public int hashCode() { + return Objects.hash( + mediaContainer); + } + + @Override + public String toString() { + return Utils.toString(GetGenresLibraryResponseBody.class, + "mediaContainer", mediaContainer); + } + + public final static class Builder { + + private Optional mediaContainer = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + public Builder mediaContainer(GetGenresLibraryMediaContainer mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = Optional.ofNullable(mediaContainer); + return this; + } + + public Builder mediaContainer(Optional mediaContainer) { + Utils.checkNotNull(mediaContainer, "mediaContainer"); + this.mediaContainer = mediaContainer; + return this; + } + + public GetGenresLibraryResponseBody build() { + return new GetGenresLibraryResponseBody( + mediaContainer); + } + } +} + diff --git a/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java b/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java index 13a1bff2..4847cda0 100644 --- a/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java +++ b/src/main/java/dev/plexapi/sdk/models/operations/SDKMethodInterfaces.java @@ -283,6 +283,18 @@ public class SDKMethodInterfaces { } + public interface MethodCallGetGenresLibrary { + GetGenresLibraryResponse getGenresLibrary( + int sectionKey) throws Exception; + } + + + public interface MethodCallGetCountriesLibrary { + GetCountriesLibraryResponse getCountriesLibrary( + int sectionKey) throws Exception; + } + + public interface MethodCallGetSearchAllLibraries { GetSearchAllLibrariesResponse getSearchAllLibraries( GetSearchAllLibrariesRequest request) throws Exception; diff --git a/src/main/java/dev/plexapi/sdk/utils/HTTPRequest.java b/src/main/java/dev/plexapi/sdk/utils/HTTPRequest.java index d372a878..910012cc 100644 --- a/src/main/java/dev/plexapi/sdk/utils/HTTPRequest.java +++ b/src/main/java/dev/plexapi/sdk/utils/HTTPRequest.java @@ -46,7 +46,9 @@ public class HTTPRequest { headerValues = new ArrayList<>(); headers.put(key, headerValues); } - headerValues.add(value); + if (!headerValues.contains(value)) { + headerValues.add(value); + } return this; } diff --git a/src/main/java/dev/plexapi/sdk/utils/RecordingClient.java b/src/main/java/dev/plexapi/sdk/utils/RecordingClient.java new file mode 100644 index 00000000..dfb58d28 --- /dev/null +++ b/src/main/java/dev/plexapi/sdk/utils/RecordingClient.java @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +package dev.plexapi.sdk.utils; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.function.Function; + +// internal testing use +public final class RecordingClient implements HTTPClient { + + private final List requests = new CopyOnWriteArrayList<>(); + private final HTTPClient client; + private final List> beforeRequestHooks = new ArrayList<>(); + + public RecordingClient() { + this.client = new SpeakeasyHTTPClient(); + } + + @Override + public HttpResponse send(HttpRequest request) + throws IOException, InterruptedException, URISyntaxException { + for (Function hook : beforeRequestHooks) { + request = hook.apply(request); + } + requests.add(request); + return client.send(request); + } + + public List requests() { + return requests; + } + + public RecordingClient beforeRequest(Function hook) { + beforeRequestHooks.add(hook); + return this; + } + + public void reset() { + requests.clear(); + } + +} \ No newline at end of file